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

Re: [PATCH] sequencer: honor GIT_REFLOG_ACTION

From
Elijah Newren <newren@gmail.com>
Date
Apr 2, 2020, 17:40 UTC
Message-ID
<CABPp-BGPFTOX75CfWwJxcoBMs_DC3xBXOBDeqFE5439v0fqBZw@mail.gmail.com>
In-Reply-To
<5c5532ac-7df5-e8ef-9122-f015783427c2@gmail.com>
Hi Phillip,
On Thu, Apr 2, 2020 at 2:39 AM Phillip Wood <phillip.wood123@gmail.com> wrote:
>
> On 02/04/2020 06:15, Elijah Newren wrote:
Show 24 quoted lines
> > As a heads up, though, my personal plans for rebase (subject to buy-in
> > from other stakeholders) is to make it do a lot more in-memory work.
> > In particular, this means for common cases there will be no subprocess
> > invocations, no writing of any state unless/until you hit a conflict,
> > no updating of any files in the working tree until all commits have
> > been created (or a conflict is hit),
>
> I'm with you up to here - it sounds fantastic
>
> > and no updating of the branch
> > until after all the commits have been created.
>
> We only update the branch reflog at the end of the rebase now.
>
> > Thus, for the common
> > cases with no conflicts, there would only be 1 entry in the reflog of
> > HEAD the entire operation, rather than approximately 1 per commit.
>
> This I'm not so sure about. In the past where I've messed up a rebase
> and not noticed until after a subsequent rebase it has been really
> useful to be able to go through HEAD's reflog and find out where exactly
> I messed up by looking at the sequence of picks for the first rebase.
> Specifically it shows which commits where squashed together which you
> cannot get by running git log on the result of the rebase.
Interesting.   Hmm....
> > I
> > have a proof-of-concept showing these ideas work for basic cases.
>
> Sounds exciting

Feel free to take a look: See https://github.com/newren/git/blob/git-merge-2020-demo/README.md and https://github.com/newren/git/blob/git-merge-2020-demo/builtin/fast-rebase.c

Sadly, between sparse-checkout, expoential slowdown in dir.c, and various reports about rebase for 2.26, I haven't been able to work on that stuff since the morning of March 4. And I've been ignoring some non-git stuff that I really need to work on. But hopefully I'll get to start cleaning things up soon and sending them on to the list for review. I keep hoping...

Previous: Phillip WoodNext: Phillip Wood
Message 6 of 14 in “sequencer: honor GIT_REFLOG_ACTION”
  1. sequencer: honor GIT_REFLOG_ACTIONElijah Newren via GitGitGadget, Apr 1, 2020
  2. Junio C HamanoApr 1, 2020
  3. Ian JacksonApr 1, 2020
  4. Elijah NewrenApr 2, 2020
  5. Phillip WoodApr 2, 2020
  6. Elijah NewrenApr 2, 2020
  7. Phillip WoodApr 2, 2020
  8. Elijah NewrenApr 2, 2020
  9. Phillip WoodApr 2, 2020
  10. Johannes SchindelinApr 7, 2020
  11. Elijah NewrenApr 7, 2020
  12. Johannes SchindelinApr 7, 2020
  13. Junio C HamanoApr 7, 2020
  14. sequencer: honor GIT_REFLOG_ACTIONElijah Newren via GitGitGadget, Apr 7, 2020

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.