From Attie's Wiki
Jump to: navigation, search

My Mercurial cheat sheet! See also: git and svn

Note: By the way... there is a system-wide config file, here: /etc/mercurial/hgrc



username = Attie Grande <attie@attie.co.uk>
verbose = True
merge = internal:merge
ignore = ~/.hgignore
revert = --no-backup
br = branches
lg = log -G --pager always
rev = parent --template '{node} {branch}\n'
ph = phase -r tip
drafts = log -r 'draft()'
pager = less -FRSX
showfunc = true
# configure colors for each possible hg status
status.modified = blue bold
status.added = green bold
status.removed = red bold
status.deleted = cyan bold
status.unknown = magenta bold
status.ignored = white bold
# and for hg diff output also
diff.diffline = bold
diff.extended = cyan bold
diff.file_a = white bold
diff.file_b = white bold
diff.hunk = cyan
diff.deleted = red
diff.inserted = green
diff.changed = white
diff.trailingwhitespace = bold red_background
# this is a bad idea...
service1.schemes = http https
service1.prefix = service.domain.com/
service1.username = attie
service1.password = password
hgext.convert = 
pager = 
color = 
mq = 
record = 
shelve = 
graphlog = 
mercurial_keyring = 
histedit = 
rebase = 
users = alice, carl, dan

Git Conversion

Git Command Hg Command Comment
git show HEAD hg log -pr tip
git show ${COMMIT} hg log -pr ${COMMIT}
git commit -p hg record
git pull hg pull -u
git fetch hg pull
git log hg log -f Mercurial's log lies... it includes everything - be careful!
git checkout -b ${BRANCH_NAME} hg branch ${BRANCH_NAME}
git cherrypick ${COMMIT} hg graft ${COMMIT}

For more see here

Default Push

If you create a local repository, and later want to push it to a remote repo, then you'll need to setup the default-push target.
Put the following in your ./.hg/hgrc file:

default = ${REMOTE_REPO}


If you've seen a message similar to the following:

Not trusting file /home/alice/repo/.hg/hgrc from untrusted user alice, group users

Add the following section to your ~/.hgrc file with one or both of the lines.

users = alice, carl, dan
groups = dev-team

Authentication (HTTP)

WARNING: You didn't hear this from me... You should never use it (think SSH with keys)

If you're using the mercurial_keyring extension, then you can leave the '*.password' line out for slightly improved security.

If you're using HTTP to access a repository, you can add the following section to your ~/.hgrc file:

svr.prefix = http://my.server/
svr.username = attie
svr.password = supersecret
svr2.prefix = http://my.server2/
svr2.username = attie
svr2.password = supersecret

Authentication (TortoiseHg & SSH keys)

I've seen a number of computers have issues with using MercurialHg with PPK keys and pageant (*.ppk keys)... The fix isn't nice, but it works. Add the following to your </code>mercurial.ini</code>

ssh = tortpiseplink.exe -ssh -i "${KEY}"
Personal tools