Browse Source

Merge branch 'jk/rebase-no-autostash' into maint

There was no way to defeat a configured rebase.autostash variable
from the command line, as "git rebase --no-autostash" was missing.

* jk/rebase-no-autostash:
  Documentation/git-rebase: fix --no-autostash formatting
  rebase: support --no-autostash
maint
Junio C Hamano 9 years ago
parent
commit
697bd2871c
  1. 3
      Documentation/git-rebase.txt
  2. 5
      git-rebase.sh
  3. 10
      t/t3420-rebase-autostash.sh

3
Documentation/git-rebase.txt

@ -434,7 +434,8 @@ If the '--autosquash' option is enabled by default using the @@ -434,7 +434,8 @@ If the '--autosquash' option is enabled by default using the
configuration variable `rebase.autoSquash`, this option can be
used to override and disable this setting.

--[no-]autostash::
--autostash::
--no-autostash::
Automatically create a temporary stash before the operation
begins, and apply it after the operation ends. This means
that you can run rebase on a dirty worktree. However, use

5
git-rebase.sh

@ -14,7 +14,7 @@ git-rebase --continue | --abort | --skip | --edit-todo @@ -14,7 +14,7 @@ git-rebase --continue | --abort | --skip | --edit-todo
Available options are
v,verbose! display a diffstat of what changed upstream
q,quiet! be quiet. implies --no-stat
autostash! automatically stash/stash pop before and after
autostash automatically stash/stash pop before and after
fork-point use 'merge-base --fork-point' to refine upstream
onto=! rebase onto given branch instead of upstream
p,preserve-merges! try to recreate merges instead of ignoring them
@ -292,6 +292,9 @@ do @@ -292,6 +292,9 @@ do
--autostash)
autostash=true
;;
--no-autostash)
autostash=false
;;
--verbose)
verbose=t
diffstat=t

10
t/t3420-rebase-autostash.sh

@ -37,6 +37,16 @@ testrebase() { @@ -37,6 +37,16 @@ testrebase() {
type=$1
dotest=$2

test_expect_success "rebase$type: dirty worktree, --no-autostash" '
test_config rebase.autostash true &&
git reset --hard &&
git checkout -b rebased-feature-branch feature-branch &&
test_when_finished git branch -D rebased-feature-branch &&
test_when_finished git checkout feature-branch &&
echo dirty >>file3 &&
test_must_fail git rebase$type --no-autostash unrelated-onto-branch
'

test_expect_success "rebase$type: dirty worktree, non-conflicting rebase" '
test_config rebase.autostash true &&
git reset --hard &&

Loading…
Cancel
Save