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
This commit is contained in:
Junio C Hamano 2015-12-08 14:05:00 -08:00
Родитель 9a8c740225 82e0668cde
Коммит 697bd2871c
3 изменённых файлов: 16 добавлений и 2 удалений

Просмотреть файл

@ -434,7 +434,8 @@ If the '--autosquash' option is enabled by default using the
configuration variable `rebase.autoSquash`, this option can be configuration variable `rebase.autoSquash`, this option can be
used to override and disable this setting. used to override and disable this setting.
--[no-]autostash:: --autostash::
--no-autostash::
Automatically create a temporary stash before the operation Automatically create a temporary stash before the operation
begins, and apply it after the operation ends. This means begins, and apply it after the operation ends. This means
that you can run rebase on a dirty worktree. However, use that you can run rebase on a dirty worktree. However, use

Просмотреть файл

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

Просмотреть файл

@ -37,6 +37,16 @@ testrebase() {
type=$1 type=$1
dotest=$2 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_expect_success "rebase$type: dirty worktree, non-conflicting rebase" '
test_config rebase.autostash true && test_config rebase.autostash true &&
git reset --hard && git reset --hard &&