Hg
My Mercurial cheat sheet! See also: git and svn
/etc/mercurial/hgrc
Contents |
~/.hgrc
[ui] username = Attie Grande <attie@attie.co.uk> verbose = True merge = internal:merge ignore = ~/.hgignore [defaults] revert = --no-backup [alias] br = branches lg = log -G --pager always rev = parent --template '{node} {branch}\n' ph = phase -r tip drafts = log -r 'draft()' [pager] pager = less -FRSX [diff] showfunc = true [color] # 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 [auth] # this is a bad idea... service1.schemes = http https service1.prefix = service.domain.com/ service1.username = attie service1.password = password [extensions] hgext.convert = pager = color = mq = record = shelve = graphlog = mercurial_keyring = histedit = rebase = [trusted] 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:
[paths] default = ${REMOTE_REPO}
Trust
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.
[trusted] users = alice, carl, dan groups = dev-team
Authentication (HTTP)
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:
[auth] 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>
[ui] ssh = tortpiseplink.exe -ssh -i "${KEY}"