Release Notes
Features and bugfixes in our latest releases.
Be sure to read the upgrade notes when upgrading.
Contents
- Mercurial 1.9 (2011-07-01)
- Mercurial 1.8.4 (2011-06-01)
- Mercurial 1.8.3 (2011-05-01)
- Mercurial 1.8.2 (2011-04-01)
- Mercurial 1.8.1 (2011-03-10)
- Mercurial 1.8 (2011-03-01)
- Mercurial 1.7.5 (2011-02-01)
- Mercurial 1.7.4 (2011-02-01)
- Mercurial 1.7.3 (2011-01-01)
- Mercurial 1.7.2 (2010-12-01)
- Mercurial 1.7.1 (2010-11-15)
- Mercurial 1.7 (2010-11-01)
(See archive for older versions.)
1. Mercurial 1.9 (2011-07-01)
This is a regular feature release. See UpgradeNotes for some minor compatibility notes.
1.1. Major features
New fileset file matching support
- Improved remote changeset discovery
New command server mode to improve application integration
- Experimental generaldelta storage scheme
- Experimental new http client library
1.2. Command changes
- HGPLAIN: allow exceptions to plain mode, like i18n, via HGPLAINEXCEPT
- manifest: add new option --all
- aliases: add positional arguments to non-shell aliases
add: introduce a warning message for non-portable filenames (issue2756)
- add: notify when adding a file that would cause a case-folding collision
bisect: new command to extend the bisect range (issue2690)
- bookmarks: allow deactivating current bookmark with -i
- bundle: update current bookmark to most recent revision on current branch
- diff: make diff -c aware of revision sets
help: add -c/--command flag to only show command help (issue2799)
- help: add -e/--extension switch to display extension help text
help: move hgignore man page into built-in help (issue2769)
- http: correctly handle redirects from http to https
- identify: list bookmarks for remote repositories
- import: add --bypass option
- paths: Add support for -q/--quiet
- pushkey: add hooks for pushkey/listkeys
- revset: add aliases
- revset: add ^ and ~ operators from parentrevspec extension
- revset: add a revset command to get bisect state
- revset: add desc(string) to search in commit messages
- revset: add follow(filename) to follow a filename's history across copies
- revset: introduce filelog() to emulate log's fast path
- revset: add a last() function
1.3. Web changes
- add bookmarks listing to raw style and summary pages
- support alternate logo url
add base link to file log for paper and coal styles (issue2452)
- paper, coal: display diffstat on the changeset page
- elapsed time calculation dynamic (javascript)
- provide diffstat and summary on the changeset page
1.4. Extension changes
hgcia: handle URL like in notify (issue2406)
rebase: add -m/--message to rebase --collapse (issue2389)
- Updating hgext.extdiff to use revsets
- bash_completion: enable alias auto-complete
- bugzilla: add XMLRPC interface
- color: add support for terminfo-based attributes and color
- convert/mtn: add support for using monotone's "automate stdio" when available
- convert/svn: stop using svn bindings when pushing to svn
- convert: add bookmark support for hg and git backends
- convert: add svnrev, svnpath and svnuuid template keywords
- extdiff: add repository root as a variable
- graphlog: support more log command features with revsets
- keyword: convert a verbatim block to a field list
- keyword: offer additional datefilters when the extension is enabled
- mq: add a 'mq()' revset predicate that returns applied mq csets
- notify: send changesets on 'outgoing' hook, updated doc
- progress: add speed format
- rebase: add --tool argument for specifying merge tool
- rebase: allow for rebasing descendants onto ancestors on different named branches
- record: add an option to backup all wc modifications
- record: add qrefresh -i/--interactive
- record: add white space diff options
- record: alias qrecord to qnew -i/--interactive
1.5. Bug fixes
bookmarks: allow create/move bookmark without making it current (issue2788)
bookmarks: do not forward merged bookmark (issue1877)
changegroup: do not count closed new heads (issue2697)
config: handle comment lines in continuations (issue2854)
dispatch: propagate ui command options to the local ui (issue2523)
eol: make the hook check all new heads, not only tip (issue2666)
grep: don't print data from binary files for matches (issue2614)
http: report unexpected unparsable push responses (issue2777)
- httprepo: handle large lengths by bypassing the len() operator
httprepo: long arguments support (issue2126)
httprepo: proper handling of invalid responses without content-type (issue2019)
httprepo: send URL redirection notices to stderr (issue2828)
localrepo: don't add deleted files to list of modified/added files (issue2761)
localrepo: ignore tags to unknown nodes (issue2750)
merge: drop resolve state for mergers with identical contents (issue2680)
patch: do not patch unknown files (issue752)
path_auditor: check filenames for basic platform validity (issue2755)
rebase: don't mark file as removed if missing in parent's manifest (issue2725)
rebase: preserve mq series order after rebasing (issue2849)
rebase: restore mq guards after rebasing (issue2107)
revset: report a parse error if a revset is not parsed completely (issue2654)
scmutil: improve path calculation for install-relative RC files (issue2841)
set NOT_CONTENT_INDEXED on .hg dir (issue2694)
sslutil: fall back to commonName when no dNSName in subjectAltName (issue2798)
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)
subrepo: make stdin for svn a pipe for non-interactive use (issue2759)
subrepo: svn abort now depends on exit code (issue2833)
subrepo: be smarter about what's an absolute path (issue2808)
svn subrepo: attempt work around obstructed checkouts (issue2752)
svn subrepos: work around checkout obstructions (issue2752)
tags: catch more corruption during cache parsing (issue2779)
util: add Mac-specific check whether we're in a GUI session (issue2553)
2. Mercurial 1.8.4 (2011-06-01)
This is a regular time-based bugfix release.
bookmarks: do not forward merged bookmark (issue1877)
- changelog: convert user and desc from local encoding early
- fix bookmarks rollback behavior
- hgrc.5: document shell aliases
httprepo: proper handling of invalid responses without content-type (issue2019)
httprepo: send URL redirection notices to stderr (issue2828)
localrepo: don't add deleted files to list of modified/added files (issue2761)
localrepo: ignore tags to unknown nodes (issue2750)
mq: strip extra whitespace from node ids in header (issue2790)
rebase: restore mq guards after rebasing (issue2107)
- revset: expand help for contains predicate
- revset: note case-insensitive matches in keyword and user
- revset: note case-sensitive match in grep
revset: report a parse error if a revset is not parsed completely (issue2654)
- revset: the name is optional for the tag predicate
- simplemerge: do not allow binary files to abort an entire merge
strip: make it clear that --force discards changes (issue310)
subrepo: don't crash when git .hgsubstate is empty (issue2716)
subrepo: make stdin for svn a pipe for non-interactive use (issue2759)
- subrepo: respect non-default path for incoming/outgoing
subrepo: svn abort now depends on exit code (issue2833)
subrepo: use code from 71ea5b only if Python needs it (issue2795)
tags: catch more corruption during cache parsing (issue2779)
3. Mercurial 1.8.3 (2011-05-01)
This is a regular time-based bugfix release.
convert: make filemap prune useless branch closing revs (issue2774)
encoding: avoid localstr when a string can be encoded losslessly (issue2763)
extdiff: fix broken symlinks handling (issue1909)
- help config: explain that config files do not exist by default
- hgweb: add bookmark labels to gitweb theme
- hgweb: add missing bookmarks definition to coal/map
- hgweb: add missing bookmarks templates to atom/rss styles
- hgweb: add separate bookmarks listing to gitweb theme
- hgweb: add separate bookmarks listing to monoblue theme
- hgweb: detect change based on changelog size too
hgweb: fix inconsistant display of graphlog (issue1706)
- hgweb: fix typo and inactive link in page_nav and page_header of gitweb's help
- hgweb: fix typo in page-header of monoblue's help template
- hgweb: format page_nav of gitweb/error.tmpl and add missing links
rebase: don't mark file as removed if missing in parent's manifest (issue2725)
- subrepo: handle svn tracked/unknown directory collisions
subrepo: prevent url normalization from removing // in ssh paths (issue2556)
subrepo: tell Subversion when we are non-interactive (issue2759)
url: use a regex to hide unsupported ssh passwords (issue2754)
- zeroconf: notify the Zeroconf threads when hg exits
4. Mercurial 1.8.2 (2011-04-01)
This is a regular time-based bugfix release.
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
- bookmarks: fix update of the current bookmark during rename
color: port to using ctypes (issue2687)
convert/svn: fix _iterfiles() output in root dir case (issue2647)
- eol: do not abort when win32text is found, only warn
- eol: use dirstate methods to clear dirstate
- fix compiling of extensions for OS X and XCode 4.0
- hgweb: add display of bookmarks for changelog and changeset
- hgweb: add separate page with bookmarks listing
merge: avoid unlinking destination of merge when case changes (issue2715)
- mq: do not let qrefresh write bad patch
pager: don't page stderr if it's being redirected (issue2541)
push/outgoing: print remote target path even if there's an error (issue2561)
- subrepo: recognize scp-style paths as git URLs
templates: widen the graph canvas (issue2683)
5. Mercurial 1.8.1 (2011-03-10)
This release backs out a behavior change for so-called 'fast-forward' merges on named branches.
annotate: rewrite to deal with crossed linkrevs (issue2682)
- bookmark: fix invalidation of localrepo._bookmarkcurrent
- cacert: improve error report when web.cacert file does not exist
- contrib: update tcsh_completion for Mercurial 1.8
- hgcia: accept "queued." xmlrpc return as success
- hgweb: fix filelog rss links generation
hgweb: use tip in gitweb/monoblue filelog rss links (issue2677)
- merge: back out single-parent fast-forward merge
merge: drop resolve state for mergers with identical contents (issue2680)
merge: improve unresolved conflicts warning (issue2681)
- mergetools: add alternate registry keys for 32bit apps on 64bit O/S
- mq: forbid commit of merge involving mq patches
subrepo: backout 67fbe566eff1, --force requires svn >= 1.5
- subrepo: don't crash when git repo is missing
- subrepo: handle svn tracked/unknown directory collisions
wix: drop bin/ folder from MSI installers (issue2673)
6. Mercurial 1.8 (2011-03-01)
6.1. Core
Bookmarks are now a core feature (see UpgradeNotes)
New listfile: pattern-matching (patterns)
- Revset syntax supported by most commands
- Performance improvements for reading large repository indexes
- Certificate validation for HTTPS proxies
6.2. Subrepos
- New support for git subrepos
- Various improvements to merge, update, and commit logic
6.3. Windows
- Numerous robustness improvements for quirks in Windows file handling
Now uses the native ctypes module rather than PyWin32
6.4. Extensions
- eol: filter aliases for compatibility with win32text
mq: --exact option for qpush
- mq: various robustness improvements
- progress: remaining time estimates
7. Mercurial 1.7.5 (2011-02-01)
This is a quick bugfix release to include some fixes accidentally dropped from 1.7.4.
- subrepo: fix update -C with svn subrepos when cwd != repo.root
- subrepo: make update -C clean the working directory for svn subrepos
- url: add --insecure option to bypass verification of ssl certificates
- win32mbcs: Fix typo in documentation
8. Mercurial 1.7.4 (2011-02-01)
This is a scheduled bugfix release that smooths out some of the rough edged introduced with 1.7.3's HTTPS certificate verification.
- bookmarks: always write undo file
- bookmarks: respect rollbacks dryrun parameter
- hgrc.5: mention that web.cacerts are run through util.expandpath
opener: force copy on 'a'ppend if nlinks() returns 0 (issue1922)
- subrepo: compare svn subrepo state to last committed revision
- subrepo: do not report known files inside repositories as unknown
url: 'ssh known host'-like checking of fingerprints of HTTPS certificates (see CACertificates)
- url: check subjectAltName when verifying ssl certificate
- url: expand path for web.cacerts
url: fix UnicodeDecodeError on certificate verification error
- win32: add cacert.pem file to Inno Setup installer
win32: win32console.GetStdHandle() can return None
9. Mercurial 1.7.3 (2011-01-01)
This is a scheduled bugfix release.
- archive: don't set gzip filename header when there's no filename
checknlink: use two testfiles (issue2543)
churn: ignore trailing and leading spaces (issue2546)
- date: fix matching of underspecified date ranges
- eol: improve help on whether EOLs are changed in working copy or repository
- fncachestore: copy dh directory before the manifest
- hgweb: abort if config file isn't found
- hook: assume relative path to hook is given from repo root
- hook: fix import path handling for repo=None
- https: use web.cacerts configuration from local repo to validate remote repo
https: warn when server certificate isn't verified (see CACertificates)
- keyword: copy: when copied source is a symlink, follow it
- patch: write .rej files without rewriting EOLs
strip: typo bugfix related to '--nobackup -> --no-backup' rename (issue2377)
tag: abort if not at a branch head (issue2552)
- tag: don't check .hgtags status if --local passed
tag: fix uncommitted merge check and error message (issue2542)
util: fix ellipsis() not to break multi-byte sequence (issue2564)
- util: work around behavior change in Python 2.7.1
windows.rename: eliminate temp name race (issue2571)
wix: add an ssl certificate file to the WiX installers (see CACertificates)
10. Mercurial 1.7.2 (2010-12-01)
This is a scheduled bugfix release.
checknlink: return False if .hgtmp file preexists (issue2517)
commit: search both parents for missing copy revision (issue2484)
- context: walk both parents for workingctx.ancestors()
- convert/svn: fix changed files list upon directory replacements
hgwebdir: fix incorrect index generation for invalid paths (issue2023)
- keyword: copy: when copied source is a symlink, follow it
mq: ignore subrepos (issue2499)
- rebase: support --detach when null is common ancestor
- subrepo: fix removing read-only svn files on Windows
- subrepo: handle missing subrepo spec file as removed
- subrepo: prune empty directories when removing svn subrepo
- subrepo: use subprocess directly to avoid python 2.6 bug
util: do not crash on revisions with negative timestamp (issue2513)
util: do not recurse in makedirs if name is '' (issue2528)
- win32mbcs: use extsetup() to wrap functions only once
- wix: add support for x64 native MSI packages
11. Mercurial 1.7.1 (2010-11-15)
This is an unscheduled bugfix release. 1.7 clients broke support for pushing bookmarks with HTTP.
alias: fall back to normal error handling for ambigious commands (issue2475)
bundlerepository: get rid of temporary bundle files (issue2478)
- bundlerepository: test self.tempfile field, not tempfile module
eol: exclude .hgtags file from eol translation (issue2493)
log: fix log -rREV FILE when REV isnt the last filerev (issue2492)
opener: check hardlink count reporting (issue1866)
pushkey: force HTTP POST on push and add tests (issue2489)
- revlog: fix descendants() if nullrev is in revs
subrepo: test & fix svn subrepo removal
win32: remove try-catch block of GetModuleFileNameEx (issue2480)
12. Mercurial 1.7 (2010-11-01)
12.1. Core
filelog: improve cmp performances (issue2273)
patch: don't strip '#' lines from patch descriptions (issue2417)
- patch: when native patching fails (ui.patch is not set), don't retry with an external tool
- setup/hg: always load Mercurial from where it was installed.
- setup: user-friendly error message if Python headers are missing
store: new unsupported and experimental parentdelta format (see UpgradeNotes)
store: encode first period or space in filenames (issue1713)
url: expand environment variables in [auth] settings (issue2328)
url: check validity (notBefore/notAfter) using OpenSSL (issue2407)
12.2. Commands
- addremove: use similarity 100 by default
- alias: add support for shell command aliases starting with '!' (see [alias] in hgrc(5))
- backout: add --tool argument for specifying merge tool
- backout: backout linearly by default instead of branching and merging (use --merge to get the former behaviour)
dispatch: properly handle relative path aliases used with -R (issue2376)
- init: expand destination url as a configured paths
log: do not --follow file that is deleted and recreated later (issue732)
- merge: don't detect copies as "divergent renames", make diagnostic message more helpful
- merge: add --tool argument to merge and resolve
merge: handle no file parent in backwards merge (issue2364)
tags: do not fail if tags.cache is corrupted (issue2444)
- templater: add "hex" filter and "children" keywords (see hg help templating)
12.3. Subrepos
- support remapping of subrepository source paths (see [subpaths] in hgrc(5))
- make add, diff, incoming, outgoing and status commands recurse into subrepos with --subrepos/-S
- subrepo: add support for 'hg archive'
subrepo: fix status check on SVN subrepos (issue2445)
12.4. Revsets
- add id() and rev() to allow explicit references to changes by hash or rev (see hg help revsets)
- add min() function to complement max()
- add present() function to avoid lookup errors on possibly missing changesets
- rename tagged() to tag() and allow it to take an optional tag name
- strip: add revsets support
add revsets support to bisect and update (issue1993)
- bookmarks: add a bookmark([name]) revset for referencing bookmarks
- transplant: add a transplanted(set) revset to get transplanted revisions
12.5. hgweb
- add a help view for accessing the built-in documentation (see help link in hg serve)
- let HTTPS serve use more compatible but less secure encryption
support very simple caching model (issue1845)
12.6. Extensions
- color: better support for branches and mq guards
convert: handle closed branch heads in hg-hg conversion (issue2185)
convert: support darcs changelogs with bytes 0x7F-0xFF (issue2411)
convert: deprecate --authors in preference for --authormap
graphlog: support header and footer templates when using styles (issue2395)
- keyword: do not expand at all during diff
- keyword: support copy and rename
mq: extend support for the --mq argument to extension commands
mq: save qrefresh message for easy recovery in case it fails (issue2062)
mq: support hg qimport --existing --name renametothis thatexistingpatch, fix --force case on Windows
- mq/qqueue: support renaming of active queue
mq/qqueue: add --purge option to delete a queue and its patches
pager: add global --pager=<auto/boolean> option
patchbomb: add --confirm option to show series details and ask for confirmation
- patchbomb: let diffstat prompt only once with complete summary
- progress: support rebase and patchbomb
- rebase: re-add patches to mq repo after rebase
strip: add --keep flag to avoid modifying working directory during strip
strip: rename --nobackup option to --no-backup (issue2377)
- strip: support stripping multiple revisions
12.7. contrib
- mergetools.hgrc: add vimdiff
- zsh completion: support bookmarks and patchbomb extensions
- zsh completion: add qpush --move option
12.8. Windows
- 64-bit Inno Setup installer
handle spaces in path to Python (issue2074)