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

Re: Strange git merge behaviour with empty branches

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 19, 2012, 19:51 UTC
Message-ID
<7vvcm09xoq.fsf@alter.siamese.dyndns.org>
In-Reply-To
<20120319185349.GH12789@mudshark.cambridge.arm.com>
Will Deacon <will.deacon@arm.com> writes:
> Any thoughts?

What is recorded in Octopus merges is a rather torn issue. The original motivation was to allow recording anything the user throws at us, even though some are ancestors of others, without reducing them to the minimum set of parents that are necessary to represent the full history, because that is after all what the user wanted to do. You see some of that there.

On the other hand, there was an edict from the original maintainer that we shouldn't record useless merge parents, so there were some changes in that direction to cull obviously redundant parents from the parent list.

But over time, novelty of Octopus merges waned, and nobody serious uses it for real work these days, except when bored and being curious, playing around and seeing what it does.

An advice for an end-user is "Don't throw meaningless parents at Octopus. It will do whatever it does, and the only guarantee you are getting is that it does not record wrong parents, it may omit obviously redundant parents, and it will never discard an independent parent."

An advice for a developer is to update it to make sure only the independent parents are recorded; "show-branch --independent" may be a good tool to compute them

Previous: Will Deacon
Message 2 of 2 in “Strange git merge behaviour with empty branches”
  1. Will DeaconMar 19, 2012
  2. Junio C HamanoMar 19, 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.