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

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

From
Phil Hord <phil.hord@gmail.com>
Date
Jun 14, 2013, 12:21 UTC
Message-ID
<CABURp0pHUPnRJuGM-8zUhM9bGh5rj6r5692Nhc-1G+K5SAunWA@mail.gmail.com>
In-Reply-To
<CABURp0pVzQ2rVB-B2L+uCMtPV7QFPSgkZnHitCsrPCrR9LJOVA@mail.gmail.com>
On Fri, Jun 14, 2013 at 8:12 AM, Phil Hord <phil.hord@gmail.com> wrote:
Show 79 quoted lines
> On Fri, Jun 14, 2013 at 4:56 AM, Ramkumar Ramachandra
> <artagnon@gmail.com> wrote:
>> If a rebasing pull is requested, pull unconditionally runs
>> require_clean_worktree() resulting in:
>>
>>   # dirty worktree or index
>>   $ git pull
>>   Cannot pull with rebase: Your index contains uncommitted changes.
>>   Please commit or stash them.
>>
>> It does this to inform the user early on that a rebase cannot be run on
>> a dirty worktree, and that a stash is required.  However,
>> rr/rebase-autostash lifts this limitation on rebase by providing a way
>> to automatically stash using the rebase.autostash configuration
>> variable.  Read this variable in pull, and take advantage of this
>> feature.
>
> This commit message does not tell me what this commit does.  It mostly
> describes the current situation.  Then it refers to something called
> "rr/rebase-autostash" which will lose meaning in the future when this
> commit is no longer current on the list.  A better way to refer to
> this commit is to say "this commit".  However, even this is not the
> norm for this project.  The norm here is to avoid such noise by
> speaking in the imperative mood.  That is, do not tell me what this
> commit does; instead, tell the code what to do.  See
> Documentation/SubmittingPatches:
>
>   Describe your changes in imperative mood, e.g. "make xyzzy do frotz"
>   instead of "[This patch] makes xyzzy do frotz" or "[I] changed xyzzy
>   to do frotz", as if you are giving orders to the codebase to change
>   its behaviour.  Try to make sure your explanation can be understood
>   without external resources. Instead of giving a URL to a mailing list
>   archive, summarize the relevant points of the discussion.
>
>
>
>>
>> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
>> ---
>>  git-pull.sh     |  2 ++
>>  t/t5520-pull.sh | 11 +++++++++++
>>  2 files changed, 13 insertions(+)
>>
>> diff --git a/git-pull.sh b/git-pull.sh
>> index 638aabb..fb01763 100755
>> --- 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."
>>         fi
>
> This commit does not seem useful on its own.  All it does is prevent
> the safety check for a clean work tree when the autostash flag is set.
>  I understand that this is necessary for the rest of the change to be
> useful, but I do not see any reason for it to be split into two
> commits like this.  I think it would be more understandable if this
> were squashed together with the rest of the change, both now for
> reviews and in the future when someone tries to understand this change
> in retrospect.
>
> In particular, the commit message suggests that this commit will
> perform the autostash if this variable is set, but it does not do that
> yet.  I think if you squash these two together it will be more concise
> and understandable.
>
> Thanks,
> Phil

Having said all that, I see now that 2/2 in this series is really unrelated to this commit and is not the rest of the autostash implementation, so I am more confused than before. Was the rest of 'autostash' already implemented in some other series? I guess that's what you meant by "rr/rebase-autostash" which is NOT "this commit" after all. I am sorry for my confusion, though a clearer commit message would have helped me in the first place.

Phil
Previous: Phil HordNext: John Keeping
Message 8 of 14 in “Rebasing pull with autostash”
  1. 0/2 Rebasing pull with autostashRamkumar Ramachandra, Jun 14, 2013
  2. 1/2 pull: respect rebase.autostashRamkumar Ramachandra, Jun 14, 2013
  3. Matthieu MoyJun 14, 2013
  4. Ramkumar RamachandraJun 14, 2013
  5. Phil HordJun 14, 2013
  6. Junio C HamanoJun 14, 2013
  7. Phil HordJun 14, 2013
  8. Phil HordJun 14, 2013
  9. John KeepingJun 14, 2013
  10. Phil HordJun 14, 2013
  11. Ramkumar RamachandraJun 14, 2013
  12. 2/2 pull: clarify the large && { ... } formRamkumar Ramachandra, Jun 14, 2013
  13. Matthieu MoyJun 14, 2013
  14. Ramkumar RamachandraJun 14, 2013

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.