git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3] pull: allow dirty tree when rebase.autostash enabled

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 17, 2015, 15:36 UTC
Message-ID
<xmqqh9q64a9p.fsf@gitster.dls.corp.google.com>
In-Reply-To
<1434538880-15608-1-git-send-email-me@ikke.info>
Kevin Daudt <me@ikke.info> writes:
Show 29 quoted lines
> rebase learned to stash changes when it encounters a dirty work tree, but
> git pull --rebase does not.
>
> Only verify if the working tree is dirty when rebase.autostash is not
> enabled.
>
> Signed-off-by: Kevin Daudt <me@ikke.info>
> Helped-by: Paul Tan <pyokagan@gmail.com>
> ---
> Changes to v2:
>  - Dropped the change of the existing --rebase test
>  - Improvements to the test.
>
> Verified that the test fails before the change, and succeeds after the change.
>
>  git-pull.sh     |  5 ++++-
>  t/t5520-pull.sh | 11 +++++++++++
>  2 files changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/git-pull.sh b/git-pull.sh
> index 0917d0d..f0a3b6e 100755
> --- a/git-pull.sh
> +++ b/git-pull.sh
> @@ -239,7 +239,10 @@ test true = "$rebase" && {
>  			die "$(gettext "updating an unborn branch with changes added to the index")"
>  		fi
>  	else
> -		require_clean_work_tree "pull with rebase" "Please commit or stash them."
> +		if [ $(git config --bool --get rebase.autostash || echo false) = false ]
Style (use of []).
Shouldn't you be doing
	if ...
	then        	
		on an unborn
	elif we are not doing autostash
		require clean work tree
	fi
which does not need unnecessarily deep nesting?
Show 28 quoted lines
> +		then
> +			require_clean_work_tree "pull with rebase" "Please commit or stash them."
> +		fi
>  	fi
>  	oldremoteref= &&
>  	test -n "$curr_branch" &&
> diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh
> index af31f04..aa247ec 100755
> --- a/t/t5520-pull.sh
> +++ b/t/t5520-pull.sh
> @@ -233,6 +233,17 @@ test_expect_success '--rebase fails with multiple branches' '
>  	test modified = "$(git show HEAD:file)"
>  '
>  
> +test_expect_success 'pull --rebase succeeds with dirty working directory and rebase.autostash set' '
> +	test_config rebase.autostash true &&
> +	git reset --hard before-rebase &&
> +	echo dirty >new_file &&
> +	git add new_file &&
> +	git pull --rebase . copy &&
> +	test_cmp_rev HEAD^ copy &&
> +	test "$(cat new_file)" = dirty &&
> +	test "$(cat file)" = "modified again"
> +'
> +
>  test_expect_success 'pull.rebase' '
>  	git reset --hard before-rebase &&
>  	test_config pull.rebase true &&
Previous: Kevin DaudtNext: Kevin Daudt
Message 8 of 16 in “pull: allow dirty tree when rebase.autostash enabled”
  1. pull: allow dirty tree when rebase.autostash enabledKevin Daudt, Jun 2, 2015
  2. Paul TanJun 3, 2015
  3. 1/2 t5520-pull: Simplify --rebase with dirty tree testKevin Daudt, Jun 6, 2015
  4. 2/2 pull: allow dirty tree when rebase.autostash enabledKevin Daudt, Jun 6, 2015
  5. Paul TanJun 11, 2015
  6. Kevin DaudtJun 17, 2015
  7. pull: allow dirty tree when rebase.autostash enabledKevin Daudt, Jun 17, 2015
  8. Junio C HamanoJun 17, 2015
  9. kd/Kevin Daudt, Jul 4, 2015
  10. pull: allow dirty tree when rebase.autostash enabledKevin Daudt, Jul 4, 2015
  11. Junio C HamanoJul 6, 2015
  12. pull: allow dirty tree when rebase.autostash enabledPaul Tan, Jul 7, 2015
  13. Kevin DaudtJul 22, 2015
  14. Junio C HamanoJul 22, 2015
  15. Kevin DaudtJul 22, 2015
  16. Paul TanJun 11, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.