4 ms·
Mercurial support, fuck yeah: https://hg.sr.ht/ https://hg.sr.ht/ This is the killer feature for me. Why Mercurial? Here’s a list of Mercurial features that
by jordigh 8y ago
Mercurial support, fuck yeah:
https://hg.sr.ht/ https://hg.sr.ht/
This is the killer feature for me.
Why Mercurial?
Here’s a list of Mercurial features that I think are really cool:
Revsets – a domain-specific language for querying your commits
Templates – a domain-specific language for altering the output of almost every command. Putting together these two you can do things like this: http://jordi.inversethought.com/blog/customising-mercurial-like-a-pro/ http://jordi.inversethought.com/blog/customising-mercurial-l...
Evolution – a distributed and safe way to share rewrites (think automatically recovering from upstream rebase without any git reset --hard and no git push --force).
Absorb – automatically amends an entire stack of WIP commits at once by picking the right diffs from your working directory based on which commits’ contexts they fit best.
Curses interface for hunk-picking – a unified interface for splitting diffs for any purpose: whether to revert working-directory changes, write a new commit, uncommit parts of a commit, or amend a commit with more diffs. Just add --interactive to any of those commands and start picking hunks!
A fairly rich built-in web interface – hg serve and point your browser to http://localhost:8000 http://localhost:8000 and you’re good to go.
Lots of support for monorepos – indeed, this is the main reason that Google, Facebook, and Mozilla are all pouring work into hg and are using it.
A consistent UI – this one is more subjective but often-touted feature of Mercurial. If a command accepts a revision/hash/tag/bookmark; it always uses the -r/--rev flag for it (and you can also always use a revset for any command that accepts a revision). If a command allows hunk selection, it always uses the -i/--interactive flag for it. The help for every command fits in about a screenful.
Give it a try! Mercurial is neat!
- morpheuskafka 8y ago> a domain-specific language for querying your commits Meanwhile I google "how to print commit history git" for the 100th time...
- jordigh 8y agoI admit, I do `hg help revsets` with some regularity, because I do need to look up the right functions that can perform the query I want, but it's really just a reference check, not a check on the syntax of the language.
- JetSpiegel 8y agoJust use gitk...
- thekelvinliu 8y agoi threw this alias in my .gitconfig early on, and it's gotten the job done so far... hist = log --graph --pretty=format:'%Cred%h%Creset %s%C(yellow)%d%Creset %Cgreen(%cr)%Creset [%an]' --abbrev-commit --date=relative
- taspeotis 8y agoIt's also dying [1]. Git's the only version control system that's got legs [2]. [1] https://trends.google.com/trends/explore?date=all&q=%2Fm%2F08441_ https://trends.google.com/trends/explore?date=all&q=%2Fm%2F0... [2] https://trends.google.com/trends/explore?date=all&q=%2Fm%2F08441_,%2Fm%2F05vqwg,%2Fm%2F012ct9,%2Fm%2F08w6d6 https://trends.google.com/trends/explore?date=all&q=%2Fm%2F0...
- jordigh 8y agoI hope you're not just justifying to yourself why you shouldn't learn about something new and interesting. I'm well aware that everything is git. This doesn't mean that everything should be git.
- colemickens 8y agoIsn't Facebook investing heavily? I'm more interested in 'good' than popular, when it comes to virtually all personal tech decisions and am inspired by this thread to try out Mercurial, especially as I want to move everything to a sourcehut/sr.ht instance.
- qbaqbaqba 8y agoSo does Mozilla.
- mikro2nd 8y agoPerhaps the search trends are more an indication of how often people shoot themselves in the foot with git and have to search for a way to unshoot their feet vs. how seldom that happens with hg. Or perhaps they're reflecting GitHub's dominance in the forge space and the fact that they only offer git, so a whole lot of people are more-or-less forced to learn something about git, so searches... Or perhaps they're reflecting something about hg users preferring other search-engines than Google... Drawing any sort of conclusive correlation between those Google search trends and actual usage or desire to use one or other distributed VCS is a fool's game.
- chriswarbo 8y agoMercurial seems to be a "nicer" version of git, which doesn't seem to be enough of a difference to avoid the git bandwagon. Projects like pijul interest me, since they work in a fundamentally different way. Pijul is a "nicer" version of darcs. Git killed darcs not by being nicer but by being faster, and pijul is also faster than darcs, so maybe there's hope ;) (Of course, most of git's momentum came from huge projects using it, like Linux and Xorg; yet being huge is precisely what forced those projects to favour speed at the cost of "niceness". If a "nice" system existed that was fast enough to handle Linux, Torvalds would probably never have written git).
- simula67 8y ago> Lots of support for monorepos – indeed, this is the main reason that Google, Facebook, and Mozilla are all pouring work into hg and are using it. They are improving mercurial[1], but are they using it ? [1] https://code.fb.com/core-data/scaling-mercurial-at-facebook/ https://code.fb.com/core-data/scaling-mercurial-at-facebook/
- lclarkmichalek 8y agoYes
- gcb0 8y agoI honestly did. But since my employer uses git, i ended up forgetting all the hg routine during the week. In the end, it is nicer, but not as nice to miss it that much over git (granted, i do know by heart all the dances to make git bearable, since I have to use anyway)
- fxfan 8y agoBesides speed and github, git really hasn't gotten much going for it. Unfortunately the latter is too big of a force. Git UI is just terrible. I am sad that Microsoft chose git for VFS and not mercurial. Mercurial would have worked great for their windows mono-repo
- masklinn 8y ago> A fairly rich built-in web interface – hg serve and point your browser to http://localhost:8000 http://localhost:8000 and you’re good to go. Also works properly out of the box for ad-hoc sharing. I literally never managed to get `git daemon` to work to share stuff between two machines or with colleagues, I've no idea what is wrong and it doesn't provide any human-readable let alone actionable information, all I know is that even from the same machine the git client can't connect to the git daemon. That's it.