Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Interesting - I was trying to get this concept to work a few years ago after I got a live SVN/Mercurial translator working, but it was very hard due to all the differences they note in this post.

One thing they don't mention is "octopus merges" - Git allows a merge to have more than two parents, while Mercurial does not. I'm sure there are other tiny edge cases, too; I wonder how they handle those?

Perhaps more to the point, I'm concerned that this means you're stuck using the lowest common denominator of both systems - for example, no hg bigfiles stuff.



I'll be publishing a series of articles that dive into the nitty-gritty of how Harmony works in the coming days, so I don't want to answer every single "How do you?..." question in this thread, but since you're the first one:

Git octopus merges of N parents are exploded into N-1 commits, each of which has some Harmony-specific metadata in its changeset extras field. We then use this data both to reassemble the octopus merge, and to prevent you pushing a changeset that has one of the "fake" octopus merges as a parent.


That's how I thought it'd work, just curious. Looking forward to reading up how it works - I hope it's not too fragile.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: