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

Re: The coolest merge EVER!

From
Junio C Hamano <junkio@cox.net>
Date
Jun 24, 2005, 00:44 UTC
Message-ID
<7v64w4d1n6.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<Pine.LNX.4.58.0506221433540.2353@ppc970.osdl.org>
>>>>> "LT" == Linus Torvalds <torvalds@osdl.org> writes:

LT> Now, the advantage of this kind of merge is that Paul's original gitk LT> repository is totally unaffected by it, yet because I now have his history LT> (and the exact same objects), the normal kind of git merge should work LT> fine for me to continue to import Paul's work - we have the common parent LT> needed to resolve all differences.

This clearly shows that you are in the "project lead" integrator mindset. Making it easy for you, the integrator, to pull changes made in Paul's tree is what this "coolest merge ever" is all about, but I suspect there would be a massive additional support needed if you want to make it easy for Paul to pull changes made to gitk in your tree.

I am not saying I do not like it, however, to make it easy for Paul to pull changes made in your tree relevant only to gitk part, off the top of my head:

 - If a contributor to GIT wants to make a change to gitk that
   adds a new file that is used by gitk (say, some common tcl
   library thing to be included), we either need to feed them to
   Paul and get the changes propagate to you through him, or we
   need a way to mark that file somehow belonging to the
   development history rooted at gitk root, not GIT root.
 - Similarly, if a contributor to GIT wants to make a change to
   gitk file itself, feeding the change through Paul to you
   would lesson both your burden and Paul's.
 - Alternatively Paul can keep track of which files are relevant
   to gitk, slurp and merge commits while ignoring the files the
   gitk package does not care about.  This one would involve
   interesting scripting somebody may want to tackle (hint,
   hint).

Long time ago I had a discussion with somebody (I vaguely recall it was with Dan Barkalow but I am not sure) about this exact issue. He wanted to have a way to distinguish Cogito-only part and core GIT part in a Cogito source tree, and help developers feed core changes to you and Cogito changes to Petr.

Back then I dismissed that approach by saying that what is broken was Cogito's source tree structure, which overlays two projects that are theoretically separable and practically managed separately, and it is not worth supporting such a broken source tree structure. Now you are making GIT source tree such an overlayed one.

Previous: Jeff GarzikNext: Matthias Urlichs
Message 4 of 7 in “The coolest merge EVER!”
  1. Linus TorvaldsJun 22, 2005
  2. Jon SeymourJun 23, 2005
  3. Jeff GarzikJun 23, 2005
  4. Junio C HamanoJun 24, 2005
  5. Matthias UrlichsJun 24, 2005
  6. Daniel BarkalowJun 24, 2005
  7. Linus TorvaldsJun 24, 2005

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.