From: Jakub Narebski Date: Sat, 29 Apr 2006 18:27:02 GMT Subject: Re: [RFC] [PATCH 0/5] Implement 'prior' commit object links (and Message-ID: In-Reply-To: <20060429165151.2570.qmail@science.horizon.com> On Sat, 29 Apr 2006, linux@horizon.com wrote: > > Well, the only reason that you need ANY commit in the repository is > because it's part of history, and comparing it with other versions is > meaningful.  So what trees, not already in the ancestry graph of a > given commit, are useful to compare to?  In particular, useful for some > automated process; manual comparisons can always be done manually. > > Nothing's jumping out at me.  Any suggestions? See below. Not necessary all those require connectivity. Most of them are not my ideas. * "prior" - heads that represent topic branch merges     This is the "pu" branch case, where the head is a merge of several     topic branches that is continually moved forward.     topic branches     head       ,___.   ,___.      | TA1 | | TB1 |       `---'   `---'    ,__.          ^\_____^\____| H1 |                        `--'     + some topic branch changes and a republish:       ,___.   ,___.      | TA1 | | TB1 |       `---'   `---'^   ,__.         |^\_____^\____| H1 |         |       |      `--'       ,_|_.   ,_|_.      P      | TA2 | | TB2 |     |       `---'   `---'^     |         ^       ^        |       ,_|_.     |        |      | TA3 |    |        |       `---'     |      ,__.          ^\______\____| H2 |                        `--'     key:  ^ = parent   P = prior * "bind" - for subprojects bind links from master project commit to externally managed embedded third-party project, for example Linux kernel for some mainly userspace project, or library or engine for some application. Additionally it provides root dir where to attach subproject. * "original" for rebase before rebase: A---B---C topic / /           /      D---E---F---G master after rebase ------A---B---C / ^ ^ ^  / : : :            /        A'--B'--C' topic           /       /      D---E---F---G master where ':' denotes "original" link. Note that old branch is not pointed by any head, and would be pruned without connectivity * "original" or "cherrypick" for cherry-picking          A--------B---C bugfix / ^           / :      D---E---F---G---B'---H main * "revert" for reverting commits -- Jakub Narebski