4 ms·
I think the best argument against git is to use mercurial for a few months. It has exactly the same functionality but a nicer and more streamlined interface, es
by millimeterman 6y ago
I think the best argument against git is to use mercurial for a few months. It has exactly the same functionality but a nicer and more streamlined interface, especially when it comes to branch management.
- nickpeterson 6y agoYeah, when dvcs started becoming all the rage I tried mercurial first for some toy projects and really liked it. When I finally had to start using git I was absolutely baffled that it had won. I feel like git needs something that sits on top and does most the normal configuration and wraps the api. It reminds me of the problem with emacs, there is so much it’s just overwhelming to people.
- smichel17 6y agoTechnically this already exists; git commands are divided into two groups, plumbing and porcelain. Plumbing commands have stable interfaces and are intended for building alternative interfaces with; porcelain commands are intended to sit on top and be the actual user interface. They're what you're used to using.
- smichel17 6y agoDo you think mercurial has a better data model, or could git reach parity with just a better interface?
- millimeterman 6y agoI don't know anything about mercurial's internal data model, so it's hard to say. In particular, it makes some fundamentally different choices (e.g. no staging area, the ability to use unnamed branches). I certainly think git could do a lot better with its interface though.
- dreamcompiler 6y agoI love mercurial but since I've gotten used to git I miss the lack of the staging area and stash in mercurial. I have to grudgingly admit they're very useful.
- arp242 6y agoYou can get the "git stash" with the shelve extension: https://www.mercurial-scm.org/wiki/ShelveExtension https://www.mercurial-scm.org/wiki/ShelveExtension
- ptx 6y agoIn some cases (all my usecases, but perhaps yours are different) the staging area can be replaced by some combination of "hg commit --amend" and "hg commit --interactive" - or in older versions "hg rollback" and "hg record".
- arp242 6y agoI think this point can be concisely summarized with: $ git help commit | wc -l 506 $ hg help commit | wc -l 59 $ hg help commit -v | wc -l 96 Also, git currently has 169 subcommands by default, vs. mercurial's 50 (more available as extensions though).