But, above all, it's paramount to read:
- Mercurial: The Definitive Guide (HTML)
- Mercurial: The Definitive Guide (Documentation)
The CLI consists on a long list of hg subcommands:
# hg -v help
Mercurial Distributed SCM
list of commands:
add:
add the specified files on the next commit
addremove:
add all new files, delete all missing files
annotate, blame:
show changeset information by line for each file
archive:
create an unversioned archive of a repository revision
backout:
reverse effect of earlier changeset
bisect:
subdivision search of changesets
bookmarks:
track a line of development with movable markers
branch:
set or show the current branch name
branches:
list repository named branches
bundle:
create a changegroup file
cat:
output the current or given revision of files
clone:
make a copy of an existing repository
commit, ci:
commit the specified files or all outstanding changes
copy, cp:
mark files as copied for the next commit
diff:
diff repository (or selected files)
export:
dump the header and diffs for one or more changesets
forget:
forget the specified files on the next commit
graft:
copy changes from other branches onto the current branch
grep:
search for a pattern in specified files and revisions
heads:
show current repository heads or show branch heads
help:
show help for a given topic or a help overview
identify, id:
identify the working copy or specified revision
import, patch:
import an ordered set of patches
incoming, in:
show new changesets found in source
init:
create a new repository in the given directory
locate:
locate files matching specific patterns
log, history:
show revision history of entire repository or files
manifest:
output the current or given revision of the project manifest
merge:
merge working directory with another revision
outgoing, out:
show changesets not found in the destination
parents:
show the parents of the working directory or revision
paths:
show aliases for remote repositories
phase:
set or show the current phase name
pull:
pull changes from the specified source
push:
push changes to the specified destination
recover:
roll back an interrupted transaction
remove, rm:
remove the specified files on the next commit
rename, move, mv:
rename files; equivalent of copy + remove
resolve:
redo merges or set/view the merge status of files
revert:
restore files to their checkout state
rollback:
roll back the last transaction (dangerous)
root:
print the root (top) of the current working directory
serve:
start stand-alone webserver
showconfig, debugconfig:
show combined config settings from all hgrc files
status, st:
show changed files in the working directory
summary, sum:
summarize working directory state
tag:
add one or more tags for the current or given revision
tags:
list repository tags
tip:
show the tip revision
unbundle:
apply one or more changegroup files
update, up, checkout, co:
update working directory (or switch revisions)
verify:
verify the integrity of the repository
version:
output version and copyright information
additional help topics:
config Configuration Files
dates Date Formats
diffs Diff Formats
environment Environment Variables
extensions Using Additional Features
filesets Specifying File Sets
glossary Glossary
hgignore Syntax for Mercurial Ignore Files
hgweb Configuring hgweb
merge-tools Merge Tools
multirevs Specifying Multiple Revisions
patterns File Name Patterns
phases Working with Phases
revisions Specifying Single Revisions
revsets Specifying Revision Sets
subrepos Subrepositories
templating Template Usage
urls URL Paths
global options:
-R --repository REPO repository root directory or
name of overlay bundle file
--cwd DIR change working directory
-y --noninteractive do not prompt, automatically
pick the first choice for
all prompts
-q --quiet suppress output
-v --verbose enable additional output
--config CONFIG [+] set/override config option
(use 'section.name=value')
--debug enable debugging output
--debugger start debugger
--encoding ENCODE set the charset encoding
(default: UTF-8)
--encodingmode MODE set the charset encoding mode
(default: strict)
--traceback always print a traceback on exception
--time time how long the command takes
--profile print command execution profile
--version output version information and exit
-h --help display help and exit
[+] marked option can be specified multiple times
Of course man pages are available at HG(1).
For instance:
$ man hg
Mercurial Manual HG(1)
NAME
hg - Mercurial source code management system
SYNOPSIS
hg command [option]... [argument]...
DESCRIPTION
The hg command provides a command line
interface to the Mercurial system.
COMMAND ELEMENTS
...
OPTIONS
...
In addition there's a quick and cool HTTP option.
All that's required is to create an empty repository and start the server.
# cd /var/tmp
# hg init sample
# hg serve -d -p 8000 -R sample -A /tmp/access -E /tmp/error
Assume that the previous commands were given at the mercurial host.
Just point a web browser to http://mercurial:8000/help to get started.
The access log will immediately starting tracking activity.
# cat /tmp/access
192.168.0.100 ... "GET /help HTTP/1.1" 200 -
192.168.0.100 ... "GET /static/mercurial.js HTTP/1.1" 304 -
192.168.0.100 ... "GET /static/style-paper.css HTTP/1.1" 304 -
192.168.0.100 ... "GET /static/hgicon.png HTTP/1.1" 304 -
192.168.0.100 ... "GET /static/hglogo.png HTTP/1.1" 304 -
To stop the web server:
# pgrep -f 'hg serve -d -p 8000'
16737
# pkill -f 'hg serve -d -p 8000'