зеркало из https://github.com/microsoft/git.git
Cauterize dropped or duplicate bits from next.
I am very sorry to do this, but without this funky octopus, "git log --no-merges master..next" will show commits already merged into "master" forever. There are some commits on the next branch (which is never to be rewound) that are reverts of other commits on the next branch. They are to revert the finer grained delta experiments that turned out to have undesirable performance effects. Also there are some other commits that were first done as a merge into "next" (a pull request based on next) and then cherry picked into master. Since they are not going to be merged into "master" ever, they will stay forever in "log master..next". Yuck. So this commit records the fact that the commits currently shown by "git log --no-merges master..next" to be merged into "master" are already in the master, either because they really are (in the case of git-cvsserver bits, which needed cherry-picking into "master"), or because they are fully reverted in "next" (in the case of finer-grained delta bits). Here is the way I made this commit: (1) Inspect "gitk --no-merges --parents master..next" This shows what git thinks are missing from master. It shows chain of commits that are already merged and chain of commits whose net effect should amount to a no-op. Look at each commits and make sure they are either unwanted or already merged by cherry-picking. (2) Record the tip of branches that I do not want. In this case, the following were unwanted:cfcbd3427e
cvsserverc436eb8cf1
diff-delta38fd0721d0
diff-deltaf0bcd511ee
cvsserver2b8d9347aa
diff-delta (3) Shorten the list by finding independent ones from the above. $ git show-branch --independent $the $above $tipscfcbd3427e
c436eb8cf1
(4) Checkout "master" and cauterize them with "ours" strategy: $ git merge -s ours "`cat $this-file`" HEAD cfcbd3 c436eb
This commit is contained in:
Коммит
1c7fee5d08