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

Re: Git Merge 2020 slides and reproducibility

From
KTKonstantin Tokarev <annulen@yandex.ru>
Date
Mar 7, 2020, 19:38 UTC
Message-ID
<3207561583597253@iva2-fa9fd5fad11f.qloud-c.yandex.net>
In-Reply-To
<CABPp-BECOarg+G-_oz83i0EuKuypJQA=wyjnfG4U0heG=0L0hg@mail.gmail.com>
07.03.2020, 19:03, "Elijah Newren" <newren@gmail.com>:
Show 21 quoted lines
> On Sat, Mar 7, 2020 at 5:38 AM Konstantin Tokarev <annulen@yandex.ru> wrote:
>>  06.03.2020, 18:00, "Elijah Newren" <newren@gmail.com>:
>>  > Hi,
>>  >
>>  > Had a few different folks ask me at Git Merge about slides for my
>>  > talk. I said I'd post them on github somewhere, but in case you were
>>  > one of the folks and have a hard time finding it...they are up at
>>  > https://github.com/newren/presentations/blob/pdfs/merge-performance/merge-performance-slides.pdf
>>  > and steps to reproduce the speedups I got can be found at
>>  > https://github.com/newren/git/blob/git-merge-2020-demo/README.md
>>  > (though be forewarned that the code is has lots of fixmes & ifdefs &
>>  > other problems, has awful commit messages, etc.; I will be cleaning it
>>  > up soon).
>>
>>  Hello, I've just tried your branch on my repository and it seems like it can
>>  be a salvation from all rename-related pain that I'm regularly facing when
>>  doing merges and cherry-picks! Thank you very much, I hope it will be
>>  integrated into mainline soon.
>
> Wow, thanks for trying it out. Please note that while it _might_ be
> okay to use for real work, I am not that confident that it is.
Do not worry, I've made full copy of repo before trying anything.
Show 17 quoted lines
> There
> are a number of factors making the 'demo' label I gave it a rather
> fitting one:
>
>   * I only started using it personally on a real world repository (or
> two) about a week and a half ago. (Before then, I knew merge-ort
> didn't work.)
>   * The second real world repo I used it on uncovered a bug in my code
> that the testsuite didn't catch[1]
>   * Although I've tested with two real world repos now, that testing
> was very minimal; I was focused on getting the demo ready and
> implementing as many optimizations as I could.
>   * While the outer merge, rebase, and cherry-pick commands will
> accept a bunch of merge-machinery options and pass them along,
> merge-ort flat ignores them all.
>   * merge-ort is hardcoded for merge.directoryRenames=true, when the
> default should be merge.directoryRenames=conflict

directoryRenames=true is actually one of features which I was badly missing and somehow overlooked.

Show 21 quoted lines
>   * it has a bunch of FIXMEs, some of which are code cleanliness
> issues but some of which represent minor bugs
>
> [1] https://lore.kernel.org/git/911de63afa274b0791e4d4252934a5e9b0031f10.1582762465.git.gitgitgadget@gmail.com/
>
> Also...
>
>>  However, when testing my previous merges which had to be done with helper
>>  script, I've encountered case of
>>
>>  CONFLICT (directory rename split)
>>
>>  Is there any way to prevent conflict in this case if files are the same, and
>>  merge their contents if there are differences? I think it would be reasonable
>>  to assume that move done in newest commit should win, and allow user
>>  to change strategy via command line option, provide explicit hint where files
>>  should be moved, or maybe even decide it interactively.
>
> This conflict message is known to trigger in some cases where it
> shouldn't; it may be that you're just experiencing annoyance from
> that. Let me fix that issue before worrying about workarounds.

Well, in my case a directory of files was moved path A in one of merged heads and to path B in another, so I guess it was legitimate.

Are you going to continue development in the same branch? When do you expect it to be ready for review?

-- 
Regards,
Konstantin
Previous: Elijah NewrenNext: Elijah Newren
Message 6 of 8 in “Git Merge 2020 slides and reproducibility”
  1. Elijah NewrenMar 6, 2020
  2. Derrick StoleeMar 6, 2020
  3. Matheus Tavares BernardinoMar 6, 2020
  4. Konstantin TokarevMar 7, 2020
  5. Elijah NewrenMar 7, 2020
  6. Konstantin TokarevMar 7, 2020
  7. Elijah NewrenMar 9, 2020
  8. Konstantin TokarevMar 10, 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.