On 4/4/13 8:07 AM, Kartikaya Gupta wrote:
On 13-04-03 19:49 , Jesse Ruderman wrote:
+1.
But can we do this with rebased changesets instead of "trivial" merge
changesets? While the core of hg can handle merges, pretty much none of
the tools we rely on for understanding history (hg {log, grep, diff,
bisect}) handle them well.
Thinking about it a bit more, I'm actually warming up to the idea of
implementing this with rebased changesets rather than trivial merges. I
had assumed that hg supported merge changesets with >2 parents, but this
does not appear to be the case in my (limited) testing. Git allows you
to merge more than two heads/branches together but AFAICT hg does not.
So attempting to merge more than 1 patch from try at a time would in
fact result in chained merge nodes, which isn't great. Doing a rebase of
the try heads might work better.
You are correct.
Git supports N>2 parent merges (octopus merges). Mercurial does not.
Interesting trivia point: this is one of the very few incompatibilities
between the way Mercurial and Git structure commits and trees.
hg-git (the tool that converts Git and Mercurial repos to and from each
other) handles octopus merges by inserting extra Mercurial changesets
and then annotating those changesets to denote they came from the same
Git commit (so it can reconstruct the original Git commit).
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform