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

custom merge driver vs. CONFLICT (delete/modify)

From
SSSascha Silbe <sascha-ml-reply-to-2010-3@silbe.org>
Date
Sep 25, 2010, 20:43 UTC
Message-ID
<1285445444-sup-3857@flatty.sascha.silbe.org>
Hi!

I am (automatically) building snapshot packages by combining the packaging maintained in one repository (but also containing sources) with (more recent) upstream sources from another repository.

For some files (those touched by rerunning auto*) I want the local version to always take precedence. For some other files (autogen.sh, PO files) I want the upstream version to take precedence. For all the rest I want conflicts to produce an error.

This has worked fine so far by using custom merge drivers, but while adding the second one I encountered a problem: Merge drivers are only invoked for modify/modify (and maybe add/add) conflicts. More specifically a delete/modify conflict will cause git-merge to bail out directly without calling the merge driver to resolve the conflict. Such a conflict occurred because the packaging people removed autogen.sh (which is reasonable for them, but not for me).

Is there a way to either resolve all kinds of conflicts in favour of one side (like -X <side>) or always take one side (like -s <side>) for a specific set of files? Alternatively, is there a way to do a merge in multiple "steps", operating only on a subset of the files each time (so I can use -s <side> / -X <side> for two of three steps per merge)?

Sascha

-- http://sascha.silbe.org/ http://www.infra-silbe.de/

Next: Jakub Narebski
Message 1 of 3 in “custom merge driver vs. CONFLICT (delete/modify)”
  1. Sascha SilbeSep 25, 2010
  2. Jakub NarebskiSep 26, 2010
  3. Enrico WeigeltSep 26, 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.