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)