3 ms·
We (BitKeeper guys) have fought with this sort of problem a lot. In theory we should be better than git at this stuff and in some cases we actually are, but in
by luckydude 13y ago
We (BitKeeper guys) have fought with this sort of problem a lot.
In theory we should be better than git at this stuff and in some cases we actually are,
but in some cases we are worse.
One class of problems that OP referred to is when you pull non-rebased csets into a cset
that has been rebased. If the contents on both sides are identical I believe Git will
handle that nicely (as will BK).
Where it gets hard is if you have changes on top of the history past the rebase and past
the rebase point on the other branch. The version control system will think all of that
crap is unique when only a little of it is.
Here's an example:
GCA:
A;
B;
C;
D;
Left branch:
A;
A2;
B;
C;
Right branch:
if (whatever) {
A;
B;
C;
D;
}
Everybody currently makes this sort of thing hard to merge, it looks like a bigger change than it is.
We're fixing it but it's a huge pile of heuristics that make me vomit.