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

Re: How to populate index/worktree when recursive merge merges multiple common ancestors?

From
Shawn Pearce <spearce@spearce.org>
Date
Jun 30, 2014, 21:30 UTC
Message-ID
<CAJo=hJsVSqvEB4wnSp_RtfF3rMXyLWjm8kUXHxmOWmzYn6MM2Q@mail.gmail.com>
In-Reply-To
<CAENte7i3f_zvPmnPZe2s7guPv03o1d_Ln+nVaj5PYmP8uoK=rw@mail.gmail.com>

On Mon, Jun 30, 2014 at 5:48 AM, Christian Halstrick <christian.halstrick@gmail.com> wrote:

Show 9 quoted lines
>> They don't. The conflicts are preserved into the virtual ancestor. The
>> user only sees the final conflicts during merging of A and B with
>> virtual X3 as the common ancestor.
>
> Ah, now I understand. When I merge X1 and X2 into the virtual X3
> I should not stop if this is not doable without conflict resolution. I
> should store in memory the X3 content, including all the conflict
> markers. If I finally merge A and B I will specify a common base
> content which may contain conflict markers. Right?
Yes.

If X3 content is large, it could flow to loose objects on disk. These will be unreachable and cleaned up automatically in a future garbage collection.

> Are git config param's like merge.conflictstyle=diff3 are also
> effective when creating the virtual X3 content? Couldn't that lead to
> complicated conflict marker situations? In the area where you expect
> common base content you again see conflict markers in diff3 style.

Yes, but I think this is the correct behavior. The machine can't reconcile the two branches any better than this, so now a human has to step in and fix all of the conflicts.

IIRC, this is uncommon. Usually you use A's common content as A and B do not differ relative to X3 in the regions where X3 has a conflict, so those conflicts aren't considered relevant when A and B merge.

Previous: Christian Halstrick
Message 4 of 4 in “How to populate index/worktree when recursive merge merges multiple common ancestors?”
  1. Christian HalstrickJun 27, 2014
  2. Shawn PearceJun 27, 2014
  3. Christian HalstrickJun 30, 2014
  4. Shawn PearceJun 30, 2014

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.