Re: [PATCH 1/2] pull: respect rebase.autostash
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 14, 2013, 18:26 UTC
- Message-ID
- <7vk3lwo8fw.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <vpqfvwlkqb5.fsf@anie.imag.fr>
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:
Show 24 quoted lines
> Ramkumar Ramachandra <artagnon@gmail.com> writes:
>
>> --- 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).
Show 6 quoted lines
> 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)