Mercurial

Users accustomed to SVN are at risk of creating to many branches and die of mercury poisoning

Get the current working copy revision from command line.

Use the identify command and select if you like the local number or global id.

hg identify --num

hg identify --id

Extension: Rebase

When working on local changes and doing a update one can use the rebase extension to move the local changes to main branch to make it all look like a linear series of changes.

HG case-folding collision

Mercurial can handle file names that differ in case only in the repository. So egg.png and Egg.png is two different files. Trying to use that on windows as a working directory or merge will fail as windows see them as the same file. That can be solved by using the terminal in hg and rename one of the files and commit.

hg rename Egg.png egg.png

Undo local changes that have not been commited

Use revert on the files or revert --all.

Undo local changes that have been commited

Use the stip command to remove a changeset and all its descendants from the repository. To remove one or more changeset in the middle use rebase command and then strip.

Move some local commits from one branch to another

With the rebase command it is possible to move draft changesets from one place to another. It can be used to make the history more linear and avoid extra merges.

Collaps a groupd of local commits into one

Use the rebase -- collapse command.

Links