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

Re: [PATCH 9/9] rerere forget path: forget recorded resolution

From
Johannes Sixt <j6t@kdbg.org>
Date
Jan 11, 2010, 21:05 UTC
Message-ID
<201001112205.54404.j6t@kdbg.org>
In-Reply-To
<7v3a2cif04.fsf@alter.siamese.dyndns.org>
On Montag, 11. Januar 2010, Junio C Hamano wrote:
Show 8 quoted lines
> Actually it is _very_ easy to fool rerere to do something totally
> unexpected, and I have been thinking about using the similarity comparison
> algorithm on the region outside the conflicted area between preimage and
> thisimage and reject use of rerere.
>
> Try this in an empty directory.
>[snip]
> Now, immediately after this sequence, rerere will give you an disaster.

Indeed. The problem here is that two entirely different resolutions are recorded for the same conflict hash *in one run of rerere*. The damage can be avoided if conflict hashes are not reused in do_plain_rerere (in the first loop). (Though, I'm currently not in the mood to look into this in more depth.)

Of course, this does not mean that *both* conflicts can be resolved automatically when the merge is repeated. In my use-case this would have been desirable (and even your example would suggest it is, but that is not generally true).

-- Hannes
Previous: Junio C Hamano
Message 21 of 21 in “Undoing conflict resolution”
  1. 0/9 Undoing conflict resolutionJunio C Hamano, Dec 29, 2009
  2. 1/9 builtin-merge.c: use standard active_cache macrosJunio C Hamano, Dec 29, 2009
  3. 2/9 resolve-undo: record resolved conflicts in a new index extension sectionJunio C Hamano, Dec 29, 2009
  4. 3/9 resolve-undo: basic testsJunio C Hamano, Dec 29, 2009
  5. 4/9 resolve-undo: allow plumbing to clear the informationJunio C Hamano, Dec 29, 2009
  6. 5/9 resolve-undo: "checkout -m path" uses resolve-undo informationJunio C Hamano, Dec 29, 2009
  7. 6/9 resolve-undo: teach "update-index --unresolve" to use resolve-undo infoJunio C Hamano, Dec 29, 2009
  8. 7/9 rerere: remove silly 1024-byte line limitJunio C Hamano, Dec 29, 2009
  9. 8/9 rerere: refactor rerere logic to make it independent from I/OJunio C Hamano, Dec 29, 2009
  10. 9/9 rerere forget path: forget recorded resolutionJunio C Hamano, Dec 29, 2009
  11. Johannes SixtJan 5, 2010
  12. Junio C HamanoJan 6, 2010
  13. Johannes SixtJan 6, 2010
  14. Junio C HamanoJan 6, 2010
  15. Junio C HamanoJan 6, 2010
  16. Johannes SixtJan 8, 2010
  17. Junio C HamanoJan 8, 2010
  18. Junio C HamanoJan 11, 2010
  19. Johannes SixtJan 11, 2010
  20. Junio C HamanoJan 11, 2010
  21. Johannes SixtJan 11, 2010

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.