4 ms·
Branches are my biggest pain point in Mercurial. What branching workflow does Facebook use?
by natrius 13y ago
Branches are my biggest pain point in Mercurial. What branching workflow does Facebook use?
- k_bx 13y agoWhy not use standard mercurial branches? At least you're able to say in which branch commit was done and draw a clean history for them.
- natrius 13y agoI do use standard Mercurial branches, and I vastly prefer Git's model. I ask because there might be a better way to use them that I've overlooked.
- masklinn 13y agoMercurial's equivalent to git branches (movable pointer to a commit rather than embedded commit metadata) is bookmarks.
- fhd2 13y agoFrom what I've seen, bookmarks are not "branches" in any sense, really just pointers to commits. I've tried several times to use bookmarks for feature branches (read: branches developed in parallel to each other and the default branch). I thought I just can't figure it out, but it really seems impossible at this point.
- masklinn 13y ago> From what I've seen, bookmarks are not "branches" in any sense, really just pointers to commits. That's exactly what git branches are.
- michal8181 13y agoBranches in git are exactly pointers to graph. If you delete such a pointer you loose your branch. Even worse - with next git gc you will loose your data as parts of graph with no pointer is assumed to be dead by git.
- k_bx 13y agoWhat do you mean by "git model"? Creating branch per feature? But that's exactly what I do in mercurial!
- durin42 13y agoIn what way? Have you looked at bookmarks?
- fhd2 13y agoSame here. As outlined below, we tried to use bookmarks for feature branches a few times and it either doesn't work or we can't figure it out. We used permanent branches for feature branches for a while, but too many of those (even closed) would slow down the repository eventually. Our coping strategy is MQ. It's not the same, but solves the problem pretty well IMO. MQ patches can be sent around and backed up, so not being able to push them to the server is not such a big issue. Takes a little upfront investment to figure out how they work though, Mozilla has a pretty good guide [1]. [1]: https://developer.mozilla.org/en/docs/Mercurial_Queues https://developer.mozilla.org/en/docs/Mercurial_Queues