Re: [RFC] [PATCH 0/5] Implement 'prior' commit object links (and
From: Jakub Narebski <hidden>
Date: 2016-06-15 22:42:24
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