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

Re: How to rebase when some commit hashes are in some commit messages

From
Philip Oakley <philipoakley@iee.org>
Date
Oct 13, 2015, 23:06 UTC
Message-ID
<B8985A8E92044BD8845B1ABD23FABA13@PhilipOakley>
In-Reply-To
<CA+P7+xpgY-PGdxDKHBeu0X=U6FKMavzmjexUTWatUzEdw8CmcQ@mail.gmail.com>
From: "Jacob Keller" <jacob.keller@gmail.com>
Show 32 quoted lines
> On Tue, Oct 13, 2015 at 12:24 PM, Philip Oakley <philipoakley@iee.org>
> wrote:
>> IIUC (as an alternate example),  in G4W one can submit a (long) pull
>> request
>> with internal back references that would be merged directly, so the
>> sha1's
>> could be updated as Francois-Xavier originally asked. I have a series
>> that's
>> been bumping along for a long while that needs regular rebasing, though
>> doesn't have sha1 back references, so I can see that the need does
>> happen. I
>> can see that others may have a workflow that would work well with the
>> sha1
>> auto-update.
>>
>> --
>> Philip
>>
>
> I still don't see how this is useful, because the part that *can* be
> implemented is not valuable and the part that is valuable can't be
> implemented.
>
> So, what we can implement easily enough:
>
> you rebase a series and any time the message contains sha1 of a commit
> we're modifying in this rebase, we update the sha1 to match again.
> This seems reasonable, but not useful. Why would you reference a
> commit that is *ITSELF* being rebased. No one has explained a
> reasonable use for this... I'm sure there exists one, but I would want
> an explanation of one first.
>

This particular case is about self-references within a long series. At the moment, on the Git list there is general comments about say [PATCH v3 18/44], whichs is great for for the list ($gmane) but not for a `git log`. In flows where PRs are valid, one can have what was [34/44] refering to prior patch [26/44] as `deadbeaf` or whatever. It won't be suitable for most flows but will be useful for a proportion (as already evidenced by the request).

> The "useful" case is if you rebase "onto" a tree that has a previous
> history that has been changed. In this case, how do you propose we
> find it.

This use case (where upstream also rebases) hasn't been considered. It would be a tricky one. As long as the possibility (of such an A depends on B re-write) isn't closed off then the smaller requested case could still go ahead.

> Doing as suggested above, ie: only changing sha1s that we are
> already rebasing works, but why are you backreferencing it if you are
> re-writing the commit?
 Essentially one wants to say `$CURR_COMMIT~nn` (i.e. "see nn commits
earlier in my series") and have that replaced with its cannonical sha1, and
updated when rebased.
It sort of begs the question whether there should be a ref shorthand for
"the (this) current commit" to allow THIS~<n> as an interpretable [valid?]
format.
> That doesn't make sense to me at all. Yes, you
> can do it, but I don't get why this is valuable.
> If you're backref is
> "fixes xyz" why not just fix xyz instead of have two commits. If the
> back ref has some other value... what is that value? I don't
> understand it I guess.

For the 'fixes' (of a bug report) case we are already talking about an immutable so it would not be part of this. Its use may be more of the type "Using helper function xyz introduced earlier in patch abcde", which would change after each rebase.

>
> It just seems pretty narrow focus. I mean if someone wants to
> implement it, that is fine.
>

Agreed -- Philip

Previous: Jacob KellerNext: Francois-Xavier Le Bail
Message 10 of 17 in “How to rebase when some commit hashes are in some commit messages”
  1. Francois-Xavier Le BailOct 12, 2015
  2. Matthieu MoyOct 12, 2015
  3. Francois-Xavier Le BailOct 13, 2015
  4. Konstantin KhomoutovOct 13, 2015
  5. Philip OakleyOct 13, 2015
  6. Jacob KellerOct 13, 2015
  7. Mike RappazzoOct 13, 2015
  8. Philip OakleyOct 13, 2015
  9. Jacob KellerOct 13, 2015
  10. Philip OakleyOct 13, 2015
  11. Francois-Xavier Le BailOct 15, 2015
  12. Francois-Xavier Le BailOct 15, 2015
  13. Francois-Xavier Le BailOct 15, 2015
  14. Johannes SchindelinOct 15, 2015
  15. Philip OakleyOct 16, 2015
  16. Thomas KochOct 18, 2015
  17. Ævar Arnfjörð BjarmasonOct 18, 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.