Programming‎ > ‎Vcs‎ > ‎


Mercurial - 2005

This is a distributed system so it's much better to work with then CVS or SVN. 

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.

Mercurial source code management system

Git - 2005
TortoiseGit, SourceTree