~/ Mercurial for Git Evangelists
I’ve been playing around with mercurial as of late as a way to enhance what I know about git and version control in general. These are my in-progress notes.
A lot of things are familiar
hg help
behaves likegit help
hg init
behaves likegit init
.hg status
behaves likegit status
.- but with more cryptic responses:
$ touch newfile && hg status #=> ? newfile
- no output indicates a clean working directory
hg sum
tells you the state of the working directory
- but with more cryptic responses:
hg add
behaves likegit add <file>
hg commit
behaves likegit commit
.
Revisions, not SHA1s
hg log
is similar to git log
, with a few important differences.
$ hg log --graph --style=compact
@ 2[tip] 3afb761704c7 2014-12-06 11:14 -0500 jesse
| third commit
|
o 1 2d9ef30807a4 2014-12-06 11:09 -0500 jesse
| second commit
|
o 0 ff70fcdc63f9 2014-12-06 11:07 -0500 jesse
initial commit
Instead of SHA1 hashes to label commits, mercurial uses revision numbers. This means reverting changes
is easy as hg update 1
or hg update 0
. The @
symbol indicates which revision your working directory is in, ie
git’s HEAD
.
Multiple HEADs
hg update
feels a bit like git reset
, but is less dangerous in terms of its ability to rewrite history.
~/ Posted by Jesse Shawl on 2014-12-08