ryppl / Boost2Git

Conversion to Git for Boost
http://jenkins.boost.org/job/Boost2Git
5 stars 6 forks source link

Remove redundant merge parents #23

Closed dabrahams closed 11 years ago

dabrahams commented 11 years ago

This is not yet working.

If you look at boostorg/smart_ptr@af86d7fd85cc68 in the Network Graph, you can quite clearly see that it merges boostorg/smart_ptr@fb2886a8 and its ancestor boostorg/smart_ptr@92a049a (among many others). The latter is totally redundant as far as Git is concerned.

dabrahams commented 11 years ago

This is still messed up, even if the graphs have changed a bit. One thing we see often is a commit with two parent links to the same commit, typically right at the tip of some Git ref. I suspect this of being related to the logic that resets branches when it discovers that a tree hasn't changed. The smart_ptr network graph remains a good place to look for such nonsense. It also has a nasty forest of branching in early history that I suspect of being nonsense.

dabrahams commented 11 years ago

12178621e3b391952df58462eaf1e610fd6004ae should fix the “two parent links to the same commit” part of the problem.

dabrahams commented 11 years ago

Actually I think that was the last part of the problem remaining. The rewrite includes code to make sure SVN revision numbers of merge sources increase monotonically for each source ref.

dabrahams commented 11 years ago

I'm afraid it's still not fixed. Something quite screwy is going on here. Just look at the crazy amount of change in https://github.com/boostorg/smart_ptr/commit/6021c62eb8dbc8b815b5aa8850e127708b0e170a, which has two identical merge parents.

dabrahams commented 11 years ago

Looks pretty decent to me now. I think I may have been misled by the network graph. For example, if you look at https://github.com/boostorg/smart_ptr/commit/79e9ab4dc0590821fe23abfe4513116f038d8237 in the graph you'll see two parents that look like they're the same commit, but at the top of that page you can see that the parents have distinct SHAs.