Mercurial 3.0 (2014-05-01)
This is a regularly-scheduled quarterly feature release. Unlike
other 3.0 software releases, this is simply 2.9 + .1, so it should
be the usual pain-free upgrade.
1.1. Core features
cat: support explicit paths in subrepos
cmdserver: allow starting server without repository
clone: abort if default destination has no meaningful name (BC)
clone: put streaming clones in a transaction
color: add debugcolor command (issue4094)
color: allow color keywords to be used directly in template
commands: add -T as alternative to --template
commands: hg debuginstall checks missing templates (issue4151)
commit: --edit/-e allows editing commit message supplied through other means
config: add initial implementation of --edit (with --global and --local flags)
debuginstall: add Python information to debuginstall output (issue4128)
demandimport: support HGDEMANDIMPORT=disable to disable demandimport
hgweb: add metadata to atom and rss feed entries
http: reuse authentication info after the first failed request (issue3567)
log: change implementation to use graphlog code
push: provide a hint when no paths are configured (issue3692)
require: provide a link to a wiki page as well as suggesting upgrade
revset: new implementation with incremental evaluation
revset: try to handle hyphenated symbols if lookup callback is available
revset: add 'only()' revset
sshpeer: only print out 'running ssh' messages in debug mode (BC)
template: add ifcontains template function
template: add pad function for padding output
template: add revset() template function
template: add shortest(node) template function
template: add flexible -T option
win32: improve the performance of win32.unlink() over CIFS
1.2. Extension features
blackbox: log events related to branch cache
convert: avoid updating tags when there is nothing new
convert: compare tags from all heads instead of just one
convert: replace old sha1s in the description
extensions: mark win32text deprecated
extensions: remove interhg
extensions: remove the inotify extension (BC)
histedit: select the lowest rev when looking for a root in a revset (BC)
journal: report parsing errors on recover/rollback (issue4172)
qimport: allow importing URLs
1.3. Fixes
backout: don't limit ancestry check to a single ancestor
backout: improve confusing 'cannot backout change on a different branch' abort
caches: invalidate store caches when lock is taken
cmdserver: forcibly use L channel to read password input (issue3161)
cmdserver: reload mq on each runcommand request to avoid corruption
diff: use second filename for --stat reporting on git patches (issue4221)
dirstate: report bad subdirectories as match.bad, not just a warning (BC)
extensions: use normpath to allow trailing '\' on Windows (issue4187)
fncache: clean up fncache during strips
largefiles: changed overridelog to work with graphlog
largefiles: don't prompt when one side of merge was changed but didn't change
largefiles: remove directories emptied after their files are moved (issue3515)
parsers: fail fast if Python has wrong minor version (issue4110)
phases: apply publishing enforcement for "serve" source
revlog: deal with chunk ranges over 2G on Windows (issue4215)
setup.py: fix C extension compilation issue with OS X 10.9 and Xcode 5.1
subrepo: check return code for git push (issue4223)
1.4. Experimental features
bundle2: experimental support for bundle2
merge: experimental implementation of bid merge
merge: tell when .ancestor picks one of multiple common ancestors heads
Mercurial is a free, distributed source control management tool.
It efficiently handles projects of any size and offers an easy and
intuitive interface.
Mercurial efficiently handles projects of any size and kind. Every
clone contains the whole project history, so most actions are local,
fast and convenient. Mercurial supports a multitude of workflows
and you can easily enhance its functionality with extensions.
It is easy to learn: You can follow our simple guide to learn how
to revision your documents with Mercurial, or just use the quick
start to get going instantly. A short overview of Mercurial's
decentralized model is also available.
And it just works: Mercurial strives to deliver on each of its
promises. Most tasks simply work on the first try and without
requiring arcane knowledge.