4 ms·
When was the last time you looked at Mercurial? Recently the community put a lot of effort into performance and it should be very close to git's performance. On
by somnium_sn 13y ago
When was the last time you looked at Mercurial? Recently the community put a lot of effort into performance and it should be very close to git's performance. On the flexibility site, Mercurial has the histedit extension as well as rebase which should give you most flexibility. The bare Mercurial is intended to not do much, but you have to enable a few of the shipped extensions in order to get all the functionality.
- ngoldbaum 13y agoIn particular, I wouldn't use mercurial without a .hgrc like this: [ui] editor = emacs -nw [extensions] color = pager = record = graphlog = purge = progress = transplant = [pager] pager = LESS='FSRX' less attend = annotate, cat, diff, export, glog, log, qdiff, heads histedit and rebase are also useful but not for my usual workflows.
- ezquerra 13y agoFor the record, you don't need to enable the transplant and graphlog extensions anymore. Those are now part of core mercurial: - The transplant extension has become the "graft" core command (do "hg help graft" for more details) - The graphlog extension functionality has been rolled into the core log command. You must simply use the --graph (or the equivalent -G) flag.
- ngoldbaum 13y agoNot quite - graft doesn't support remote repositories, transplant does. I didn't know about hg log --graph, I think the muscle memory I have for hg glog will take a little while to break :) Thanks for the tip.
- ygra 13y agoYou can always do [alias] glog = log --graph I guess.
- ezquerra 13y agoYou are right. That is a small limitation of the graft command compared to the transplant extension. As far as I know that is the only difference between them. I have never needed to do that so I forgot to mention it, sorry!
- Skinney 13y agoProblem with histedit and rebase though is that they won't allow you to change published history. This means if I want to push my changes to a backup repository (not the main development repository) I loose the option of rebasing my feature-branch before pushing it to the main repo :(
- jordigh 13y agoNo, problem with git rebase is that it allows you to do this. Read this part of the git manual: man git-rebase | grep -P "^RECOVERING" -A200 | less Phases are actually a feature that git wants (last idea here): https://github.com/peff/git/wiki/SoC-2012-Ideas https://github.com/peff/git/wiki/SoC-2012-Ideas You have some ways you can work with this in hg using phases. One example is to mark the repo you're publishing to as non-publishing so that hg knows it's safe to edit history pushed to that repo. Another way is to just tell hg that you know better and to use "hg phase --force --draft" whatever commits you want to histedit or rebase.
- egor_k8n 13y agoTake a look at Phases: http://mercurial.selenic.com/wiki/Phases http://mercurial.selenic.com/wiki/Phases What you need is to make your backup repository non-publishing. Just drop these lines in your .hg/hgrc file inside repo: [phases] publish = False