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

Re: first-class conflicts?

From
Elijah Newren <newren@gmail.com>
Date
Nov 7, 2023, 08:16 UTC
Message-ID
<CABPp-BH7WBm1j-Ue9oZFjoy6sTcw5B0hz_ndDEtJqvpZF4YF=w@mail.gmail.com>
In-Reply-To
<87cywmintp.fsf@ellen.idiomdrottning.org>

On Mon, Nov 6, 2023 at 1:26 PM Sandra Snan <sandra.snan@idiomdrottning.org> wrote:

>
> Is this feature from jj also a good idea for git?
> https://martinvonz.github.io/jj/v0.11.0/conflicts/

Martin talked about this and other features at Git Merge 2022, a little over a year ago. I talked to him in more depth about these while there. I personally think he has some really interesting features here, though at the time, I thought that the additional object type might be too much to ask for in a Git change, and it was an intrinsic part of the implementation back then.

Martin also gave us an update at the 2023 Git Contributors summit, and in particular noted a significant implementation change to not have per-file storage of conflicts, but rather storing at the commit level the multiple conflicting trees involved. That model might be something we could implement in Git. And if we did, it'd solve various issues such as people wanting to be able to stash conflicts, or wanting to be able to partially resolve conflicts and fix it up later, or be able to collaboratively resolve conflicts without having everyone have access to the same checkout.

But we'd also have to be careful and think through usecases, including in the surrounding community. People would probably want to ensure that e.g. "Protected" or "Integration" branches don't get accept fetches or pushes of conflicted commits, git status would probably need some special warnings or notices, git checkout would probably benefit from additional warnings/notices checks for those cases, git log should probably display conflicted commits differently, we'd need to add special handling for higher order conflicts (e.g. a merge with conflicts is itself involved in a merge) probably similar to what jj has done, and audit a lot of other code paths to see what would be needed.

I think it'd be really interesting to at least investigate, but it'd also be a lot of work, and I already have several other things I've been wanting to get back to for over a year and haven't succeeded in generating more time for Git.

Anyway, just my $0.02. Elijah

Previous: Junio C HamanoNext: Dragan Simic
Message 13 of 25 in “first-class conflicts?”
  1. Sandra SnanNov 6, 2023
  2. Dragan SimicNov 6, 2023
  3. Sandra SnanNov 6, 2023
  4. rsbecker@nexbridge.comNov 6, 2023
  5. Sandra SnanNov 6, 2023
  6. Phillip WoodNov 7, 2023
  7. Sandra SnanNov 7, 2023
  8. Theodore Ts'oNov 7, 2023
  9. Junio C HamanoNov 11, 2023
  10. Sandra SnanNov 11, 2023
  11. Theodore Ts'oNov 12, 2023
  12. Junio C HamanoNov 12, 2023
  13. Elijah NewrenNov 7, 2023
  14. Dragan SimicNov 7, 2023
  15. Sandra SnanNov 7, 2023
  16. Phillip WoodNov 7, 2023
  17. Martin von ZweigbergkNov 7, 2023
  18. Elijah NewrenNov 8, 2023
  19. Martin von ZweigbergkNov 8, 2023
  20. Elijah NewrenNov 10, 2023
  21. Martin von ZweigbergkNov 12, 2023
  22. phillip.wood123@gmail.comNov 9, 2023
  23. Elijah NewrenNov 8, 2023
  24. Phillip WoodNov 9, 2023
  25. Elijah NewrenNov 10, 2023

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.