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

Re: Edit a rerere conflict resolution

From
Vincent van Ravesteijn <vfr@lyx.org>
Date
Mar 12, 2012, 21:21 UTC
Message-ID
<4F5E68C5.5070300@lyx.org>
In-Reply-To
<7vd38hr22e.fsf@alter.siamese.dyndns.org>
Op 12-3-2012 21:34, Junio C Hamano schreef:
Show 20 quoted lines
> Vincent van Ravesteijn<vfr@lyx.org>  writes:
>
>> Op 12-3-2012 21:01, Junio C Hamano schreef:
>> ...
>>> I haven't find it necessary in practice, as the re-fix for me
>>> typically would go like this:
>>>
>>>       $ git merge other-branch
>>>       ... rerere kicks in; eyeball the results
>>>       ... ah, my earlier resolution is no longer correct
>>>       $ edit $the_path
>>>       ... test the result of manual edit in the context of the merged whole
>>>       ... and be satisified
>>>       $ git rerere forget $the_path
>>>       $ git add $the_path
>>>       $ git commit
>>>       ... rerere records the updated resolution
>>>
>>> What scenario do you have in mind that you would need to re-fix more
>>> resolution than you need?

Here I was mistaken. I assumed that you could run 'git rerere forget' always and thus removing all conflict resolutions for a certain path. Now I see that the documentation clearly says "current conflict in <pathspec>"

Show 9 quoted lines
> The problem I have with "rerere edit" is it is an offline process,
> and to validate that the update is correct, I would have to have the
> problematic merge in my working tree once _anyway_.  And at that
> point, updating the target file in the working tree and recording
> the updated resolution using the usual "git rerere" feels a more
> natural way to do so, and more importantly, it is a more convenient
> way to do the "update and validate".  On the other hand, "rerere
> edit" is a more convenient way to "update but not validate the
> result".

This last part probably makes the difference indeed. In my case the merge resolution was very very easy (the conflicting hunks have fileformat version numbers), but it is a bit annoying and it requires some 'vim'-skills to redo the merge conflict just to correct a newline somewhere, or a missing ','.

As I wrote, the merge resolutions in my case were very easy (logically), but just annoying (motorically). These could even be resolved by some merge-conflict hook.

Examples:
- for this file we know the conflict always has to be resolved by adding 
the oldest hunk before the newest hunk. For example, new file formats 
will be added sequentially to a file.
- for this file we can resolve it anyway we want. For example, a release 
notes file which just enumerates all changes in random order.
Anyway, has anyone thought about such a hook ?
Vincent
Previous: Junio C HamanoNext: Junio C Hamano
Message 5 of 16 in “Edit a rerere conflict resolution”
  1. Vincent van RavesteijnMar 12, 2012
  2. Junio C HamanoMar 12, 2012
  3. Vincent van RavesteijnMar 12, 2012
  4. Junio C HamanoMar 12, 2012
  5. Vincent van RavesteijnMar 12, 2012
  6. Junio C HamanoMar 12, 2012
  7. Vincent van RavesteijnMar 12, 2012
  8. Jakub NarebskiMar 12, 2012
  9. Junio C HamanoMar 12, 2012
  10. Vincent van RavesteijnMar 16, 2012
  11. Junio C HamanoMar 16, 2012
  12. Vincent van RavesteijnMar 16, 2012
  13. Junio C HamanoMar 16, 2012
  14. Vincent van RavesteijnMar 16, 2012
  15. Junio C HamanoMar 16, 2012
  16. Vincent van RavesteijnMar 17, 2012

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.