diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-04-03 12:28:44 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-04-03 12:28:44 -0700 |
commit | 9234b003726556e0d3d0ea8ade97dc9f7bd50a6e (patch) | |
tree | 194e8895d8a2e7c7dba0f5e6ab9108231aaae711 /git-rebase--interactive.sh | |
parent | 7b1cb5c40ebb57c5a26f1335807be24dba8d4518 (diff) | |
parent | b499549401cb2b1f6c30d09681380fd519938eb0 (diff) | |
download | git-9234b003726556e0d3d0ea8ade97dc9f7bd50a6e.tar.gz |
Merge branch 'mb/rebase-i-no-ff'
* mb/rebase-i-no-ff:
Teach rebase the --no-ff option.
Conflicts:
git-rebase--interactive.sh
t/t3404-rebase-interactive.sh
Diffstat (limited to 'git-rebase--interactive.sh')
-rwxr-xr-x | git-rebase--interactive.sh | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 2ff211cbaa..b817c4a76e 100755 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -20,6 +20,7 @@ v,verbose display a diffstat of what changed upstream onto= rebase onto given branch instead of upstream p,preserve-merges try to recreate merges instead of ignoring them s,strategy= use the given merge strategy +no-ff cherry-pick all commits, even if unchanged m,merge always used (no-op) i,interactive always used (no-op) Actions: @@ -110,6 +111,7 @@ VERBOSE= OK_TO_SKIP_PRE_REBASE= REBASE_ROOT= AUTOSQUASH= +NEVER_FF= GIT_CHERRY_PICK_HELP=" After resolving the conflicts, mark the corrected paths with 'git add <paths>', and @@ -232,6 +234,7 @@ do_with_author () { pick_one () { ff=--ff case "$1" in -n) sha1=$2; ff= ;; *) sha1=$1 ;; esac + case "$NEVER_FF" in '') ;; ?*) ff= ;; esac output git rev-parse --verify $sha1 || die "Invalid commit name: $sha1" test -d "$REWRITTEN" && pick_one_preserving_merges "$@" && return @@ -782,6 +785,9 @@ first and then run 'git rebase --continue' again." -i) # yeah, we know ;; + --no-ff) + NEVER_FF=t + ;; --root) REBASE_ROOT=t ;; @@ -965,7 +971,7 @@ EOF has_action "$TODO" || die_abort "Nothing to do" - test -d "$REWRITTEN" || skip_unnecessary_picks + test -d "$REWRITTEN" || test -n "$NEVER_FF" || skip_unnecessary_picks git update-ref ORIG_HEAD $HEAD output git checkout $ONTO && do_rest |