# Bug: "git rebase --no-autostash" not recognized

5 messages from 2015-09-10 to 2015-09-11. Participants: Daniel Hahler, John Keeping, Matthieu Moy.
Thread: https://gitlist.dev/t/40323

## Daniel Hahler, 2015-09-10 20:56

Subject: Bug: "git rebase --no-autostash" not recognized
Message-ID: <55F1EE67.3090401@thequod.de>
URL: https://gitlist.dev/e/55F1EE67.3090401%40thequod.de

```
Although the man page mentions the "--no-autostash" option, it is not supported:

    % git rebase --no-autostash 
    error: unknown option `no-autostash'

    % git --version
    git version 2.5.1.dirty


Please CC me in case of replies.


Regards,
Daniel.

-- 
http://daniel.hahler.de/


```

## John Keeping, 2015-09-10 22:30

Subject: [PATCH 0/2] rebase: support --no-autostash
Message-ID: <cover.1441924193.git.john@keeping.me.uk>
URL: https://gitlist.dev/e/cover.1441924193.git.john%40keeping.me.uk
In-Reply-To: <55F1EE67.3090401@thequod.de>

```
The first patch is the fix so that git-rebase supports the
--no-autostash option that it's documentation claims it does.

The second is a slight tweak to the documentation to make it consistent
with the remainder of the file.

John Keeping (2):
  rebase: support --no-autostash
  Documentation/git-rebase: fix --no-autostash formatting

 Documentation/git-rebase.txt |  3 ++-
 git-rebase.sh                |  5 ++++-
 t/t3420-rebase-autostash.sh  | 10 ++++++++++
 3 files changed, 16 insertions(+), 2 deletions(-)

-- 
2.6.0.rc0.162.gb2d3693

```

## John Keeping, 2015-09-10 22:30

Subject: [PATCH 1/2] rebase: support --no-autostash
Message-ID: <549b3289ee263b25a241c823444a99420e5a8bfb.1441924193.git.john@keeping.me.uk>
URL: https://gitlist.dev/e/549b3289ee263b25a241c823444a99420e5a8bfb.1441924193.git.john%40keeping.me.uk
In-Reply-To: <cover.1441924193.git.john@keeping.me.uk>

```
This is documented as an option but we don't actually accept it.
Support it so that it is possible to override the "rebase.autostash"
config variable.

Reported-by: Daniel Hahler <genml+git-2014@thequod.de>
Signed-off-by: John Keeping <john@keeping.me.uk>
---
 git-rebase.sh               |  5 ++++-
 t/t3420-rebase-autostash.sh | 10 ++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/git-rebase.sh b/git-rebase.sh
index 1757404..af7ba5f 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -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
 	--autostash)
 		autostash=true
 		;;
+	--no-autostash)
+		autostash=false
+		;;
 	--verbose)
 		verbose=t
 		diffstat=t
diff --git a/t/t3420-rebase-autostash.sh b/t/t3420-rebase-autostash.sh
index d783f03..944154b 100755
--- a/t/t3420-rebase-autostash.sh
+++ b/t/t3420-rebase-autostash.sh
@@ -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 &&
-- 
2.6.0.rc0.162.gb2d3693

```

## John Keeping, 2015-09-10 22:30

Subject: [PATCH 2/2] Documentation/git-rebase: fix --no-autostash formatting
Message-ID: <5c846ceeefd55e3a46ed1f3937fc74bd7720a892.1441924193.git.john@keeping.me.uk>
URL: https://gitlist.dev/e/5c846ceeefd55e3a46ed1f3937fc74bd7720a892.1441924193.git.john%40keeping.me.uk
In-Reply-To: <cover.1441924193.git.john@keeping.me.uk>

```
All of the other "--option" and "--no-option" pairs in this file are
formatted as separate options.

Signed-off-by: John Keeping <john@keeping.me.uk>
---
 Documentation/git-rebase.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
index ca03954..72e69fc 100644
--- a/Documentation/git-rebase.txt
+++ b/Documentation/git-rebase.txt
@@ -432,7 +432,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
-- 
2.6.0.rc0.162.gb2d3693

```

## Matthieu Moy, 2015-09-11 06:49

Subject: Re: [PATCH 0/2] rebase: support --no-autostash
Message-ID: <vpqpp1pa1s3.fsf@scolette.imag.fr>
URL: https://gitlist.dev/e/vpqpp1pa1s3.fsf%40scolette.imag.fr
In-Reply-To: <cover.1441924193.git.john@keeping.me.uk>

```
John Keeping <john@keeping.me.uk> writes:

> John Keeping (2):
>   rebase: support --no-autostash
>   Documentation/git-rebase: fix --no-autostash formatting

Looks good to me, thanks.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

```
