Browse Source

Merge branch 'pw/rebase-keep-empty-fixes' into pw/rebase-signoff

* pw/rebase-keep-empty-fixes:
  rebase: respect --no-keep-empty
  rebase -i --keep-empty: don't prune empty commits
  rebase --root: stop assuming squash_onto is unset
  Git 2.16.2
maint
Junio C Hamano 7 years ago
parent
commit
56173d28a5
  1. 30
      Documentation/RelNotes/2.16.2.txt
  2. 4
      git-rebase.sh
  3. 8
      sequencer.c
  4. 2
      t/t3421-rebase-topology-linear.sh

30
Documentation/RelNotes/2.16.2.txt

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
Git v2.16.2 Release Notes
=========================

Fixes since v2.16.1
-------------------

* An old regression in "git describe --all $annotated_tag^0" has been
fixed.

* "git svn dcommit" did not take into account the fact that a
svn+ssh:// URL with a username@ (typically used for pushing) refers
to the same SVN repository without the username@ and failed when
svn.pushmergeinfo option is set.

* "git merge -Xours/-Xtheirs" learned to use our/their version when
resolving a conflicting updates to a symbolic link.

* "git clone $there $here" is allowed even when here directory exists
as long as it is an empty directory, but the command incorrectly
removed it upon a failure of the operation.

* "git stash -- <pathspec>" incorrectly blew away untracked files in
the directory that matched the pathspec, which has been corrected.

* "git add -p" was taught to ignore local changes to submodules as
they do not interfere with the partial addition of regular changes
anyway.


Also contains various documentation updates and code clean-ups.

4
git-rebase.sh

@ -60,6 +60,7 @@ $(gettext 'Resolve all conflicts manually, mark them as resolved with @@ -60,6 +60,7 @@ $(gettext 'Resolve all conflicts manually, mark them as resolved with
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".')
"
squash_onto=
unset onto
unset restrict_revision
cmd=
@ -262,6 +263,9 @@ do @@ -262,6 +263,9 @@ do
--keep-empty)
keep_empty=yes
;;
--no-keep-empty)
keep_empty=
;;
--preserve-merges)
preserve_merges=t
test -z "$interactive_rebase" && interactive_rebase=implied

8
sequencer.c

@ -2992,7 +2992,7 @@ int sequencer_make_script(FILE *out, int argc, const char **argv, @@ -2992,7 +2992,7 @@ int sequencer_make_script(FILE *out, int argc, const char **argv,
init_revisions(&revs, NULL);
revs.verbose_header = 1;
revs.max_parents = 1;
revs.cherry_pick = 1;
revs.cherry_mark = 1;
revs.limited = 1;
revs.reverse = 1;
revs.right_only = 1;
@ -3017,8 +3017,12 @@ int sequencer_make_script(FILE *out, int argc, const char **argv, @@ -3017,8 +3017,12 @@ int sequencer_make_script(FILE *out, int argc, const char **argv,
return error(_("make_script: error preparing revisions"));

while ((commit = get_revision(&revs))) {
int is_empty = is_original_commit_empty(commit);

if (!is_empty && (commit->object.flags & PATCHSAME))
continue;
strbuf_reset(&buf);
if (!keep_empty && is_original_commit_empty(commit))
if (!keep_empty && is_empty)
strbuf_addf(&buf, "%c ", comment_line_char);
strbuf_addf(&buf, "%s %s ", insn,
oid_to_hex(&commit->object.oid));

2
t/t3421-rebase-topology-linear.sh

@ -215,7 +215,7 @@ test_run_rebase () { @@ -215,7 +215,7 @@ test_run_rebase () {
}
test_run_rebase success ''
test_run_rebase failure -m
test_run_rebase failure -i
test_run_rebase success -i
test_run_rebase failure -p

# m

Loading…
Cancel
Save