Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCH 1/2] pull: respect rebase.autostash

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:57:45

Matthieu Moy [off-list ref] writes:
Ramkumar Ramachandra [off-list ref] writes:
quoted
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -44,6 +44,7 @@ merge_args= edit=
 curr_branch=$(git symbolic-ref -q HEAD)
 curr_branch_short="${curr_branch#refs/heads/}"
 rebase=$(git config --bool branch.$curr_branch_short.rebase)
+autostash=$(git config --bool rebase.autostash)
 if test -z "$rebase"
 then
 	rebase=$(git config --bool pull.rebase)
@@ -203,6 +204,7 @@ test true = "$rebase" && {
 			die "$(gettext "updating an unborn branch with changes added to the index")"
 		fi
 	else
+		test true = "$autostash" ||
 		require_clean_work_tree "pull with rebase" "Please commit or stash them."
Trivial, indeed!

It would be nice to have an --autostash command-line option too, and the
error message in "require_clean_work_tree" could suggest using it. That
would make the feature easily discoverable.
I would actually suggest doing this the other way around.  --autostash
option, followed by configuration if needed.

I actually have this slight suspicion that rebase.autostash and
pull.autostash may want to be separate variables.  Attempting to
rebase locally when your working tree is in half-baked state is bad
enough but may be warranted in some workflows, but doing so when
integrating with other people's work is a practice in a different
league. It would be quite sensible for somebody to want to allow the
former (i.e. allows autostash with rebase.autostash=true for local
rebase) while retaining the safety of the latter (i.e. stop pulling
with pull.autostash=false).
Perhaps this patch could mention "pull --rebase" in the doc, like (config.txt)

- 	ends.  This means that you can run rebase on a dirty worktree.
+ 	ends.  This means that you can run rebase or `git pull --rebase` on a dirty worktree.

(or perhaps it's obvious enough and not needed)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help