Differences between revisions 27 and 28
Revision 27 as of 2014-11-12 21:24:47
Size: 129629
Editor: mpm
Comment:
Revision 28 as of 2016-02-03 05:37:45
Size: 161916
Editor: rcl
Comment: move release notes from 3.3.3 and older
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:

== Mercurial 3.3.3 (2015-04-01) ==
This is a regularly-scheduled bugfix release.

 * adjustlinkrev: handle 'None' value as source
 * adjustlinkrev: prepare source revs for ancestry only once
 * amend: check for directory renames for both merge parents (Bts:issue4516)
 * annotate: reuse ancestry context when adjusting linkrev (Bts:issue4532)
 * dirstate: don't require exact case when adding dirs on icasefs (Bts:issue4578)
 * dirstate: make sure rootdir ends with directory separator (Bts:issue4557)
 * filemerge: clean up language in mergemarkertemplate help
 * forget: cleanup the output for an inexact case match on icasefs
 * hgweb: prevent loading style map from directories other than specified paths
 * mergecopies: reuse ancestry context when traversing file history (Bts:issue4537)
 * templates: fix "log -q" output of default style
 * templates: fix "log -q" output of phases style
 * win32: 'raise ctypes.!WinError' -> 'raise ctypes.!WinError()'

== Mercurial 3.3.2 (2015-03-02) ==
An unscheduled bugfix release to fix the fix.

 * transaction: really disable hardlink backups (Bts:issue4546)

== Mercurial 3.3.1 (2015-03-02) ==
This is a regularly scheduled bugfix release. It fixes a significant regression with transactions on Windows network shares.

 * dispatch: work around !UnicodeDecodeError caused by SSLError of Python 2.7.9
 * hgweb: recreate old DOM structure for css in monoblue style
 * largefiles: access to specific fields only if largefiles enabled (Bts:issue4547)
 * log: fix json-formatted output when file copies are listed (Bts:issue4523)
 * repoview: invalidate cached changelog if _delayed changes (Bts:issue4549)
 * revisionbranchcache: fall back to slow path if starting readonly (Bts:issue4531)
 * revset: mask specific names for named() predicate
 * shellquote: fix missing quotes for empty string
 * templatekw: fix {join(bookmarks, sep)} to always show associated bookmarks
 * transaction: disable hardlink backups (Bts:issue4546)

== Mercurial 3.3 (2015-02-01) ==
This is a regularly scheduled feature release with over 800 changes.

=== commands ===
 * add: add back forgotten files even when not matching exactly (BC)
 * addremove: add back forgotten files (BC)
 * addremove: add support for the -S flag
 * addremove: print relative paths when called with -I/-X (BC)
 * addremove: support addremove with explicit paths in subrepos
 * backout: add --commit option
 * commit: abort if --addremove is specified, but fails
 * commit: remove reverse search for copy source when not in parent (Bts:issue4476)
 * commit: propagate --addremove to subrepos if -S is specified (Bts:issue3759)
 * graft: show more useful status information while grafting

=== core ===
 * bundles: do not overwrite existing backup bundles (BC)
 * osx: patch .pax.gz files in pkg bundles so they extract as root (Bts:issue4081)
 * revset: handle hidden linkrev for file missing for head (Bts:issue4490)
 * revset: allow rev(-1) to indicate null revision (BC)
 * revset: fix ancestors(null) to include null revision (Bts:issue4512)
 * subrepo: don't abort in add when non-hg subrepos are present (Bts:issue4513)
 * cmdserver: use given streams as pipe channels like other commands
 * extensions: only check compatibility against major and minor versions (BC)
 * https: support tls sni (server name indication) for https urls (Bts:issue3090)
 * ignore: resolve ignore files relative to repo root (Bts:issue4473) (BC)
 * linkrev: handle filtered linkrev with no visible children (Bts:issue4307)
 * linkrev: also adjust linkrev when bootstrapping annotate (Bts:issue4305)
 * linkrev: use the right manifest content when adjusting linrev (Bts:issue4499)
 * memctx: calculate manifest correctly with newly-removed files (Bts:issue4470)
 * memctx: fix manifest for removed files (Bts:issue4470)
 * obsstore: disable garbage collection during initialization (Bts:issue4456)
 * subrepo: support remove with explicit paths in subrepos
 * subrepo: add full revert support for git subrepos
 * subrepo: add partial diff support for git subrepos
 * subrepo: add status support for ignored files in git subrepos
 * win32: remove Mercurial.ini file from Inno Setup installer (Bts:issue4435)

=== hgweb ===
 * hgweb: allow viewing diffs against p1 or p2 for merge commits (Bts:issue3904)

=== extensions ===
 * color: add support for colorizing git subrepo diffs
 * color: add missing 'dim' in _effects
 * convert: on svn failure, note libsvn version (Bts:issue4043)
 * convert: replace revision references in messages if they are >= short hashes
 * convert: handle !LookupError in mercurial_source.lookuprev()
 * extdiff: reintroduce backward compatibility with manual quoting of parameters
 * histedit: add a test to show that issue4251 is fixed (Bts:issue4251)
 * largefiles: fix commit of a directory with no largefile changes (Bts:issue4330)
 * largefiles: use 'default' path for pulling largefiles, not 'default-push'
 * largefiles: enable subrepo support for add, forget, remove
 * largefiles: show progress when checking standin hashes in outgoing changesets
 * mq: smarter handling of plain headers
 * patchbomb: don't honor whitespace and format-changing diffopts (BC)
 * rebase: show more useful status information while rebasing
 * rebase: ensure rebase revision remains visible (Bts:issue4504)
 * extdiff: avoid unexpected quoting arguments for external tools (Bts:issue4463)
 * highlight: ignore Unicode's extra linebreaks (Bts:issue4291)
 * record: don't honor format-changing diffopts (Bts:issue4459)
 * share: add option to share bookmarks
 * transplant: properly skip empty changeset (Bts:issue4423)

== Mercurial 3.2.4 (2015-01-01) ==
This is a regularly-scheduled bugfix release.

 * demandimport: blacklist distutils.msvc9compiler (Bts:issue4475)
 * largefiles: backout f72d73937853 - linear updates handle m -> a differently
 * largefiles: fix a spurious missing file warning with 'remove -A' (Bts:issue4053)
 * largefiles: fix a spurious missing file warning with forget (Bts:issue4053)
 * largefiles: introduce the 'composelargefilematcher()' method
 * largefiles: mark lfile as added in lfdirstate when the standin is added
 * sshpeer: more thorough shell quoting

== Mercurial 3.2.3 (2014-12-18) ==
This is an unscheduled bugfix release containing two security fixes for issues we uncovered in both Git and Mercurial for CVE-2014-9390. Users on Mac and Windows are encouraged to upgrade.

 * context: stop setting None for modified or added nodes
 * darwin: omit ignorable codepoints when normcase()ing a file path
 * encoding: add hfsignoreclean to clean out HFS-ignored characters
 * largefiles: don't actually remove largefiles in an addremove dry run
 * log: fix log -f slow path to actually follow history
 * log: fix log revset instability
 * manifest: disallow setting the node id of an entry to None
 * pathauditor: check for Windows shortname aliases
 * pathauditor: check for codepoints ignored on OS X
 * rebase: ignore negative state when updating back to original wc parent
 * update: add tests for untracked local file
 * update: don't overwrite untracked ignored files on update

== Mercurial 3.2.2 (2014-12-01) ==
This is a regularly-scheduled bugfix release.

 * changegroup: fix file linkrevs during reorders (Bts:issue4462)
 * hgweb: send proper HTTP response after uncaught exception
 * largefiles: avoid exec-bit examination on the platforms unaware of it
 * largefiles: don't show largefile/normal prompts if one side is unchanged
 * manifest: fix a bug where working copy file 'add' mark was buggy
 * merge: be precise about what merged into what in short desc
 * merge: before cd/dc prompt, check that changed side really changed
 * mq: fix update of headers that occur in the "wrong" order
 * mq: introduce insertplainheader - same naive implementation as before
 * mq: when adding headers in plain mode, separate them from message (Bts:issue4453)
 * mq: when setting message in plain mode, separate it from header (Bts:issue4453)
 * push: stop independent usage of bundle2 in syncphase (Bts:issue4454)
 * pushkey: gracefully handle prepushkey hook failure (Bts:issue4455)
 * rename: properly report removed and added file as modified (Bts:issue4458)
 * revert: look for copy information for all local modifications
 * revset: fix first and last for generatorset (Bts:issue4465)
 * templates: fix broken "less" & "more" links in paper style (Bts:issue4460)

== Mercurial 3.2.1 (2014-11-11) ==
This is an unscheduled release to address regressions in discovery, rebase, and bookmarks.

 * bookmarks: fix formatting of exchange message (Bts:issue4439)
 * changegroup: don't store unused value on fnodes (Bts:issue4443)
 * convert: use git diff-tree -Cn% instead of --find-copies=n% for older git
 * discovery: indices between sample and yesno must match (Bts:issue4438)
 * discovery: limit 'all local heads known remotely' to real 'all' (Bts:issue4438)
 * extdiff: quote user-supplied options passed to shell
 * hgweb: fix a crash when using web.archivesubrepos
 * mail: actually use the verifycert config value
 * rebase: fix rebase with no common ancestors (Bts:issue4446)
 * serve: correct meta variable of --daemon-pipefds option
 * templater: don't overwrite the keyword mapping in runsymbol() (Bts:issue4362)

== Mercurial 3.2 (2014-11-01) ==
This is a quarterly feature release.

=== commands ===
 * amend: abort early if no username is configured with evolve enabled (Bts:issue4211)
 * amend: fix amending rename commit with diverged topologies (Bts:issue4405)
 * annotate: rewrite long short-circuit statement by if-elif-else
 * bookmark: make the search for divergent names more robust
 * bookmarks: allow pushkey if new equals current
 * bookmarks: explicitly track identical bookmarks
 * bookmarks: fix divergent bookmark path normalization
 * bookmarks: inform transaction-related hooks that some bookmarks were moved
 * branches: include active, closed and current flags in template output
 * clone: copy '.hg/bookmarks' during copy clone
 * clone: explicitly push bookmarks when cloning from local to remote
 * clone: fix copying bookmarks in uncompressed clones (Bts:issue4430)
 * clone: for local clones, copy branchcache from the right location (Bts:issue4286)
 * clone: for local clones, copy over filtered branchcaches as well (Bts:issue4286)
 * clone: properly mark branches closed with --uncompressed (Bts:issue4428)
 * clone: provide sample username = config entry in .hg/hgrc (Bts:issue4359)
 * commit: correctly check commit mutability during commit --amend
 * commit: add customizable committemplate config
 * config: give more fine-tuned sample hgrcs to this command
 * config: highlight parse error caused by leading spaces (Bts:issue3214)
 * files: add new command unifying locate and manifest functionality
 * graft: allow regrafting ancestors with --force (Bts:issue3220)
 * graft: make --force apply across continues (Bts:issue3220)
 * help: document that default hgweb style is called paper (Bts:issue4373)
 * help: update help for hgweb template and style (Bts:issue4373)
 * import: let --exact 'work' with --no-commit (Bts:issue4376)
 * locate: deprecate in favor of files
 * log: allow patterns with -f
 * log: do not hide the public phase in debug mode (BC)
 * log: rewrite default template to use labels (Bts:issue2866)
 * log: show phase in hg log -v with the phase template
 * merge-tools: add a 'premerge=keep-merge3' config option
 * merge: use bid merge by default (BC)
 * merge: support three labels when using conflict markers
 * parents: deprecate the parents commands
 * pull: perform bookmark updates in the transaction
 * push: update bookmarks within the remote lock
 * push: wrap local phase movement in a transaction
 * pushbookmark: do not attempt to update bookmarks if the push failed (BC)
 * status: make 'hg status --rev' faster when there are deleted files
 * tag: properly abort if an unknown or ignored .hgtags is present

=== core ===
 * alias: expand "$@" as list of parameters quoted individually (BC) (Bts:issue4200)
 * dirstate: add exception when calling setparent without begin/end (API)
 * dirstate: wrap setparent calls with begin/endparentchange (Bts:issue4353)
 * hook: protect commit hooks against stripping of temporary commit (Bts:issue4422)
 * i18n: detect UI language without POSIX-style locale variable on Windows (BC)
 * localrepo: remove the 'pull' method (API)
 * localrepo: remove the 'push' method (API)
 * posix: implement readpipe using non-blocking I/O (Bts:issue4336)
 * revset: fix O(2^n) perf regression in addset
 * revset: have rev() drop out-of-range or filtered rev explicitly (Bts:issue4396)
 * setdiscovery: limit the size of all sample (Bts:issue4411)
 * ssl: only support TLS (BC)
 * ssl: only use the dummy cert hack if using an Apple Python (Bts:issue4410)
 * templater: fix ifcontains when list is a string (Bts:issue4399)

=== extensions ===
 * convert: add support for deterministic progress bar on scanning phase
 * convert: add support to detect git renames and copies
 * eol: fix crash when handling removed files
 * histedit: add "roll" command to fold commit data and drop message (Bts:issue4256)
 * largefiles: add examination of exec bit in "hg status --rev REV" case
 * largefiles: keep largefiles from colliding with normal one during linear merge
 * largefiles: restore R status of removed largefiles correctly at "hg rollback"
 * largefiles: restore standins from non branch-tip parent at rollback correctly
 * largefiles: unlink standins not known to the restored dirstate at rollback
 * mq: write '# Parent ' lines with two spaces like export does (BC)
 * mq: write headers for new HG patches in the same order as export (BC)
 * shelve: don't delete "." when rebase is a no-op (Bts:issue4398)

=== hgweb ===
 * hgweb: disable SSLv3 serving (BC)
 * hgweb: refresh repository using URL not path (Bts:issue4323)

== Mercurial 3.1.2 (2014-10-01) ==
This is a regularly-scheduled bugfix release.

 * commit: catch changed exec bit on files from p1 (Bts:issue4382)
 * diff: document the nobinary option
 * dispatch: check shell alias again after loading extensions (Bts:issue4355)
 * dispatch: make "_checkshellalias" reusable regardless of adding aliases
 * help: fix typo in log examples
 * help: mention mode in hg log --removed help (Bts:issue4381)
 * hgweb: fail if an invalid command was supplied in url path (Bts:issue4071)
 * hgweb: refresh hgweb.repo on phase change (Bts:issue4061)
 * histedit: abort gracefully on --continue/--abort with no state
 * keepalive: fix how md5 is used
 * mq: examine "pushable" of already applied patch correctly
 * mq: pop correct patches when changing pushable-ness of already applied ones
 * mq: report correct numbers for changing "number of guarded, applied patches"
 * mq: use "mq.applied[i].name" instead of "mq.appliedname(i)" for safety
 * revset: add an optimised baseset.__contains__ (Bts:issue4371)
 * templater: fix precedence of --style and --template options

== Mercurial 3.1.1 (2014-09-01) ==
This is a regularly-scheduled bugfix release.

 * changectx: ancestor should only prefer merge.preferancestor if it is a revision
 * color: pass on key error for win32 (Bts:issue4298)
 * config: exit non zero on non-existent config option (Bts:issue4247)
 * context: call normal on the right object
 * debugobsolete: catch !ValueError that may be raised by obsstore.create
 * discovery: prevent crash on unknown remote heads with old repo (Bts:issue4337)
 * graft: fix collision detection with origin revisions that are missing
 * help: add pad function to template help
 * help: only call doc() when it is callable
 * hgweb: avoid config object race with hgwebdir (Bts:issue4326)
 * histedit: preserve initial author on fold (Bts:issue4296)
 * import: show warning message for merge changesets
 * incoming: don't request heads that already are common
 * largefiles: don't override matchandpats for always matchers (Bts:issue4334)
 * largefiles: drop setting lfstatus in overridelog (Bts:issue4334)
 * largefiles: in overridelog, use non-lf matcher for patch generation (Bts:issue4334)
 * log: use correct phase info for parent field (Bts:issue4347)
 * merge: show the scary multiple ancestor hint for merges only, not for updates
 * obsstore.create: add a simple safeguard against cyclic markers
 * repoview: filter tags to non-existent nodes from blockers (Bts:issue4328)
 * repoview: fix typo in repoview.changelog
 * revset: bookmark revset interprets 'literal:' prefix correctly (Bts:issue4329)
 * unbundle: don't advance bookmarks (Bts:issue4322) (BC)

== Mercurial 3.1 (2014-08-01) ==
=== Core features ===
 * backout: accept '--edit' like other commands creating new changeset
 * bookmarks: improve the bookmark help (Bts:issue4244)
 * commit: make commit message shown in text editor customizable by template
 * config: allow 'user' in .hgrc ui section (Bts:issue3169)
 * conflict markers: customise local/other name for various command (graft, update, rebase, ...) (BC)
 * diff: add nobinary config to suppress git-style binary diffs
 * discovery: if a push would create a new head, mention the bookmark name if any
 * filemerge: add an internal:tagmerge merge tool
 * filemerge: add a `[ui] mergemarkers` option to use detailed merge marker.
 * gpg: accept '--edit' like other commands creating new changeset
 * help: suggest keyword search when no topic is found
 * import: add --partial flag to create a changeset despite failed hunks
 * resolve: print message when no unresolved files remain (Bts:issue4214)
 * resolve: print warning when no work performed (Bts:issue4208)
 * templatefilter: add splitlines function
 * templatekw: add 'currentbookmark' keyword to show current bookmark easily
 * templatekw: add 'subrepos' keyword to show updated subrepositories
 * templater: introduce startswith function
 * templater: introduce word function
 * templates: escape NUL bytes in jsonescape (Bts:issue4303)
 * update: introduce --tool for controlling the merge tool
 * update: show message when a bookmark is activated by update
 * update: when deactivating a bookmark, print a message
 * version: show enabled extensions (Bts:issue4209)

=== Extension features ===
 * convert: detect removal of ".gitmodules" at git source revisions correctly
 * convert: drastically speed up git conversions
 * convert: mercurial source: convert global tags only - not local tags
 * convert: only consider shamap revisions converted if they still exists
 * convert: update the transplant, rebase and graft references in 'extra'
 * largefiles: show also how many data entities are outgoing at "hg outgoing"
 * mergetools.hgrc: add minimal configuration for editmerge
 * pager: add attend-<command> option
 * patchbomb: includes series information in the header
 * purge: add options for deleting only files or only directories
 * qfold: allow to specify '--message/'--logfile' and '--edit' at the same time
 * qimport: record imported revs incrementally (Bts:issue3874)
 * qrefresh: allow to specify '--message/'--logfile' and '--edit' at the same time
 * shelve: accept '--edit' like other commands creating new changeset
 * shelve: add -l|--list support for bash completion
 * strip: drop -b/--backup option (BC)

=== Fixes ===
 * bookmarks: avoid deleting primary bookmarks on rebase
 * branch: add debug message for branch cache write failure
 * bugzilla extension: stop trying to cache setup across hook invocation
 * filemerge: use non-minimal conflict marker regions (BC)
 * help: always show command help with -h (Bts:issue4240)
 * histedit: respect revsetalias entries (Bts:issue4311)
 * largefiles: avoid unnecessary creation of .hg/largefiles when opening lfdirstate
 * largefiles: include largefiles when doing log on a directory (Bts:issue4241)
 * largefiles: use "normallookup", if "mtime" of standin is unset
 * log: allow revset for --follow to be lazily evaluated
 * log: do not use exact matcher for --patch --follow without file (Bts:issue4319)
 * log: make --patch --follow work inside a subdirectory
 * p4: accept changesets with no description (Bts:issue4282)
 * resolve: keep wlock while resolving
 * revset: maintain ordering when subtracting from a baseset (Bts:issue4289)
 * revset: optimize baseset.__sub__ (Bts:issue4313)
 * strip: remove bookmarks after strip succeed (Bts:issue4295)
 * vim: use try catch in vim plugin to avoid conflicts

=== Experimental features ===
 * bundle2: add pushkey support
 * bundle2: fix bundle2 pulling all revs on empty pulls
 * bundle2: pull phase data alongside changesets (when enabled)
 * bundle2: use bundle2 to push phases (when enabled)

=== Mercurial project ===
 * build: initial support for in-tree autobuilding recipes
 * buildrpm: include release version in .tar.gz name
 * make: add a basic osx mpkg target
 * packaging: move output directory from build/ to packages/
 * setup: fixed for Pythons which don't have a CFLAGS
 * setup: make Xcode 5.1 check less specific

== Mercurial 3.0.2 (2014-07-01) ==
This is a regularly-scheduled bugfix release.

 * cmdutil: add copy-filtering support to duplicatecopies
 * hgweb: avoid initialization race (Bts:issue4280)
 * keyword: suppress keyword expansion for internal merge
 * match: make glob '**/' match the empty string
 * parsers.c: fix a couple of memory leaks
 * push: restore contents of HG_URL for hooks (Bts:issue4268)
 * rebase: fix bug that caused transitive copy records to disappear (Bts:issue4192)
 * repoview: do not crash when localtags refers to non existing revisions

== Mercurial 3.0.1 (2014-06-01) ==
This is a regularly-scheduled bugfix release.

 * alias: change return code of bad definition to 255
 * alias: fix loss of non-zero return code in command aliases
 * alias: handle shlex error in command aliases
 * bookmarks: properly align multi-byte characters
 * bugzilla: support Bugzilla 4.4.3+ API login token authentication (Bts:issue4257)
 * bundle2: fix bundle2 pulling all revs on empty pulls
 * bundle2: fix configuration name mismatch
 * changelog: ensure changelog._delaybuf is initialized
 * color: don't fail on error messages when no curses (Bts:issue4237)
 * exchange: propagate arguments to the _getbundleextrapart function
 * localrepo: prevent leak of transaction object (Bts:issue4258)
 * proxy: remove unneeded _set_hostport for compatibility with Python 2.7.7rc1
 * setup.py, make: avoid problems with outdated, existing {{{hgext/__index__.py*}}}
 * subrepo: avoid sanitizing ".hg/hgrc" in meta data area for non-hg subrepos
 * subrepo: invoke "_sanitize()" also after "git merge --ff"
 * subrepo: make "_sanitize()" take absolute path to the root of subrepo
 * subrepo: make "_sanitize()" work
 * subrepo: normalize path in the specific way for problematic encodings
 * templates: fix ifcontains against sets with length > 1 (Bts:issue4259)
 * win32: backout 1a9ebc83a74c

== 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.

=== 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 (Bts:issue4094)
 * color: allow color keywords to be used directly in template
 * commands: add -T as alternative to --template
 * commands: hg debuginstall checks missing templates (Bts: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 (Bts: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 (Bts:issue3567)
 * log: change implementation to use graphlog code
 * push: provide a hint when no paths are configured (Bts: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

=== 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 (Bts:issue4172)
 * qimport: allow importing URLs

=== 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 (Bts:issue3161)
 * cmdserver: reload mq on each runcommand request to avoid corruption
 * diff: use second filename for --stat reporting on git patches (Bts:issue4221)
 * dirstate: report bad subdirectories as match.bad, not just a warning (BC)
 * extensions: use normpath to allow trailing '\' on Windows (Bts: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 (Bts:issue3515)
 * parsers: fail fast if Python has wrong minor version (Bts:issue4110)
 * phases: apply publishing enforcement for "serve" source
 * revlog: deal with chunk ranges over 2G on Windows (Bts:issue4215)
 * setup.py: fix C extension compilation issue with OS X 10.9 and Xcode 5.1
 * subrepo: check return code for git push (Bts:issue4223)

=== 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 2.9.2 (2014-04-01) ==
This is a regularly-scheduled bugfix release.

 * amend: save commit message into ".hg/last-message.txt"
 * backout: correct commit status of no changes made (BC) (Bts:issue4190)
 * backout: document return code of merge conflict
 * commit: create new amend changeset as secret correctly for "--secret" option
 * commit: propagate --secret option to subrepos (Bts:issue4182)
 * convert: more clear documentation of the 'include' default of a 'include .'
 * dispatch: only do __import__(debugger) when a debugger is requested
 * log: solves bug regarding hg log -r 0:null (Bts:issue4039)
 * hg: introduce "wirepeersetupfuncs" to setup wire peer by extensions (Bts:issue4109)
 * hg: use "os.path.join()" to join path components which may be empty (Bts:issue4203)
 * histedit: save manually edited commit message into ".hg/last-message.txt"
 * localrepo: save manually edited commit message as soon as possible
 * merge: fix lack of "%s" in format string causing !TypeError at runtime
 * paper: overlapping of section title on help pages (Bts:issue4051)
 * phase: say "Returns 0" instead of "Return 0" like other command help
 * qfold: save manually edited commit message into ".hg/last-message.txt"
 * qnew: save manually edited commit message into ".hg/last-message.txt"
 * rebase: use "commitforceeditor" instead of "ui.edit()" for "--collapse"
 * revset: document the regular expression support for tag(name)
 * subrepo: add trailing newlines to warnings
 * subrepo: convert matched string to integer before comparing Git version
 * subrepo: only retrieve the first two components of the Git version
 * tag: save manually edited commit message into ".hg/last-message.txt"
 * templater: apply "stringify()" on sub expression to get string correctly
 * templater: avoid recursive evaluation of string literals completely
 * templater: make strings in template expressions be "string-escape"-ed correctly
 * templater: raise error for unknown function

== Mercurial 2.9.1 (2014-03-01) ==
This is a regularly-scheduled bugfix release.

 * coal: hgweb style adds extra blank line in file view (Bts:issue4136)
 * hg.openpath: use url.islocal to tell if the path is local (Bts:issue3624)
 * hgweb: hack around mimetypes encoding thinko (Bts:issue4160)
 * hooks: only disable/re-enable demandimport when it's already enabled
 * merge: add "other" file node in the merge state file
 * merge: audit the right destination file when merging with dir rename
 * merge: don't overwrite file untracked after remove, abort with 'untracked files'
 * merge: record the "other" node in merge state
 * pathencode: eliminate signed integer warnings
 * pull: close peer repo on completion (Bts:issue2491) (Bts:issue2797)
 * purge: avoid duplicate output for --print (Bts:issue4092)
 * rebase: do not try to reactivate deleted divergent bookmark
 * resolve: use "other" changeset from merge state (Bts:issue4163)
 * verify: do not prevent verify repository containing hidden changesets

== Mercurial 2.9 (2014-02-01) ==
This is a regularly-scheduled feature release.

=== Core features ===
 * backout: add a message after backout that need manual commit
 * bash_completion: add global support for -B|--bookmark
 * bash_completion: add global support for -b|--branch
 * bookmarks: allow push -B to create a new remote head (Bts:issue2372)
 * date: allow %z in format (Bts:issue4040)
 * hgweb: infinite scroll support for coal, gitweb, and monoblue styles
 * patch: add support for git delta hunks
 * url: added authuri when login information is requested (Bts:issue3209)

=== Performance improvement ===
 * backout: avoid update on simple case
 * branchmap: cache open/closed branch head information
 * cat: increase perf when catting single files
 * changectx: increase perf of walk function
 * strip: add faster revlog strip computation

=== Extension features ===
 * bash_completion: add completion for deleting a shelve
 * convert: use branchmap to change default branch in destination (Bts:issue3469)
 * record: --user/-u now works with record when ui.username not set (Bts:issue3857)
 * subrepo: check phase of state in each subrepositories before committing

=== Fixes ===
 * aliases: make "_checkshellalias()" invoke "findcmd()" with "strict=True"
 * bisect: --command without --noupdate should flag the parent rev it tested
 * clone: do not turn hidden changeset public on publishing clone (Bts:issue3935)
 * diff: search beyond ancestor when detecting renames
 * push: properly move phase boundary when no changeset are exchanged (Bts:issue3786)
 * rebase: abort cleanly when we encounter a damaged rebasestate (Bts:issue4155)
 * rebase: do not crash in panic when cwd disapear in the process (Bts:issue4121)
 * record: re-enable whitespace-ignoring options
 * relink: abort earlier when on different devices (Bts:issue3916)
 * subrepo: make it possible to update to hidden subrepo revisions
 * templater: selecting a style with no templates does not crash (Bts:issue4140)
 * update: consider successor changesets for a bare update
 * update: consider successor changesets when moving active bookmark
Line 1224: Line 1786:
 * bookmarks: allow create/move bookmark without   * bookmarks: allow create/move bookmark without

What's New Archive

This contains release notes for releases older than three major releases.

Contents

  1. What's New Archive
    1. Mercurial 3.3.3 (2015-04-01)
    2. Mercurial 3.3.2 (2015-03-02)
    3. Mercurial 3.3.1 (2015-03-02)
    4. Mercurial 3.3 (2015-02-01)
    5. Mercurial 3.2.4 (2015-01-01)
    6. Mercurial 3.2.3 (2014-12-18)
    7. Mercurial 3.2.2 (2014-12-01)
    8. Mercurial 3.2.1 (2014-11-11)
    9. Mercurial 3.2 (2014-11-01)
    10. Mercurial 3.1.2 (2014-10-01)
    11. Mercurial 3.1.1 (2014-09-01)
    12. Mercurial 3.1 (2014-08-01)
    13. Mercurial 3.0.2 (2014-07-01)
    14. Mercurial 3.0.1 (2014-06-01)
    15. Mercurial 3.0 (2014-05-01)
    16. Mercurial 2.9.2 (2014-04-01)
    17. Mercurial 2.9.1 (2014-03-01)
    18. Mercurial 2.9 (2014-02-01)
    19. Mercurial 2.8.2 (2014-01-01)
    20. Mercurial 2.8.1 (2013-12-01)
    21. Mercurial 2.8 (2013-11-01)
    22. Mercurial 2.7.2 (2013-10-01)
    23. Mercurial 2.7.1 (2013-09-03)
    24. Mercurial 2.7 (2013-08-01)
    25. Mercurial 2.6.3 (2013-07-01)
    26. Mercurial 2.6.2 (2013-06-01)
    27. Mercurial 2.6.1 (2013-05-14)
    28. Mercurial 2.6 (2013-05-01)
    29. Mercurial 2.5.4 (2013-04-04)
    30. Mercurial 2.5.3 (2013-04-01)
    31. Mercurial 2.5.2 (2013-03-01)
    32. Mercurial 2.5.1 (2013-02-08)
    33. Mercurial 2.5 (2013-02-01)
    34. Mercurial 2.4.2 (2013-01-01)
    35. Mercurial 2.4.1 (2012-12-03)
    36. Mercurial 2.4 (2012-11-01)
    37. Mercurial 2.3.2 (2012-10-01)
    38. Mercurial 2.3.1 (2012-09-01)
    39. Mercurial 2.3 (2012-08-01)
    40. Mercurial 2.2.3 (2012-07-01)
    41. Mercurial 2.2.2 (2012-06-01)
    42. Mercurial 2.2.1 (2012-05-03)
    43. Mercurial 2.2 (2012-05-01)
    44. Mercurial 2.1.2 (2012-04-01)
    45. Mercurial 2.1.1 (2012-03-01)
    46. Mercurial 2.1 (2012-02-01)
    47. Mercurial 2.0.2 (2012-01-01)
    48. Mercurial 2.0.1 (2011-12-01)
    49. Mercurial 2.0 (2011-11-01)
    50. Mercurial 1.9.3 (2011-10-01)
    51. Mercurial 1.9.2 (2011-08-26)
    52. Mercurial 1.9.1 (2011-08-01)
    53. Mercurial 1.9 (2011-07-01)
    54. Mercurial 1.8.4 (2011-06-01)
    55. Mercurial 1.8.3 (2011-05-01)
    56. Mercurial 1.8.2 (2011-04-01)
    57. Mercurial 1.8.1 (2011-03-10)
    58. Mercurial 1.8 (2011-03-01)
    59. Mercurial 1.7.5 (2011-02-01)
    60. Mercurial 1.7.4 (2011-02-01)
    61. Mercurial 1.7.3 (2011-01-01)
    62. Mercurial 1.7.2 (2010-12-01)
    63. Mercurial 1.7.1 (2010-11-15)
    64. Mercurial 1.7 (2010-11-01)
    65. Mercurial 1.6.4 (2010-10-01)
    66. Mercurial 1.6.3 (2010-08-26)
    67. Mercurial 1.6.2 (2010-08-02)
    68. Mercurial 1.6.1 (2010-08-01)
    69. Mercurial 1.6 (2010-07-01)
    70. 1.5.4 (2010-06-01)
    71. 1.5.3 (2010-05-13)
    72. 1.5.2 (2010-05-01)
    73. 1.5.1 (2010-04-01)
    74. 1.5 (2010-03-06)
    75. 1.4.3 (2010-02-01)
    76. 1.4.2 (2010-01-01)
    77. 1.4.1 (2009-12-01)
    78. 1.4 (2009-11-16)
    79. Version 1.3.1 - 2009-07-23
    80. Version 1.3 - 2009-07-01
    81. Version 1.2.1 - 2009-03-20
    82. Version 1.2 - 2009-03-04
    83. Version 1.1.2 - 2008-12-31
    84. Version 1.1.1 - 2008-12-20
    85. Version 1.1 - 2008-12-2
    86. Version 1.0.2 - 2008-08-13
    87. Version 1.0.1 - 2008-05-22
    88. Version 1.0 - 2008-03-24
    89. Version 0.9.5 - 2007-10-19
    90. Version 0.9.4 - 2007-06-25
    91. Version 0.9.3 - 2006-12-17
    92. Version 0.9.2 - 2006-12-10
    93. Version 0.9.1 - 2006-07-24
    94. Version 0.9 - 2006-05-10
    95. Version 0.8.1 - 2006-04-07
    96. Version 0.8
    97. Version 0.7
    98. See also

Mercurial 3.3.3 (2015-04-01)

This is a regularly-scheduled bugfix release.

  • adjustlinkrev: handle 'None' value as source
  • adjustlinkrev: prepare source revs for ancestry only once
  • amend: check for directory renames for both merge parents (issue4516)

  • annotate: reuse ancestry context when adjusting linkrev (issue4532)

  • dirstate: don't require exact case when adding dirs on icasefs (issue4578)

  • dirstate: make sure rootdir ends with directory separator (issue4557)

  • filemerge: clean up language in mergemarkertemplate help
  • forget: cleanup the output for an inexact case match on icasefs
  • hgweb: prevent loading style map from directories other than specified paths
  • mergecopies: reuse ancestry context when traversing file history (issue4537)

  • templates: fix "log -q" output of default style
  • templates: fix "log -q" output of phases style
  • win32: 'raise ctypes.WinError' -> 'raise ctypes.WinError()'

Mercurial 3.3.2 (2015-03-02)

An unscheduled bugfix release to fix the fix.

  • transaction: really disable hardlink backups (issue4546)

Mercurial 3.3.1 (2015-03-02)

This is a regularly scheduled bugfix release. It fixes a significant regression with transactions on Windows network shares.

  • dispatch: work around UnicodeDecodeError caused by SSLError of Python 2.7.9

  • hgweb: recreate old DOM structure for css in monoblue style
  • largefiles: access to specific fields only if largefiles enabled (issue4547)

  • log: fix json-formatted output when file copies are listed (issue4523)

  • repoview: invalidate cached changelog if _delayed changes (issue4549)

  • revisionbranchcache: fall back to slow path if starting readonly (issue4531)

  • revset: mask specific names for named() predicate
  • shellquote: fix missing quotes for empty string
  • templatekw: fix {join(bookmarks, sep)} to always show associated bookmarks
  • transaction: disable hardlink backups (issue4546)

Mercurial 3.3 (2015-02-01)

This is a regularly scheduled feature release with over 800 changes.

commands

  • add: add back forgotten files even when not matching exactly (BC)
  • addremove: add back forgotten files (BC)
  • addremove: add support for the -S flag
  • addremove: print relative paths when called with -I/-X (BC)
  • addremove: support addremove with explicit paths in subrepos
  • backout: add --commit option
  • commit: abort if --addremove is specified, but fails
  • commit: remove reverse search for copy source when not in parent (issue4476)

  • commit: propagate --addremove to subrepos if -S is specified (issue3759)

  • graft: show more useful status information while grafting

core

  • bundles: do not overwrite existing backup bundles (BC)
  • osx: patch .pax.gz files in pkg bundles so they extract as root (issue4081)

  • revset: handle hidden linkrev for file missing for head (issue4490)

  • revset: allow rev(-1) to indicate null revision (BC)
  • revset: fix ancestors(null) to include null revision (issue4512)

  • subrepo: don't abort in add when non-hg subrepos are present (issue4513)

  • cmdserver: use given streams as pipe channels like other commands
  • extensions: only check compatibility against major and minor versions (BC)
  • https: support tls sni (server name indication) for https urls (issue3090)

  • ignore: resolve ignore files relative to repo root (issue4473) (BC)

  • linkrev: handle filtered linkrev with no visible children (issue4307)

  • linkrev: also adjust linkrev when bootstrapping annotate (issue4305)

  • linkrev: use the right manifest content when adjusting linrev (issue4499)

  • memctx: calculate manifest correctly with newly-removed files (issue4470)

  • memctx: fix manifest for removed files (issue4470)

  • obsstore: disable garbage collection during initialization (issue4456)

  • subrepo: support remove with explicit paths in subrepos
  • subrepo: add full revert support for git subrepos
  • subrepo: add partial diff support for git subrepos
  • subrepo: add status support for ignored files in git subrepos
  • win32: remove Mercurial.ini file from Inno Setup installer (issue4435)

hgweb

  • hgweb: allow viewing diffs against p1 or p2 for merge commits (issue3904)

extensions

  • color: add support for colorizing git subrepo diffs
  • color: add missing 'dim' in _effects
  • convert: on svn failure, note libsvn version (issue4043)

  • convert: replace revision references in messages if they are >= short hashes

  • convert: handle LookupError in mercurial_source.lookuprev()

  • extdiff: reintroduce backward compatibility with manual quoting of parameters
  • histedit: add a test to show that issue4251 is fixed (issue4251)

  • largefiles: fix commit of a directory with no largefile changes (issue4330)

  • largefiles: use 'default' path for pulling largefiles, not 'default-push'
  • largefiles: enable subrepo support for add, forget, remove
  • largefiles: show progress when checking standin hashes in outgoing changesets
  • mq: smarter handling of plain headers
  • patchbomb: don't honor whitespace and format-changing diffopts (BC)
  • rebase: show more useful status information while rebasing
  • rebase: ensure rebase revision remains visible (issue4504)

  • extdiff: avoid unexpected quoting arguments for external tools (issue4463)

  • highlight: ignore Unicode's extra linebreaks (issue4291)

  • record: don't honor format-changing diffopts (issue4459)

  • share: add option to share bookmarks
  • transplant: properly skip empty changeset (issue4423)

Mercurial 3.2.4 (2015-01-01)

This is a regularly-scheduled bugfix release.

  • demandimport: blacklist distutils.msvc9compiler (issue4475)

  • largefiles: backout f72d73937853 - linear updates handle m -> a differently

  • largefiles: fix a spurious missing file warning with 'remove -A' (issue4053)

  • largefiles: fix a spurious missing file warning with forget (issue4053)

  • largefiles: introduce the 'composelargefilematcher()' method
  • largefiles: mark lfile as added in lfdirstate when the standin is added
  • sshpeer: more thorough shell quoting

Mercurial 3.2.3 (2014-12-18)

This is an unscheduled bugfix release containing two security fixes for issues we uncovered in both Git and Mercurial for CVE-2014-9390. Users on Mac and Windows are encouraged to upgrade.

  • context: stop setting None for modified or added nodes
  • darwin: omit ignorable codepoints when normcase()ing a file path
  • encoding: add hfsignoreclean to clean out HFS-ignored characters
  • largefiles: don't actually remove largefiles in an addremove dry run
  • log: fix log -f slow path to actually follow history
  • log: fix log revset instability
  • manifest: disallow setting the node id of an entry to None
  • pathauditor: check for Windows shortname aliases
  • pathauditor: check for codepoints ignored on OS X
  • rebase: ignore negative state when updating back to original wc parent
  • update: add tests for untracked local file
  • update: don't overwrite untracked ignored files on update

Mercurial 3.2.2 (2014-12-01)

This is a regularly-scheduled bugfix release.

  • changegroup: fix file linkrevs during reorders (issue4462)

  • hgweb: send proper HTTP response after uncaught exception
  • largefiles: avoid exec-bit examination on the platforms unaware of it
  • largefiles: don't show largefile/normal prompts if one side is unchanged
  • manifest: fix a bug where working copy file 'add' mark was buggy
  • merge: be precise about what merged into what in short desc
  • merge: before cd/dc prompt, check that changed side really changed
  • mq: fix update of headers that occur in the "wrong" order
  • mq: introduce insertplainheader - same naive implementation as before
  • mq: when adding headers in plain mode, separate them from message (issue4453)

  • mq: when setting message in plain mode, separate it from header (issue4453)

  • push: stop independent usage of bundle2 in syncphase (issue4454)

  • pushkey: gracefully handle prepushkey hook failure (issue4455)

  • rename: properly report removed and added file as modified (issue4458)

  • revert: look for copy information for all local modifications
  • revset: fix first and last for generatorset (issue4465)

  • templates: fix broken "less" & "more" links in paper style (issue4460)

Mercurial 3.2.1 (2014-11-11)

This is an unscheduled release to address regressions in discovery, rebase, and bookmarks.

  • bookmarks: fix formatting of exchange message (issue4439)

  • changegroup: don't store unused value on fnodes (issue4443)

  • convert: use git diff-tree -Cn% instead of --find-copies=n% for older git
  • discovery: indices between sample and yesno must match (issue4438)

  • discovery: limit 'all local heads known remotely' to real 'all' (issue4438)

  • extdiff: quote user-supplied options passed to shell
  • hgweb: fix a crash when using web.archivesubrepos
  • mail: actually use the verifycert config value
  • rebase: fix rebase with no common ancestors (issue4446)

  • serve: correct meta variable of --daemon-pipefds option
  • templater: don't overwrite the keyword mapping in runsymbol() (issue4362)

Mercurial 3.2 (2014-11-01)

This is a quarterly feature release.

commands

  • amend: abort early if no username is configured with evolve enabled (issue4211)

  • amend: fix amending rename commit with diverged topologies (issue4405)

  • annotate: rewrite long short-circuit statement by if-elif-else
  • bookmark: make the search for divergent names more robust
  • bookmarks: allow pushkey if new equals current
  • bookmarks: explicitly track identical bookmarks
  • bookmarks: fix divergent bookmark path normalization
  • bookmarks: inform transaction-related hooks that some bookmarks were moved
  • branches: include active, closed and current flags in template output
  • clone: copy '.hg/bookmarks' during copy clone
  • clone: explicitly push bookmarks when cloning from local to remote
  • clone: fix copying bookmarks in uncompressed clones (issue4430)

  • clone: for local clones, copy branchcache from the right location (issue4286)

  • clone: for local clones, copy over filtered branchcaches as well (issue4286)

  • clone: properly mark branches closed with --uncompressed (issue4428)

  • clone: provide sample username = config entry in .hg/hgrc (issue4359)

  • commit: correctly check commit mutability during commit --amend
  • commit: add customizable committemplate config
  • config: give more fine-tuned sample hgrcs to this command
  • config: highlight parse error caused by leading spaces (issue3214)

  • files: add new command unifying locate and manifest functionality
  • graft: allow regrafting ancestors with --force (issue3220)

  • graft: make --force apply across continues (issue3220)

  • help: document that default hgweb style is called paper (issue4373)

  • help: update help for hgweb template and style (issue4373)

  • import: let --exact 'work' with --no-commit (issue4376)

  • locate: deprecate in favor of files
  • log: allow patterns with -f
  • log: do not hide the public phase in debug mode (BC)
  • log: rewrite default template to use labels (issue2866)

  • log: show phase in hg log -v with the phase template
  • merge-tools: add a 'premerge=keep-merge3' config option
  • merge: use bid merge by default (BC)
  • merge: support three labels when using conflict markers
  • parents: deprecate the parents commands
  • pull: perform bookmark updates in the transaction
  • push: update bookmarks within the remote lock
  • push: wrap local phase movement in a transaction
  • pushbookmark: do not attempt to update bookmarks if the push failed (BC)
  • status: make 'hg status --rev' faster when there are deleted files
  • tag: properly abort if an unknown or ignored .hgtags is present

core

  • alias: expand "$@" as list of parameters quoted individually (BC) (issue4200)

  • dirstate: add exception when calling setparent without begin/end (API)
  • dirstate: wrap setparent calls with begin/endparentchange (issue4353)

  • hook: protect commit hooks against stripping of temporary commit (issue4422)

  • i18n: detect UI language without POSIX-style locale variable on Windows (BC)
  • localrepo: remove the 'pull' method (API)
  • localrepo: remove the 'push' method (API)
  • posix: implement readpipe using non-blocking I/O (issue4336)

  • revset: fix O(2^n) perf regression in addset
  • revset: have rev() drop out-of-range or filtered rev explicitly (issue4396)

  • setdiscovery: limit the size of all sample (issue4411)

  • ssl: only support TLS (BC)
  • ssl: only use the dummy cert hack if using an Apple Python (issue4410)

  • templater: fix ifcontains when list is a string (issue4399)

extensions

  • convert: add support for deterministic progress bar on scanning phase
  • convert: add support to detect git renames and copies
  • eol: fix crash when handling removed files
  • histedit: add "roll" command to fold commit data and drop message (issue4256)

  • largefiles: add examination of exec bit in "hg status --rev REV" case
  • largefiles: keep largefiles from colliding with normal one during linear merge
  • largefiles: restore R status of removed largefiles correctly at "hg rollback"
  • largefiles: restore standins from non branch-tip parent at rollback correctly
  • largefiles: unlink standins not known to the restored dirstate at rollback
  • mq: write '# Parent ' lines with two spaces like export does (BC)
  • mq: write headers for new HG patches in the same order as export (BC)
  • shelve: don't delete "." when rebase is a no-op (issue4398)

hgweb

  • hgweb: disable SSLv3 serving (BC)
  • hgweb: refresh repository using URL not path (issue4323)

Mercurial 3.1.2 (2014-10-01)

This is a regularly-scheduled bugfix release.

  • commit: catch changed exec bit on files from p1 (issue4382)

  • diff: document the nobinary option
  • dispatch: check shell alias again after loading extensions (issue4355)

  • dispatch: make "_checkshellalias" reusable regardless of adding aliases
  • help: fix typo in log examples
  • help: mention mode in hg log --removed help (issue4381)

  • hgweb: fail if an invalid command was supplied in url path (issue4071)

  • hgweb: refresh hgweb.repo on phase change (issue4061)

  • histedit: abort gracefully on --continue/--abort with no state
  • keepalive: fix how md5 is used
  • mq: examine "pushable" of already applied patch correctly
  • mq: pop correct patches when changing pushable-ness of already applied ones
  • mq: report correct numbers for changing "number of guarded, applied patches"
  • mq: use "mq.applied[i].name" instead of "mq.appliedname(i)" for safety
  • revset: add an optimised baseset.contains (issue4371)

  • templater: fix precedence of --style and --template options

Mercurial 3.1.1 (2014-09-01)

This is a regularly-scheduled bugfix release.

  • changectx: ancestor should only prefer merge.preferancestor if it is a revision
  • color: pass on key error for win32 (issue4298)

  • config: exit non zero on non-existent config option (issue4247)

  • context: call normal on the right object
  • debugobsolete: catch ValueError that may be raised by obsstore.create

  • discovery: prevent crash on unknown remote heads with old repo (issue4337)

  • graft: fix collision detection with origin revisions that are missing
  • help: add pad function to template help
  • help: only call doc() when it is callable
  • hgweb: avoid config object race with hgwebdir (issue4326)

  • histedit: preserve initial author on fold (issue4296)

  • import: show warning message for merge changesets
  • incoming: don't request heads that already are common
  • largefiles: don't override matchandpats for always matchers (issue4334)

  • largefiles: drop setting lfstatus in overridelog (issue4334)

  • largefiles: in overridelog, use non-lf matcher for patch generation (issue4334)

  • log: use correct phase info for parent field (issue4347)

  • merge: show the scary multiple ancestor hint for merges only, not for updates
  • obsstore.create: add a simple safeguard against cyclic markers
  • repoview: filter tags to non-existent nodes from blockers (issue4328)

  • repoview: fix typo in repoview.changelog
  • revset: bookmark revset interprets 'literal:' prefix correctly (issue4329)

  • unbundle: don't advance bookmarks (issue4322) (BC)

Mercurial 3.1 (2014-08-01)

Core features

  • backout: accept '--edit' like other commands creating new changeset
  • bookmarks: improve the bookmark help (issue4244)

  • commit: make commit message shown in text editor customizable by template
  • config: allow 'user' in .hgrc ui section (issue3169)

  • conflict markers: customise local/other name for various command (graft, update, rebase, ...) (BC)
  • diff: add nobinary config to suppress git-style binary diffs
  • discovery: if a push would create a new head, mention the bookmark name if any
  • filemerge: add an internal:tagmerge merge tool
  • filemerge: add a [ui] mergemarkers option to use detailed merge marker.

  • gpg: accept '--edit' like other commands creating new changeset
  • help: suggest keyword search when no topic is found
  • import: add --partial flag to create a changeset despite failed hunks
  • resolve: print message when no unresolved files remain (issue4214)

  • resolve: print warning when no work performed (issue4208)

  • templatefilter: add splitlines function
  • templatekw: add 'currentbookmark' keyword to show current bookmark easily
  • templatekw: add 'subrepos' keyword to show updated subrepositories
  • templater: introduce startswith function
  • templater: introduce word function
  • templates: escape NUL bytes in jsonescape (issue4303)

  • update: introduce --tool for controlling the merge tool
  • update: show message when a bookmark is activated by update
  • update: when deactivating a bookmark, print a message
  • version: show enabled extensions (issue4209)

Extension features

  • convert: detect removal of ".gitmodules" at git source revisions correctly
  • convert: drastically speed up git conversions
  • convert: mercurial source: convert global tags only - not local tags
  • convert: only consider shamap revisions converted if they still exists
  • convert: update the transplant, rebase and graft references in 'extra'
  • largefiles: show also how many data entities are outgoing at "hg outgoing"
  • mergetools.hgrc: add minimal configuration for editmerge
  • pager: add attend-<command> option

  • patchbomb: includes series information in the header
  • purge: add options for deleting only files or only directories
  • qfold: allow to specify '--message/'--logfile' and '--edit' at the same time
  • qimport: record imported revs incrementally (issue3874)

  • qrefresh: allow to specify '--message/'--logfile' and '--edit' at the same time
  • shelve: accept '--edit' like other commands creating new changeset
  • shelve: add -l|--list support for bash completion
  • strip: drop -b/--backup option (BC)

Fixes

  • bookmarks: avoid deleting primary bookmarks on rebase
  • branch: add debug message for branch cache write failure
  • bugzilla extension: stop trying to cache setup across hook invocation
  • filemerge: use non-minimal conflict marker regions (BC)
  • help: always show command help with -h (issue4240)

  • histedit: respect revsetalias entries (issue4311)

  • largefiles: avoid unnecessary creation of .hg/largefiles when opening lfdirstate
  • largefiles: include largefiles when doing log on a directory (issue4241)

  • largefiles: use "normallookup", if "mtime" of standin is unset
  • log: allow revset for --follow to be lazily evaluated
  • log: do not use exact matcher for --patch --follow without file (issue4319)

  • log: make --patch --follow work inside a subdirectory
  • p4: accept changesets with no description (issue4282)

  • resolve: keep wlock while resolving
  • revset: maintain ordering when subtracting from a baseset (issue4289)

  • revset: optimize baseset.sub (issue4313)

  • strip: remove bookmarks after strip succeed (issue4295)

  • vim: use try catch in vim plugin to avoid conflicts

Experimental features

  • bundle2: add pushkey support
  • bundle2: fix bundle2 pulling all revs on empty pulls
  • bundle2: pull phase data alongside changesets (when enabled)
  • bundle2: use bundle2 to push phases (when enabled)

Mercurial project

  • build: initial support for in-tree autobuilding recipes
  • buildrpm: include release version in .tar.gz name
  • make: add a basic osx mpkg target
  • packaging: move output directory from build/ to packages/
  • setup: fixed for Pythons which don't have a CFLAGS
  • setup: make Xcode 5.1 check less specific

Mercurial 3.0.2 (2014-07-01)

This is a regularly-scheduled bugfix release.

  • cmdutil: add copy-filtering support to duplicatecopies
  • hgweb: avoid initialization race (issue4280)

  • keyword: suppress keyword expansion for internal merge
  • match: make glob '**/' match the empty string
  • parsers.c: fix a couple of memory leaks
  • push: restore contents of HG_URL for hooks (issue4268)

  • rebase: fix bug that caused transitive copy records to disappear (issue4192)

  • repoview: do not crash when localtags refers to non existing revisions

Mercurial 3.0.1 (2014-06-01)

This is a regularly-scheduled bugfix release.

  • alias: change return code of bad definition to 255
  • alias: fix loss of non-zero return code in command aliases
  • alias: handle shlex error in command aliases
  • bookmarks: properly align multi-byte characters
  • bugzilla: support Bugzilla 4.4.3+ API login token authentication (issue4257)

  • bundle2: fix bundle2 pulling all revs on empty pulls
  • bundle2: fix configuration name mismatch
  • changelog: ensure changelog._delaybuf is initialized
  • color: don't fail on error messages when no curses (issue4237)

  • exchange: propagate arguments to the _getbundleextrapart function
  • localrepo: prevent leak of transaction object (issue4258)

  • proxy: remove unneeded _set_hostport for compatibility with Python 2.7.7rc1
  • setup.py, make: avoid problems with outdated, existing hgext/__index__.py*

  • subrepo: avoid sanitizing ".hg/hgrc" in meta data area for non-hg subrepos
  • subrepo: invoke "_sanitize()" also after "git merge --ff"
  • subrepo: make "_sanitize()" take absolute path to the root of subrepo
  • subrepo: make "_sanitize()" work
  • subrepo: normalize path in the specific way for problematic encodings
  • templates: fix ifcontains against sets with length > 1 (issue4259)

  • win32: backout 1a9ebc83a74c

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.

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

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

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)

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 2.9.2 (2014-04-01)

This is a regularly-scheduled bugfix release.

  • amend: save commit message into ".hg/last-message.txt"
  • backout: correct commit status of no changes made (BC) (issue4190)

  • backout: document return code of merge conflict
  • commit: create new amend changeset as secret correctly for "--secret" option
  • commit: propagate --secret option to subrepos (issue4182)

  • convert: more clear documentation of the 'include' default of a 'include .'
  • dispatch: only do import(debugger) when a debugger is requested

  • log: solves bug regarding hg log -r 0:null (issue4039)

  • hg: introduce "wirepeersetupfuncs" to setup wire peer by extensions (issue4109)

  • hg: use "os.path.join()" to join path components which may be empty (issue4203)

  • histedit: save manually edited commit message into ".hg/last-message.txt"
  • localrepo: save manually edited commit message as soon as possible
  • merge: fix lack of "%s" in format string causing TypeError at runtime

  • paper: overlapping of section title on help pages (issue4051)

  • phase: say "Returns 0" instead of "Return 0" like other command help
  • qfold: save manually edited commit message into ".hg/last-message.txt"
  • qnew: save manually edited commit message into ".hg/last-message.txt"
  • rebase: use "commitforceeditor" instead of "ui.edit()" for "--collapse"
  • revset: document the regular expression support for tag(name)
  • subrepo: add trailing newlines to warnings
  • subrepo: convert matched string to integer before comparing Git version
  • subrepo: only retrieve the first two components of the Git version
  • tag: save manually edited commit message into ".hg/last-message.txt"
  • templater: apply "stringify()" on sub expression to get string correctly
  • templater: avoid recursive evaluation of string literals completely
  • templater: make strings in template expressions be "string-escape"-ed correctly
  • templater: raise error for unknown function

Mercurial 2.9.1 (2014-03-01)

This is a regularly-scheduled bugfix release.

  • coal: hgweb style adds extra blank line in file view (issue4136)

  • hg.openpath: use url.islocal to tell if the path is local (issue3624)

  • hgweb: hack around mimetypes encoding thinko (issue4160)

  • hooks: only disable/re-enable demandimport when it's already enabled
  • merge: add "other" file node in the merge state file
  • merge: audit the right destination file when merging with dir rename
  • merge: don't overwrite file untracked after remove, abort with 'untracked files'
  • merge: record the "other" node in merge state
  • pathencode: eliminate signed integer warnings
  • pull: close peer repo on completion (issue2491) (issue2797)

  • purge: avoid duplicate output for --print (issue4092)

  • rebase: do not try to reactivate deleted divergent bookmark
  • resolve: use "other" changeset from merge state (issue4163)

  • verify: do not prevent verify repository containing hidden changesets

Mercurial 2.9 (2014-02-01)

This is a regularly-scheduled feature release.

Core features

  • backout: add a message after backout that need manual commit
  • bash_completion: add global support for -B|--bookmark
  • bash_completion: add global support for -b|--branch
  • bookmarks: allow push -B to create a new remote head (issue2372)

  • date: allow %z in format (issue4040)

  • hgweb: infinite scroll support for coal, gitweb, and monoblue styles
  • patch: add support for git delta hunks
  • url: added authuri when login information is requested (issue3209)

Performance improvement

  • backout: avoid update on simple case
  • branchmap: cache open/closed branch head information
  • cat: increase perf when catting single files
  • changectx: increase perf of walk function
  • strip: add faster revlog strip computation

Extension features

  • bash_completion: add completion for deleting a shelve
  • convert: use branchmap to change default branch in destination (issue3469)

  • record: --user/-u now works with record when ui.username not set (issue3857)

  • subrepo: check phase of state in each subrepositories before committing

Fixes

  • aliases: make "_checkshellalias()" invoke "findcmd()" with "strict=True"
  • bisect: --command without --noupdate should flag the parent rev it tested
  • clone: do not turn hidden changeset public on publishing clone (issue3935)

  • diff: search beyond ancestor when detecting renames
  • push: properly move phase boundary when no changeset are exchanged (issue3786)

  • rebase: abort cleanly when we encounter a damaged rebasestate (issue4155)

  • rebase: do not crash in panic when cwd disapear in the process (issue4121)

  • record: re-enable whitespace-ignoring options
  • relink: abort earlier when on different devices (issue3916)

  • subrepo: make it possible to update to hidden subrepo revisions
  • templater: selecting a style with no templates does not crash (issue4140)

  • update: consider successor changesets for a bare update
  • update: consider successor changesets when moving active bookmark

Mercurial 2.8.2 (2014-01-01)

This is a regularly-scheduled bugfix release.

  • fileset, revset: do not use global parser object for thread safety
  • hgweb: avoid initialization race (issue3953)

  • mpatch: rewrite pointer overflow checks

Mercurial 2.8.1 (2013-12-01)

This is a regularly-scheduled bugfix release.

  • bookmarks: consider successor changesets when moving bookmark (issue4015)

  • contrib: don't mention obsolete graphlog extension in mercurial.ini
  • contrib: promote strip extension over MQ in sample.hgrc
  • contrib: stop mentioning obsolete graphlog extension in sample.hgrc
  • convert: fix svn crash when svn.ra.get_log calls back with orig_paths=None
  • help: fix backwards bisect help example
  • help: use progress instead of mq as in 'hg help config' example
  • hgk: fix tag list parser (issue4101)

  • hgweb: ignore non numeric "revcount" parameter values (issue4091)

  • histedit: hold wlock and lock while in progress
  • largefiles: cache largefiles for update, also without printmessage
  • largefiles: don't crash on 'local renamed directory' actions
  • merge: move forgets to the beginning of the action list
  • minirst: do not interpret a directive as a literal block
  • minirst: find admonitions before pruning comments and adding margins
  • obsolete: stop doing membership test on list
  • parse_index2: fix crash on bad argument type (issue4110)

  • phase: better error message when --force is needed
  • rebase: fix rebase aborts when 'tip-1' is public (issue4082)

  • rebase: fix working copy location after a --collapse (issue4080)

  • share: fix unshare calling wrong repo.init() method

  • shelve: fix bad argument interaction with largefiles (issue4111)

  • shelve: unshelve using an unfiltered repository
  • strip: fix last unprotected mq reference (issue4097)

  • strip: hold wlock for entire duration
  • subrepo: sanitize non-hg subrepos
  • templater: fix escaping in nested string literals (issue4102)

  • templater: makes branches work correctly with stringify (issue4108)

  • templater: only recursively evaluate string literals as templates (issue4103)

  • unshelve: add tests for unknown files
  • unshelve: don't commit unknown files during unshelve (issue4113)

  • util: url keeps backslash in paths
  • util: warn when adding paths ending with \

Mercurial 2.8 (2013-11-01)

This is a regularly scheduled feature release.

Core features

  • hgweb: add revset syntax support to search
  • hgweb: always run search when a query is entered (BC)
  • hgweb (paper theme): add infinite scrolling to graph
  • hgweb: show full date in rfc822 format in tooltips at shortlog page
  • proxy: allow wildcards in the no proxy list (issue1821)

  • pull: for pull --update with failed update, print hint if any
  • rebase: preserve working directory parent (BC)
  • sslutil: add a config knob to support TLS (default) or SSLv23 (BC) (issue4038)

  • templatefilters: add short format for age formatting
  • templater: support using templates with non-standard names from map file
  • update: add error message for dirty non-linear update with no rev
  • addremove: don't do full walks
  • log: make file log slow path usable on huge repos
  • subrepo: let the user choose to merge, keep local or keep remote subrepo revisions

Extension features

  • convert-internals: introduce hg.revs to replace hg.startrev and --rev with a revset
  • convert-internals: update source shamap when using filemap, just as when not using filemap
  • factotum: clean up keychain for multiple hg repository authentication
  • histedit: abort if there are multiple roots in "--outgoing" revisions
  • mq: extract strip function as its standalone extension (issue3824)

  • mq: look for modified subrepos when checking for local changes
  • rebase: remove bailifchanged check from pullrebase (BC)
  • shelve: add a shelve extension to save/restore working changes

Fixes

  • pager: honour internal aliases
  • patch: ensure valid git diffs if source/destination file is missing (issue4046)

  • patch: Fix nullid for binary git diffs (issue4054)

  • progress: stop getting stuck in a nested topic during a long inner step
  • rebase: handle bookmarks matching revset function names (issue3950)

  • rebase: preserve active bookmark when not at head (issue3813)

  • rebase: preserve metadata from grafts of changes (issue4001)

  • rebase: fix selection of base used when rebasing merge (issue4041)

  • ui: send password prompts to stderr again (issue4056)

Mercurial 2.7.2 (2013-10-01)

Regularly scheduled bugfix release. This fixes significant regressions from 2.7 in push/pull performance and SSL negotiation.

  • bundle: fix performance regression when bundling file changes (issue4031)

  • generaldelta: initialize basecache properly
  • help: use full name of extensions to look up them for keyword search
  • histedit: abort if there are multiple roots in "--outgoing" revisions
  • histedit: add more detailed help about "--outgoing"
  • histedit: suggest "histedit --abort" for inconsistent histedit state
  • httpclient: apply upstream revision da7579b034a4 to fix SSL problems (issue4038)

  • rebase: catch RepoLookupError at restoring rebase state for abort/continue

  • rebase: catch RepoLookupError at restoring rebase state for summary

  • repoview: have unfilteredpropertycache using the underlying cache
  • repoview: make propertycache.setcache compatible with repoview
  • revset: fix wrong keyword() behaviour for strings with spaces
  • sslutil: backed out changeset 074bd02352c0 (issue4038)

  • strip: set current bookmark to None if stripped

Mercurial 2.7.1 (2013-09-03)

Regularly scheduled bugfix release.

  • rebase: handle bookmarks matching revset function names (issue3950)

  • tags: write tag overwriting history also into tag cache file (issue3911)

Mercurial 2.7 (2013-08-01)

Regularly scheduled feature release. This release contains an important fix for a merge ancestor calculation regression in the 2.6 series.

Core features

  • bookmarks: allow bookmark command to take multiple arguments
  • commands: add checks for unfinished operations (issue3955)

  • commit: enable --secret option
  • hgweb: run search instead of showing wrong error for ambigious identifier
  • import: cut commit messages at --- unconditionally (issue2148)

  • log: add a log style that is default+phase (issue3436)

  • paper: add line wrapping switch to file source view
  • paper: code selection without line numbers in file source view
  • paper: highlight line which is linked to in source view
  • revert: make backup when unforgetting a file (issue3423)

  • rollback: mark as deprecated
  • sslutil: force SSLv3 on Python 2.6 and later (issue3905)

  • summary: augment output with info from extensions
  • templater: add strip function with chars as an extra argument
  • log: show style list when unknown style specified
  • tip: deprecate the tip command
  • update: add tracking of interrupted updates (issue3113)

Extension features

  • churn: split email aliases from the right
  • histedit: refuse to edit history that contains merges (issue3962)

  • convert: improve error handling when parsing splicemap (issue2084)

  • convert: support paths with spaces in splicemap (issue3844)

Fixes

  • ancestor: Fix a reference counting bug in the C version (issue3984)

  • bookmarks: update only proper bookmarks on push -r/-B (issue 3973)
  • bookmarks: pull --update updates to active bookmark if it moved (issue4007)

  • changegroup: fix fastpath during commit
  • checklink: work around sshfs brain-damage (issue3636)

  • convert: catch empty origpaths in svn gettags (issue3941)

  • convert: fix bad conversion of copies when hg.startrev is specified
  • convert: handle changeset sorting errors without traceback (issue3961)

  • hgweb: fix incorrect way to count revisions in log (issue3977)

  • histedit: don't clobber working copy on --abort if not on histedit cset
  • largefiles: overridematch() should replace the file path instead of extending (issue3934)

  • progress: respect HGPLAIN
  • rebase: allow aborting when descendants detected
  • rebase: continue abort without strip for immutable csets (issue3997)

  • rebase: don't clobber wd on --abort when we've updated away (issue4009)

  • revlog: handle hidden revs in _partialmatch (issue3979)

Mercurial 2.6.3 (2013-07-01)

This is a regularly-scheduled bugfix release.

  • commit: amending with --close-branch (issue3445)

  • doc: make it easier to read how to enable extensions
  • doc: reword "config file" to "configuration file"
  • docs: change description to synopsis in hgrc.5
  • histedit: raise ImportError when demandloading is enabled

  • pathencode: fix hashmangle short dir limit (issue3958)

  • update: remove .hg/graftstate on clean (issue3970)

Mercurial 2.6.2 (2013-06-01)

This is a regularly-scheduled bugfix release.

  • amend: complain more comprehensibly about subrepos
  • blackbox: fix blackbox causing exceptions in tests
  • blackbox: fix recording exit codes (issue3938)

  • dirstate: don't overnormalize for ui.slash
  • graft: refuse to commit an interrupted graft (issue3667)

  • help: fix role/option confusion in RST
  • help: stop documentation markup appearing in generated help

Mercurial 2.6.1 (2013-05-14)

This is an unscheduled bugfix release to address some minor regressions in the 2.6 release.

  • convert: fix bug of wrong CVS path parsing without port number (issue3678)

  • help/config: note 64-bit Windows registry key used with 32-bit Python
  • hfs+: rewrite percent-escaper (issue3918)

  • hgignore: fix regression with hgignore directory matches (issue3921)

  • highlight: fix page layout with empty first and last lines
  • largefiles: check existence of the file with case awareness of the filesystem
  • largefiles: check unknown files with case awareness of the filesystem
  • pathencode: grow buffers to increase safety margin
  • revert: ensure that copies and renames are honored (issue3920)

  • subrepo: open files in 'rb' mode to read exact data in (issue3926)

  • windows: check target type before actual unlinking to follow POSIX semantics

Mercurial 2.6 (2013-05-01)

/!\ This release has known issues with some ignore rules (issue3921) and subrepos on Windows (issue3926)

This is a regularly scheduled feature release.

Core features

  • amend: support amending merge changesets (issue3778)

  • archive: raise error.Abort if the file pattern matches no files
  • bash_completion: allow remove to complete normal files
  • bookmarks: allow (re-)activating a bookmark on the current changeset
  • bookmarks: don't allow integers as bookmark/branch/tag names
  • bookmarks: moving the active bookmark deactivates it
  • bookmarks: resolve divergent bookmarks when moving active bookmark forward
  • bookmarks: resolve divergent bookmark when moving across a branch
  • commit: show active bookmark in commit editor helper text
  • config: discard "%unset" values defined in the other files read in previously
  • dates: support 'today' and 'yesterday' in parsedate (issue3764)

  • date: understand "now" as a shortcut for the current time
  • dispatch: print 'abort:' when a pre-command hook fails (BC)
  • dispatch: return status is 1 and a nice error message is printed when a user intervention is required (BC)
  • export: clobber files with -o (BC) (issue3652)

  • export: export working directory parent by default
  • export: show 'Date' header in a format that also is readable for humans
  • filesets: add eol predicate
  • hgweb: generate documentation as HTML (previously as text)
  • hgweb: teach archive how to download a specific directory or file
  • merge: apply non-interactive working dir updates in parallel
  • mergetools: avoid losing the merged version with meld
  • mergetools: vimdiff issues a warning explaining how to abort
  • sslutil: abort if peer certificate is not verified for secure use
  • summary: make "incoming" information sensitive to branch in URL (issue3830)

  • summary: make "outgoing" information sensitive to branch in URL (issue3829)

  • summary: show active bookmark even if not at current changeset
  • templatekw: add default styles for hybrid types (issue3887)

  • templater: add get() function to access dict element (e.g. extra)
  • addremove: improve performance
  • ancestor: a new algorithm that is faster for nodes near tip
  • dirstate: performance improvements
  • grep: use re2 if possible
  • parsers: a C implementation of the new ancestors algorithm
  • scmutil: rewrite dirs in C, use if available
  • tags: update tag type only if tag node is updated (issue3911)

Extension features

  • blackbox: new extension
  • hgk: add support for phases
  • hgk: don't use fixed format for dates
  • hgk: update backgroud colour when Ttk is available
  • histedit: allow "-" as a command file
  • histedit: handle multiple spaces between action and hash (issue3893)

  • histedit: make "hg histedit" sensitive to branch in URL
  • histedit: properly handle --continue on empty fold
  • histedit: support editing of the first commit (issue3767)

  • interhg: feature integrated in core. Extension removed.
  • largefiles: don't cache largefiles for pulled heads by default
  • largefiles: improve reuse of HTTP connections
  • largefiles: introduce lfpull command for pulling missing largefiles
  • largefiles: introduce pulled() revset expression for use in --lfrev
  • largefiles: introduce pull --lfrev option
  • largefiles: quiet (and document) undefined name errors (issue3886)

  • largefiles: stat all largefiles in one batch before downloading
  • largefiles: use repo.wwrite for writing standins (issue3909)

  • mq: comply with filtering when injecting fake tags (issue3812)

  • mq: do not inherit settings form base repo in mqrepo (Fixes issue2358)

  • rebase: check no-op before checking phase (issue3891)

  • rebase: fix --collapse when a file was added then removed
  • smtp: use 465 as default port for SMTPS
  • smtp: verify the certificate of the SMTP server for STARTTLS/SMTPS
  • subrepo: clone of git sub-repository creates incorrect git branch (issue3870)

  • subrepo: do not push mercurial subrepos whose store is clean
  • subrepo: fix exception on revert when "all" option is omitted

Fixes

  • annotate: increase refcount of each revision correctly (issue3841)

  • applyupdates: assign variable before we try to use it (issue3855)

  • bookmarks: allow moving a bookmark forward to a descendant
  • bookmarks: fix bug that activated a bookmark even with -r passed
  • case collision: Avoid unexpectd case folding issue during merge that should succeed (Bts: issue3452)
  • commit: allow closing "non-head" changesets
  • convert/git: catch errors from modern git-ls-remote (issue3428)

  • destroyed: invalidate phraserevs cache in all case (issue3858)

  • diff: fix binary file removals in git mode
  • http: avoid large text dumps when remote url is not a repo
  • import: don't rollback and unrelated transaction on failed import --exact (issue3616)

  • log: fix behavior with empty repositories (issue3497)

  • outgoing: fix possible filtering crash in outgoing (issue3814)

  • pager: catch ctrl-c on exit (issue3834)

  • record: abort on malformed patches instead of crashing
  • revset: change ancestor to accept 0 or more arguments (issue3750)

  • revset: don't abort when regex to tag() matches nothing (issue3850)

  • scheme: don't crash on invalid URLs
  • setup: make error message for missing Python headers more helpful
  • sshpeer: store subprocess so it cleans up correctly
  • win32: use explicit path to "python.exe" only if it exists

Mercurial 2.5.4 (2013-04-04)

This fixes an urgent regression in merging with subrepos introduced in 2.5.

  • applyupdates: assign variable before we try to use it (issue3855)

  • setup.py: properly discard trust warning

Mercurial 2.5.3 (2013-04-01)

  • hgweb: show correct error message for i18n environment
  • localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)

  • rebase: restore active bookmark after rebase --continue
  • setup.py: add metadata to register package to PyPI
  • setup.py: ignore warnings from obsolete
  • zsh_completion: fix trailing carriage return spoiling tag completion

Mercurial 2.5.2 (2013-03-01)

  • bundle: treat branches created newly on the local correctly (issue3828)

  • largefiles: avoid rechecking hashes when avoidable
  • largefiles: don't let update leave wrong largefiles in wd if fetch fails
  • largefiles: fix off-by-one error on pull --all-largefiles
  • largefiles: fix download of largefiles from an empty list of changesets
  • largefiles: missing largefiles should not be committed as removed
  • mergetools: vimdiff issue a warning explaining how to abort
  • outgoing: fix possible filtering crash in outgoing (issue3814)

  • rebase: fix potential infinite loop in complex rename situation (issue3843)

Mercurial 2.5.1 (2013-02-08)

This is a non-scheduled bugfix release.

  • hgk: support the old way of getting the current Ttk theme (issue3808)

  • hgweb.cgi: fix internal WSGI emulation (issue3804)

  • hgweb: make 'summary' work with hidden changesets (issue3810)

  • incoming: fix incoming when a local head is remotely filtered (issue3805)

  • largefiles: don't crash when trying to find default dest for url without path
  • rebase: derive node from target rev (issue3802)

Mercurial 2.5 (2013-02-01)

This is a regularly-scheduled feature release.

Core features

  • branchmap: improved performances
  • bundle: add revset expression to show bundle contents (issue3487)

  • dirstate: implement unix statfiles in C
  • hgweb: add (Atom) subscribe links to the repository index
  • hgweb: add "URL breadcrumbs"
  • hgweb: add branches RSS and Atom feeds
  • hgweb: secret changeset are excluded from html view (3614 )

  • serve: use chunked encoding in hgweb responses
  • pathencode: implement both basic and hashed encoding in C
  • subrepo: append subrepo path to subrepo error messages
  • validate: check for spurious incoming filelog entries
  • hgweb: allow hgweb's archive to recurse into subrepos

Changeset Evolution

Major progress toward ChangesetEvolution were done.

  • hidden changesets are now properly ignored by all commands
  • a global --hidden flag is added to give access to hidden changesets
  • rewriting a changeset but not its descendants is now allowed; this leaves unstable changeset behind
  • we now detect *divergent* changesets. The third and last kind of obsolescence related troubles. divergent() revset is added

  • a troubled() revset have been added

  • branchmap for of *visible* and *served* changeset are now cached on disk. This is a major performance improvements
  • performance improvements of most evolution related algorithm

Extension features

  • color: add template label function
  • convert: add config option to use the local time zone
  • convert: add support for converting git submodule (issue3528)

  • hgk: use Ttk instead of plain Tk
  • inotify: don't fall over just because of a dangling symlink
  • largefiles: fix revert removing a largefile from a merge
  • largefiles: fix update from a merge with removed files
  • largefiles: make log match largefiles in the non-standin location too
  • largefiles: make update with backup files in .hglf slightly less broken
  • largefiles: rename 'admin' to more descriptive 'lfstoredir
  • rebase: performance improvements
  • rebase: rebase set with multiple roots are now handled by the --rev option
  • record: use patch.diffopts to account for user diffopts
  • share: always set default path to work with subrepos (issue3518)

  • zsh_completion: add completion of branch names

Fixes

  • commands: 'hg bookmark NAME' should work even with ui.strict=True
  • copies: do not track backward copies, only renames (issue3739)

  • destroyed: keep the filecache in sync with __dict__ (issue3335, issue3693, issue3743)

  • grep: don't search past the end of the searched string
  • hgweb: properly returns 404 for unknown revision (instead of 500)
  • histedit: proper phase conservation (issue3724)

  • histedit: prevents obsolescence cycle (issue3681)

  • hook: disable demandimport before importing hooks
  • mq: don't fail when removing a patch without patch file from series file
  • mq: fix qpop of working directory parent patch when not at qtip
  • zeroconf: use port from server instead of picking port from config (issue3746)

  • update: update to current bookmark if it moved out from under us (issue3682)
  • bookmarks: show active bookmark even if not at working dir
  • largefiles: let wirestore._stat return stats as expected by remotestore verify
  • largefiles: adapt verify to batched remote statlfile (issue3780)
  • largefiles: don't allow corruption to propagate after detection
  • largefiles: don't verify largefile hashes on servers when processing statlfile
  • largefiles: allow use of urls with #revision
  • largefiles: fix commit when using relative paths from subdirectory
  • largefiles: fix cat when using relative paths from subdirectory
  • histedit: prevent parent guessed via --outgoing from being a revset (issue3770)
  • rebase: delete divergent bookmarks on destination (issue3685)
  • hgwebdir: use web.prefix when creating url breadcrumbs (issue3790)
  • subrepo: allow skipping courtesy phase sync (issue3781)
  • merge: .hgsubstate is special as merge destination, not as merge source
  • merge: improved handling of symlinks

Mercurial 2.4.2 (2013-01-01)

This is a regularly-scheduled bugfix release.

  • amend: invalidate dirstate in case of failure (issue3670)

  • amend: prevent loss of bookmark on failed amend
  • bookmarks: fix head selection for merge with two bookmarked heads
  • bundlerepo: don't return the peer without bundlerepo from getremotechanges
  • dirstate: don't rename branch file if writing it failed
  • dirstate: remove obsolete comment from setbranch
  • hgweb: avoid generator exhaustion with branches
  • hgweb: fix iterator reuse in atom feed generation
  • hgwebdir: honor web.templates and web.static for static files (issue3734)

  • largefiles revert: update lfdirstate with result from first cleanliness check
  • largefiles status: update lfdirstate with result from cleanliness check
  • largefiles: commit directories that only contain largefiles (issue3548)

  • largefiles: don't walk through all ignored files
  • paper: sanity-check page feed links
  • scmutil: don't try to match modes on filesystems without modes (issue3740)

  • zeroconf: use port from server instead of picking port from config (issue3746)

Mercurial 2.4.1 (2012-12-03)

This is a regularly-schedule bugfix release.

  • amend: force editor only if old message is reused (issue3698)

  • grep: don't search past the end of the searched string
  • hooks: be even more forgiven of non-fd descriptors (issue3711)

  • hooks: delay I/O redirection until we actually run a hook (issue3711)

  • phases: fix missing "error" module import (issue3707)

  • rebase: fix pull --rev options clashing with --rebase (issue3619)

  • subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)

  • update: allow update to existing branches with invalid names (issue3710)

  • util: make chunkbuffer non-quadratic on Windows

Mercurial 2.4 (2012-11-01)

This is a regularly-scheduled feature release.

Core features

  • amend: support for ChangesetEvolution if enabled

  • bookmarks: deactivate current bookmark if no name is given
  • bookmarks: teach the -r option to use revsets
  • bookmarks: disallow bookmarks named 'tip', '.', or 'null'
  • clone: substantial speedup to clone on repo with a lots of heads (issue3378)

  • clone: activate bookmark specified with --updaterev
  • clone: update to @ bookmark if it exists
  • log: substantial speedup for untracked files (issue1340)

  • revsets: add branchpoint() function
  • resolve: commit the changes after each item resolve (issue3638)

  • subrepo, hghave: use "svn --version --quiet" to determine version number
  • subrepo: setting LC_MESSAGES only works if LC_ALL is empty or unset
  • templatefilters: add parameterized date method
  • templatefilters: add parameterized fill function
  • templatefilters: avoid traceback caused by bogus date input (issue3344)

  • templatekw: add p1rev, p1node, p2rev, p2node keywords
  • templatekw: add parent1, parent1node, parent2, parent2node keywords
  • templater: abort when a template filter raises an exception (issue2987)

  • templater: add if/ifeq conditionals
  • templater: add sub() function
  • templating: make new-style templating features work with command line lists
  • bookmarks: take ChangesetEvolution into account when updating (issue3561)

  • speedup various operation related to ChangesetEvolution

  • add detection of changeset bumped by ChangesetEvolution

Extension features

  • color: add additional changeset.phase label to log.changeset and log.parent
  • color: enabled color support for export command (issue1507)

  • color: support for all grep fields
  • contrib: add a commit synthesizer for reproducing scaling problems
  • histedit: refuse to edit public changeset
  • histedit: replaces patching logic by merges
  • histedit: support for ChangesetEvolution if enabled

  • largefiles: always create the cache and standin directories when cloning
  • largefiles: distinguish "no remote repo" from "no files to upload" (issue3651)

  • largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)

  • mq: improve qqueue message with patches applied (issue3036)

  • mq: update bookmarks during qrefresh
  • notify: support revset selection for subscriptions
  • rebase: support for ChangesetEvolution if enabled

  • record: checks for valid username before starting recording process (issue3456)

  • record: fix display of non-ASCII names in chunk selection

Fixes

  • amend: fix incompatibity between logfile and message option (issue3675)

  • amend: wrap all commit operations in a single transaction
  • bookmarks: abort when incompatible options are used (issue3663)

  • bookmarks: avoid redundant creation/assignment of "validdests" in "validdest()"
  • bookmarks: check bookmark format during rename (issue3662)

  • bookmarks: when @ bookmark diverges, don't double the @ sign (BC)
  • bookmark: prevent crashing when a successor is unknown locally (issue3680)

  • clone: activate @ bookmark if updating to it
  • clone: don't %-escape the default destination (issue3145)

  • clone: make sure to use "@" as bookmark and "default" as branch (issue3677) (BC)

  • clone: print bookmark name when clone activates a bookmark
  • commands: don't infer repo for commands like update (issue2748)

  • convert: normalize paths in filemaps (issue3612)

  • dirstate: handle large dates and times with masking (issue2608)

  • dirstate: handle dangling junctions on windows (issue2579)

  • filemerge: use util.shellquote when calling merge (issue3581)

  • hgweb: make the escape filter remove null characters (issue2567)

  • http2: make it possible to connect w/o ssl on port 443
  • icasefs: make case-folding collision detection as deletion aware (issue3648)

  • largefiles: don't copy largefiles from working dir to the store while converting
  • largefiles: respect the rev when reading standins in copytostore() (issue3630)

  • largefiles: use 'default' instead of 'default-push' when pulling (issue3584)

  • mq: fix qrefresh case sensitivity (issue3271)

  • patchbomb: respect --in-reply-to for all mails if no intro message is sent
  • remove: don't return error on directories with tracked files
  • revset: accept @ in unquoted symbols (issue3686)

  • scmutil: add mustaudit delegation to filtervfs (issue3673)

  • subrepo: only do clean update when overwrite is set (issue3276)

  • subrepo: subrepo isolation, pass baseui when cloning a new subrepo (issue2904)

  • update: check for missing files with --check (issue3595) (BC)

  • url: use open and not url.open for local files (issue3624)

  • verify: fix all doubled-slash sites (issue3665)

  • wireproto: fix pushkey hook failure and output on remote http repo

Mercurial 2.3.2 (2012-10-01)

  • amend: preserve phase of amended revision (issue3602)

  • archival: add "extended-timestamp" extra block for zip archives (issue3600)

  • hgweb: avoid bad $$ processing in graph (issue3601)

  • hgweb: fix incorrect graph padding calculation (issue3626)

  • largefiles: fix return codes for multiple commands
  • largefiles: don't convert dest=None to dest=hg.defaultdest() in clone command
  • largefiles: download missing subrepo revs when archiving
  • largefiles: enable islfilesrepo() prior to a commit (issue3541)

  • largefiles: handle commit -A properly, after a --large commit (issue3542)

  • largefiles: preserve exit code from outgoing command (issue3611)

  • largefiles: restore caching of largefiles with 'clone -U --all-largefiles'
  • largefiles: restore normal 'clone -u' and 'clone -U' functionality
  • lock: fixed race condition in trylock/testlock (issue3506)

  • mergetools.hgrc: set vimdiff to check=changed
  • strip: fix revset usage (issue3604)

  • subrepo: encode unicode path names (issue3610)

Mercurial 2.3.1 (2012-09-01)

  • clone: don't fail with --update for non-local clones (issue3578)

  • commit: normalize filenames when checking explicit files (issue3576)

  • fileset: actually implement 'minusset'
  • fileset: do not traceback on invalid grep pattern
  • fileset: exclude deleted files from matchctx.existing()
  • fileset: fix generator vs list bug in fast path
  • fileset: matchctx.existing() must consider ignored files
  • fileset: matchctx.existing() must consider unknown files
  • largefiles: adjust localstore to handle batch statlfile requests (issue3583)

  • merge: handle case when heads are all bookmarks
  • obsolete: import modules within mercurial/ without "from mercurial"
  • revlog: don't try to partialmatch strings with length > 40

  • rollback: write dirstate branch with correct encoding
  • store: only one kind of OSError means "nonexistent entry"
  • store: sort the results of fncachestore.datafiles()
  • strip: fix revset usage (issue3604)

  • templater: handle a missing value correctly
  • verify: do not choke on valid changelog without manifest
  • wix: bump MSI based installers to use Python 2.7

Mercurial 2.3 (2012-08-01)

This is a regularly-scheduled feature release with numerous improvements and bugfixes.

Core features

  • help: add --keyword (-k) for searching help
  • hgweb: side-by-side comparison functionality
  • log: support --graph without graphlog extension
  • push: accept revset argument for --rev
  • merge: bookmarks will no longer automatically merge with unnamed heads or other bookmarks. Instead it picks heads with diverging bookmarks.
  • introduce ChangesetsObsolescence concept (experimental)

  • bookmarks: allow existing remote bookmarks to become heads when pushing
  • bookmarks: pull new bookmarks from remote by default (backward incompatible change)

  • bookmarks: delete divergent bookmarks on merge
  • bisect: set HG_NODE when runing a command
  • graft: allow -r to specify revisions
  • graft: implement --log (issue3438)

  • graft: remark on empty graft
  • hooks: print out more information when loading a python hook fails
  • identity: show trailing '+' for dirty subrepos (issue2839)

  • incoming/outgoing: handle --graph in core
  • merge: warn about file deleted in one branch and renamed in other (issue3074)

  • Mercurial can now identify third-party extensions as sources of tracebacks
  • outgoing: accept revset argument for --rev
  • performance improvement on branchy repo: incrementaly update branchcache
  • performance improvement on huge file tree: add a C function to pack the dirstate
  • performance improvement for huge .hgignore: process regex with re2 bindings if available
  • revset: add "diff" field to "matching" predicate
  • revset: add "converted" predicate to find converted changesets
  • revset: add "origin" and "destination" predicates, to get graft, transplant or rebase origins or destinations.
  • revset: add "extra" predicate to match changesets extra fields (issue2767)

  • revset: add pattern matching to "bookmarks/branch/extra/tag/user" predicated

Extension features

  • acl: use of "!" prefix in user or group names
  • children: mark extension as deprecated
  • convert/svn: handle non-local svn destination paths (issue3142)

  • convert: accept Subversion 'file:///c%3A/svnrepo' syntax on Windows

  • fetch: mark extension as deprecated
  • graphlog: feature is now into core
  • histedit: new extension for interactive history editing
  • hg-ssh: add read-only flag
  • largefiles: add --all-largefiles flag to pull and clone (issue3188)

  • largefiles: improve performance by batching statlfile requests when pushing a largefiles repo (issue3386)

  • largefiles: no longer attempt to clone all largefiles to non-local destinations
  • largefiles: optimize performance when updating (issue3440)

  • largefiles: support revsets for cat, outgoing --large and revert
  • mq: introduce qpush/qpop/qgoto --keep-changes
  • strip: introduce -B option to remove a bookmark
  • rebase: allow collapsing branches in place (issue3111)

  • rebase: make --dest understand revsets
  • rebase: drop the infamous --detach option: rebase now behave with --source and --rev as expectable. It may no longer add second parent to rebased changeset (backward incompatible change)

  • transplant: handle non-empty patches doing nothing (issue2806)

  • transplant: manually transplant pullable changesets with --log

Fixes

  • bisect: fix O(n**2) behaviour (issue3382)

  • bookmarks: fix push of moved bookmark when creating new branch heads
  • case insensitive file system can no longer be confused by -R on (issue2167)

  • copies: one fix related to directory rename detection (issue3511)

  • convert: check for failed svn import in debugsvnlog and abort cleanly
  • convert: ignore svn:executable for subversion targets without exec bit support
  • convert: keep branch switching merges with ancestors (issue3340)

  • convert: make filemap renames consistently override revision renames
  • debugrevlog: fix a bug with empty repository (issue3537)

  • graphlog: don't truncate template value at last \n
  • httprepo: ensure Content-Type header exists when pushing data
  • largefiles: fix a traceback when addremove follows a remove (issue3507)

  • largefiles: fix a traceback when archiving a subrepo in a subrepo
  • largefiles: fix addremove when largefile is missing (issue3227)

  • largefiles: fix addremove with -R option
  • largefiles: fix exception hack for i18n (issue3197)

  • largefiles: fix path handling for cp/mv (issue3516)

  • largefiles: archive -S now store largefiles instead of standins
  • largefiles: fix hg addremove when already removed largefile exists (issue3364)

  • merge: do not warn about copy and rename in the same transaction (issue2113)

  • mq: add ".hgsubstate" to patch target list only if it is not listed up yet
  • mq: create patch file after commit to import diff of ".hgsubstate" at qrefresh
  • pager: work around bug in python 2.4's subprocess module (issue3533):

  • revlog: zlib.error are no longer sent to the user (issue3424)

  • tag: don't allow tagging the null revision (issue1915)

Mercurial 2.2.3 (2012-07-01)

This is a regularly-scheduled bugfix release.

  • amend: disable hooks when creating intermediate commit (issue3501)

  • archive: make progress only show files that are actually archived
  • bookmarks: correctly update current bookmarks on rebase (issue2277)

  • bugzilla: stop bugs always being marked as fixed in xmlrpc (issue3484)

  • graft: don't drop the second parent on unsuccessful merge (issue3498)

  • hgweb: fixes linebreak location in gitweb filediff.tmpl view
  • rebase: improve error message on improper phases
  • record: fix display of non-ASCII names
  • statichttprepo: don't send Range header when requesting entire file
  • strip: update help to state that you can strip public changeset
  • subrepo/svn: make rev number retrieval compatible with svn 1.5 (issue2968)

  • subrepo: support Git being named "git.cmd" on Windows (issue3173)

  • subrepo: warn user if Git is not version 1.6.0 or higher
  • update: fix help regarding update to ancestor

Mercurial 2.2.2 (2012-06-01)

This is a regularly-scheduled bugfix release.

  • addremove: document default similarity behavior (issue3429)

  • alias: inherit command optionalrepo flag (issue3298)

  • amend: preserve extra dict (issue3430)

  • bisect: save current state before running a command
  • bugzilla: fix transport initialization on python 2.4
  • build: fix hgrc manpage building with docutils 0.9
  • bundle: make bundles more portable (issue3441)

  • changelog: ensure that nodecache is valid (issue3428)

  • hg-ssh: exit with 255 instead of -1 on error
  • hgweb: fix filediff base calculation
  • largefiles: fix "hg status dir" missing regular files (issue3421)

  • largefiles: fix deletion of multiple missing largefiles (issue3329)

  • largefiles: follow normal codepath for addremove if non-largefiles repo (issue3249)

  • largefiles: in putlfile, ensure tempfile's directory exists prior to creation
  • largefiles: use wlock for lfconvert (issue3444)

  • localrepo: clear _filecache earlier to really force reloading (issue3462)

  • match: make 'match.files()' return list object always
  • mq: add --no-backup for qpush/qpop/qgoto
  • mq: backup local changes in qpop --force (issue3433)

  • mq: backup local changes in qpush --force
  • mq: qimport need wlock for --push - do that after releasing lock
  • osutil: handle deletion race with readdir/stat (issue3463)

  • pager: check if signal.SIGPIPE exists
  • pager: preserve Hg's exit code (and fix Windows support) (issue3225)

  • pager: remove quiet flag
  • paper, monoblue: link correctly to lines in annotate view
  • parsers: fix refcount bug on corrupt index
  • patch: fix segfault against unified diffs which start line is zero
  • patch: keep patching after missing copy source (issue3480)

  • posix: workaround lack of TIOCGWINSZ on Irix (issue3449)

  • revpair: handle odd ranges (issue3474)

  • revset: explicitely tag alias arguments for expansion
  • revset: fix infinite alias expansion detection
  • revset: fix traceback for bogus revisions in id(rev)
  • revset: make matching() preserve input revision order
  • scmutil: seen.union should be seen.update (issue3476)

  • subrepo: do not traceback on .hgsubstate parsing errors
  • subrepo: ignore blank lines in .hgsubstate (issue3424)

  • tag: run commit hook when lock is released (issue3344)

  • templater: handle SyntaxError when parsing ui.logtemplate

  • util: fix bad variable use in bytecount introduced by f0f7f3fab315
  • win32: fix encoding handling for registry strings (issue3467)

Mercurial 2.2.1 (2012-05-03)

This is an unscheduled bugfix release to fix a signficant memory leak in hgweb.

  • bookmarks: catch the proper exception for missing revisions
  • help: add reference to template help (issue3413)

  • help: added description for the web.collapse setting
  • largefiles: fix commit of both largefiles and non-largefiles (issue3354)

  • parsers: fix refcount leak, simplify init of index (issue3417)

Mercurial 2.2 (2012-05-01)

This is a regularly-scheduled feature release. The most notable feature is a new safe '--amend' option for commit using our new phases infrastructure. There are also a number of signficant performance improvements for large repositories and improvements for case-folding filesystems. See UpgradeNotes for minor compatibility notes.

Core features

  • commit: add --amend option
  • fileset: add "subrepo" fileset symbol
  • graft: add --dry-run support (issue3362)

  • hgweb: add support for branch width and color settings
  • hgweb: add block numbers to diff regions and related links
  • hgweb: support multi-level repository indexes by enabling descend and collapse
  • merge: improve performance with lots of unknown files
  • parsers: incrementally parse the revlog index in C
  • plan9: add support for plan9

  • push/pull: improve performance for partial transfers
  • push: decompress in larger chunks for better performance on the server
  • clone: add server config option to prefer uncompressed clone
  • revert: add support for reverting subrepos
  • revset: add "matching" keyword
  • store: speed up read and write of large fncache files
  • ui: optionally quiesce ssl verification warnings on python 2.5

Extension features

  • bugzilla: add xmlrpcemail submission for Bugzilla 3.6 email interface
  • bugzilla: allow change comment to mark bugs fixed
  • bugzilla: extract optional hours from commit message and update bug time
  • bugzilla: modify access interface to include new bug states
  • graphlog: add all log options to glog command
  • patchbomb: add --body flag to send patches as inline message body text
  • record: allow splitting of hunks by manually editing patches
  • transplant: permit merge changesets via --parent

Fixes

  • alias: fix shell alias documentation (issue3374)

  • archive: make it work with svn subrepos (issue3308)

  • branchmap: server should not advertise secret changeset in branchmap (issue3303)

  • clone: always close source repository (issue2491)

  • commit: abort on merge with missing files (BC)
  • config: discard UTF-8 BOM if found
  • convert/bzr: convert all branches (issue3229) (BC)

  • convert/bzr: expect unicode metadata, encode in UTF-8 (issue3232)

  • convert/bzr: handle empty bzr repositories (issue3233)

  • convert/bzr: ignore nested repos when listing branches (issue3254)

  • convert/svn: do not try converting empty head revisions (issue3347)

  • convert/svn: make svn sink work with svn 1.7
  • convert: support non-annotated tags in git backend
  • dirstate: preserve path components case on renames (issue3402)

  • export: catch exporting empty revsets (issue3353)

  • icasefs: make case-folding collision detection rename aware (issue3370)

  • inotify: catch SignalInterrupt during shutdown (issue3351)

  • journal: use tryread helper to backup files (issue3375)

  • largefiles: fix cat for largefiles (issue3352)

  • largefiles: fix status -S reporting of subrepos (issue3231)

  • largefiles: hide .hglf/ prefix for largefiles in hgweb
  • largefiles: notice dirty large files in a subrepo
  • largefiles: only update changed largefiles when transplanting
  • largefiles: optimize update speed by only updating changed largefiles
  • localrepo: add setparents() to adjust dirstate copies (issue3407)

  • mdiff: fix diff header generation for files with spaces (issue3357)

  • merge: check for untracked files more precisely (issue3400)

  • merge: fix unknown file merge detection for case-folding systems
  • patch: be more tolerant with "Parent" header (issue3356)

  • patch: be more tolerant with EOLs in binary diffs (issue2870)

  • patch: fix patch hunk/metdata synchronization (issue3384)

  • phase: when phase cannot be reduced, hint at --force and return 1 (BC)
  • posix: disable cygwin's symlink emulation (BC)
  • posix: ignore execution bit in cygwin (issue3301)

  • pure/osutil: use Python's msvcrt module (issue3380)

  • rebase: preserve mq series order, guarded patches (issue2849)

  • rebase: skip resolved but emptied revisions
  • revset: fix O(n**2) behaviour of bisect() (issue3381)

  • revset: fix adds/modifies/removes and patterns (issue3403)

  • revset: fix alias substitution recursion (issue3240)

  • subrepo/svn: abort on commit with missing file (issue3029)

  • subrepo/svn: fix checked out rev number retrieval (issue2968)

  • subrepo: fix default implementation of forget() (issue3404)

  • subrepo: rewrite handling of subrepo state at commit (issue2403)

  • templates/filters: extracting the user portion of an email address (BC)
  • transplant: do not rollback on patching error (issue3379)

  • update: fix case-collision with a clean wd and no --clean
  • update: make --check abort with dirty subrepos
  • update: use normal update path with --check (issue2450)

  • wireprotocol: use visibleheads as reference while unbundling (issue 3303)

Mercurial 2.1.2 (2012-04-01)

This is a regularly-scheduled bugfix release.

  • alias: abort on missing positional args (issue3331)

  • aliases: use empty string for missing position parameters (issue3331)

  • bookmarks: clone non-divergent bookmarks with @ in them
  • convert/git: abort if git submodules are detected (issue2150)

  • convert: deal with empty splicemap path (issue3311)

  • dirstate: avoid normalizing letter case on icasefs for exact match (issue3340)

  • dirstate: fix some problems for recursive case normalization (issue3342)

  • dirstate: normalize case of directory components
  • extdiff: escape filenames with vim/DirDiff and make quoting work with Windows
  • filemerge: remove temporary files when using internal:dump as merge-tool
  • filemerge: restore default prompt for binary/symlink lost in 83925d3a4559
  • icasefs: use case preserved root for 'util.fspath()' invocation (issue3302)

  • largefiles: suppress unexpected warning of 'hg status' for removed files
  • localrepo: fix unpushable repos when using bookmarks (issue3317)

  • merge: accept missing revisions in symlink flag merge (issue3316)

  • merge: handle linear update to symlink correctly (issue3316)

  • mq: fix qpush --move with comments in series file between applied patches
  • qfinish: comply with the phases.new-commit option in secret mode (issue3335)

  • rebase: move bookmarks as needed with pull --rebase (issue3285)

  • rebase: properly calculate descendant set when aborting (issue3332)

  • rename: handle case-changing (issue1717)

  • setup.py: don't call splitlines twice on the output of xcodebuild (issue3277)

  • strip: enhance repair.strip to receive a list of nodes (issue3299)

  • strip: ignore -n (issue3326) (BC)

  • wix: add phases help text and two more translations (issue3288)

Mercurial 2.1.1 (2012-03-01)

This is a regularly-scheduled bugfix release.

  • bdiff: fix malloc(0) issue in fixws()
  • bugzilla: stop XMLRPC requests from requesting gzipped responses
  • bundlerepo: bundle repos should be non-publishing (issue3266)

  • cmdserver: invalidate the dirstate when running commands (issue3271)

  • context: make workingctx.forget() really warn about untracked files
  • convert: ignore blank lines in mapfiles (issue3286)

  • convert: tolerate spaces between splicemap parent ids (issue3203)

  • convert: use splicemap entries when sorting revisions (issue1748)

  • dirstate: filecacheify _ignore (issue3278)

  • fetch: use update rather than clean when updating (issue3246)

  • forget: show warning messages for forgetting in subrepo correctly
  • graft: use proper revisions for copy detection (issue3265)

  • import: handle git renames and --similarity (issue3187)

  • largefiles: check whether specified patterns are related to largefiles strictly
  • largefiles: don't break filesets
  • largefiles: only cache largefiles in new heads
  • largefiles: use repo.store.createmode for new files in .hg/largefiles
  • localrepo: clear _filecache on rollback (issue3261)

  • localrepo: reset _phasesdirty flag after writing
  • localrepo: use 'changectx.dirs()' in 'status()' for directory patterns
  • log: fix --follow FILE ancestry calculation
  • log: remove caching of all visited revisions (issue3253)

  • log: restore cache used by --copies
  • mdiff: adjust hunk offsets with --ignore-blank-lines (issue3234)

  • mq: fix qapplied --last and qprev documentation (issue3282)

  • mq: fix qnext when all remaining patches are guarded
  • mq: make qimport --push push all imported patches (issue3130)

  • mq: make qprev return the previous applied patch (issue3245)

  • mq: restore _branchtags() fast path (issue3223)

  • patch: fix fuzzing of hunks without previous lines (issue3264)

  • patch: fuzz more aggressively to match patch(1) behaviour
  • pull: backout change to return code
  • scmutil: update cached copy when filecached attribute is assigned (issue3263)

  • setup: handle output from Apple's Xcode 4.3 better (issue3277)

  • subrepo: fix for merge inconsistencies
  • update: delete bookmarks.current when explicitly updating to a rev (issue3276)

  • update: don't move the active bookmark if a rev is specified with -r

Mercurial 2.1 (2012-02-01)

This is a regularly-scheduled feature release. See UpgradeNotes for some minor compatibility notes.

Major features

  • Changesets now have a phase attribute, which tracks what changesets are safe to modify (see Phases)

Core changes

  • annotate: support diff whitespace filtering flags (issue3030)

  • bookmarks: automatically advance bookmark on bare update (BC) (issue2894)

  • bookmarks: shadow divergent bookmarks of foo with foo@n
  • copies: improved copy detection for diff and status
  • hooks: new priority specifier to control ordering
  • id: add command line options for handling ssh and https urls
  • push: propagate --new-branch and --ssh options when pushing subrepos
  • revset: add remote() predicate to lookup remote revisions
  • subrepo: support explicit add and forget of files in subrepos

Extension changes

  • bugzilla: make XMLRPC interface support http and https access
  • largefiles: add --normal option to hg add (issue3061)

  • notify: add option for writing to mbox
  • rebase: add a "D" short option for detach
  • rebase: allow --detach when --rev is used
  • win32mbcs: allow win32mbcs extension to be enabled on cygwin platform
  • mq: add secret phase setting

Bug fixes

  • hgcia: fix diffstat support
  • largefiles: add error checking to tags conversion (issue3092)

  • largefiles: add tests for uncovered codepaths (issue3092)

  • largefiles: check if largefile could be found when archiving (issue3193)

  • largefiles: correctly download new largefiles when merging
  • largefiles: correctly handle dirstate status when rebasing
  • largefiles: correctly handle newly added largefile on other side of merge
  • largefiles: display remote errors from putlfile (issue3123) (issue3149)

  • largefiles: don't reference uninitialized variable (issue3092)

  • largefiles: fix caching largefiles from an aliased repo (issue3212)

  • largefiles: fix confusion upon removal of added largefile (issue3176)

  • largefiles: fix inappropriate locking (issue3182)

  • largefiles: fix output of hg summary (issue3060)

  • largefiles: cache new largefiles for new heads when pulling
  • largefiles: implement addremove (issue3064)

  • largefiles: optimize performance of status on largefiles repos (issue3136)

  • largefiles: optimize status when files are specified (issue3144)

  • largefiles: remove empty directories upon update (issue3202)

  • largefiles: fix addremove when no largefiles are specified
  • largefiles: fix revert on missing largefile (issue3217)

  • largefiles: fix transplant for all cases (issue3192)

  • mail: use quoted-printable for mime encoding to avoid too long lines (issue3075)

  • merge: give a special message for internal:merge failure (issue3105)

  • rebase: reinstate old-style rev spec support for the source and base (issue3181)

  • ssh: quote remote paths (issue2983)

  • sslutil: abort properly if no certificate received for https connection
  • sslutil: show fingerprint when cacerts validation fails
  • status: support revsets with --change
  • subrepo: avoid syncing bookmarks twice on clone (issue3191)

  • tag: invalidate tag cache immediately after adding new tag (issue3210)

  • util: don't encode ':' in url paths
  • bundlerepo: try to find containing repo on creation (issue1812)

  • convert: subversion convert abort on revision not found (issue3205)

  • discovery: fix regression when checking heads for pre 1.4 client (issue3218)

  • merge: defer symlink flag merging to filemerge (issue3200)

  • patch: a little bit more robust line counting on diff --stat (issue3183)

  • push: return 1 if no changes found (issue3228)

  • qpush: avoid trying to manage existing history (issue2218)

  • revsets: include the correct first ancestor change for follow(file)
  • revsets: filesets now work correctly inside of revsets

Mercurial 2.0.2 (2012-01-01)

This is a regularly-scheduled bug-fix release.

  • alias: shortcut command matching so shadowing works properly (issue3104)

  • branch: warn on branching
  • changelog: handle decoding of NULs in extra more carefully (issue3156)

  • convert: improve exception reporting for SVN logstream
  • diff: don't crash when diffing a revision with a deleted subrepo (issue3153)

  • fetch: fix unneeded commit when no merge attempted (issue2847)

  • fetch: patch cornercase in children calculation (issue2773)

  • largefiles: copy files in binary mode (issue3164)

  • largefiles: don't require a user cache (issue3088) (issue3155)

  • largefiles: fix 'hg status' abort after merge
  • largefiles: handle merges between normal files and largefiles (issue3084)

  • merge: check filename case collision between changesets for branch merging
  • pathauditor: switch normcase logic according to case sensitivity of filesystem
  • progress: check for ui.quiet and ui.debugflag before we write
  • rollback: always call destroyed() (regression from 1.9)
  • util: fix url.str() for windows file URLs

  • windows: use upper() instead of lower() or os.path.normcase()

Mercurial 2.0.1 (2011-12-01)

This is a regularly-scheduled bug-fix release.

  • alias: shortcut command matching show shadowing works properly (issue3104)

  • bundlerepo: don't write branch cache to disk
  • clone: don't save user's password in .hg/hgrc (issue3122)

  • convert/bzr: correctly handle divergent nested renames (issue3089)

  • convert/bzr: fix test of divergent nested renames for bzr 1.x
  • convert/svn: fix URL quoting issue with svn 1.7
  • convert: handle trailing slashes in filemap better (issue3124)

  • diff: '\ No newline at end of file' is also not part of the header
  • diff: --ignore-blank-lines was too enthusiastic
  • dirstate: fix case-folding identity for traditional Unix
  • graft: disallow grafting grafted csets in specific situations (issue3091)

  • graft: preserve original source in subsequent grafts
  • hook: flush stdout before redirecting to stderr
  • import: fix parent selection when importing merges
  • largefiles: ensure destination directory exists before findfile links to there
  • largefiles: file storage should be relative to repo, not relative to cwd
  • largefiles: fix 'hg clone . ../foo' OSError abort
  • largefiles: fix rename (issue3093)

  • largefiles: treat status of cache missed largefiles as "missing" correctly
  • largefiles: use "ui.configlist()" to get largefiles.patterns configuration
  • largefiles: write .hg/largefiles/ files atomically
  • makedate: wrong timezone offset if DST rules changed this year (issue2511)

  • mdiff/patch: fix bad hunk handling for unified diffs with zero context
  • posix: add extended support for OS X path folding
  • posix: fix findexe() to check for file type and access
  • rebase: ensure target is not taken as external (issue3085)

  • rebase: treat nullmerge as a special case in rebasestate (issue3046)

  • revset: balance %l or-expressions (issue3129)

  • revset: follow(nosuchfile) should give an empty set (issue3114)

  • subrepo: fix git status false positive (issue3109)

  • subrepo: use correct paths for subrepos with ..-relative paths on windows
  • update: don't clobber untracked files with wrong casing
  • url: handle file://localhost/c:/foo "correctly"

Mercurial 2.0 (2011-11-01)

This is a regularly-scheduled feature release. See UpgradeNotes for some minor compatibility notes.

Major features

  • New core graft command (similar to transplant extension)

  • New largefiles extension

Core changes

  • commit: abort when there are uncommitted subrepos, use the -S option to recurse
  • help: most commands now have usage examples with help -v
  • import: add --edit switch
  • revset: add more keywords for bisection
  • revert: introduce short option -C for --no-backup
  • log: add new 'bisect' style that prints the bisection status
  • hgweb: add a "web/logoimg" setting to customize the web logo image
  • subrepo: pull revisions on demand when archiving hg subrepos

Extension changes

  • color: add styles for tags
  • convert: added bookmarks support in filemap
  • eol: add new eol.fix-trailing-newline setting
  • eol: eol.only-consistent can now be specified in .hgeol
  • export: add %m to file format string (first line of the commit message)
  • mq: make qqueue print current queue name
  • rebase: add --edit switch
  • rebase: add --rev option to rebase
  • rebase: allow rebase on ancestor
  • share: introduce unshare command
  • transplant: add --edit option

Bug fixes

  • alias: don't shadow commands that we only partially matched (issue2993) (BC)

  • commit: suppress spurious new head message for duplicate commit (issue2893)

  • contrib: some support for named branches in zsh_completion (issue2988)

  • progress: add a changedelay to prevent parallel topics from flapping (issue2698)

  • rebase: allow rebase to ancestor (issue3010)

  • rollback: avoid unsafe rollback when not at tip (issue2998)

  • subrepo: fix git branch tracking logic (issue2920)

  • subrepo: fix repo relative path calculation for root directories (issue3033)

  • summary: show bookmarks separate from tags and note active mark (issue2892)

  • util: wrap lines with multi-byte characters correctly (issue2943)

  • verify: filter messages about missing null manifests (issue2900)

  • wireproto: do not call pushkey module directly (issue3041)

  • auth: fix realm handling with Python < 2.4.3 (issue2739)

  • diffstat: be more picky when marking file as 'binary' (issue2816)

  • dirstate: don't fail when dropping a not-tracked file (issue3080)

  • grep: correct handling of matching lines without line ending (issue3050)

  • hgweb: fix dynamic date calculation not working under Safari
  • mq: avoid data loss upon qfold + qmv (issue3058)

  • setup: set whole env for running hg even if .hg doesn't exist (issue3073)

  • windows: recompute flags when committing a merge (issue1802)

  • windows: sanity-check symlink placeholders

Mercurial 1.9.3 (2011-10-01)

This is a regular bugfix release.

  • setup: build inotify for sys.platform='linux*'
  • bundlerepo: add argument check before unlink
  • hgweb: properly check for bookmarks when drawing graph
  • http: handle push of bundles > 2 GB again (issue3017)

  • keyword: preserve file mode when overwriting
  • osutil: avoid accidentally destroying the True object in isgui (issue2937)

  • patch: correctly handle non-tabular Subject: line
  • patch: handle 'gitpatches' being empty, but not none
  • record: use command wrapper properly for qnew/qrefresh (issue3001)

  • setdiscovery: fix hang when #heads>200 (issue2971)

  • ui: also swap sys.stdout with self.fout in _readline
  • ui: write traceback to self.ferr
  • url: Remove the proxy env variables only when needed (issue2451)

  • url: parse fragments first (issue2997)

  • util: fix crash converting an invalid future date to string
  • util: wrap lines with multi-byte characters correctly (issue2943)

  • win32: quietly ignore missing CreateHardLinkA for Wine

Mercurial 1.9.2 (2011-08-26)

This is a regular bugfix release (slightly early due to travel plans).

  • commands: clarify that 'hg heads foo' shows heads on branch foo
  • dispatch: don't rewrap aliases that have the same definition
  • graphlog: attempt to fix index overrun (issue2912)

  • http: pass user to readauthforuri() (fix 4a43e23b8c55)
  • http: strip credentials from urllib2 manager URIs (issue2885)

  • parsers: avoid pointer aliasing
  • subrepo: fix cloning of repos from urls without slash after host (issue2970)

  • ui: pass ' ' to raw_input when prompting
  • url: really handle urls of the form file:///c:/foo/bar/ correctly

  • win32: msvcr71.dll should be used for python 2.4 and 2.5

Mercurial 1.9.1 (2011-08-01)

This is a regular bugfix release. It fixes several regressions introduced in 1.9. The hgweb server now disables MIME type guessing by default to avoid a potential cross-site scripting issue when hosting untrusted repositories (issue2923). See UpgradeNotes for more info.

  • dispatch: make sure global options on the command line take precedence
  • eol: ignore IOError from deleted files in commitctx
  • hgcia: set default value of strip to -1 (issue2891)

  • hgweb: do not ignore [auth] if url has a username (issue2822)

  • hgweb: handle 'baseurl' configurations with leading slash (issue2934)

  • hgweb: raw file mimetype guessing configurable, off by default (BC) (issue2923)

  • httpclient: import ca33b88d143c from py-nonblocking-http (issue2932)

  • patch: fix parsing patch files containing CRs not followed by LFs
  • rebase: block collapse with keepbranches on multiple named branches (issue2112)

  • rebase: reset bookmarks (issue2265 and issue2873)

  • revert: restore check for uncommitted merge (issue2915) (BC)

  • revsets: catch type error on tip^p1(tip) (issue2884)

  • revsets: do the right thing with x^:y (issue2884)

  • subrepo: handle adding svn subrepo with a svn:external file in it (issue2931)

  • subrepo: use working copy of .hgsub to filter status (issue2901)

  • url: store and assume the query part of an url is in escaped form (issue2921)

  • util: rename the util.localpath that uses url to urllocalpath (issue2875)

  • verify: filter messages about missing null manifests (issue2900)

  • web: output a correct date in short format (issue2902)

  • win32: assign winstdout to sys.stdout as well (issue2888)

Mercurial 1.9 (2011-07-01)

This is a regular feature release. See UpgradeNotes for some minor compatibility notes.

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

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

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

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

Bug fixes

  • bookmarks: allow create/move bookmark without

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)

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

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)

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)

Mercurial 1.8 (2011-03-01)

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

Subrepos

  • New support for git subrepos
  • Various improvements to merge, update, and commit logic

Windows

  • Numerous robustness improvements for quirks in Windows file handling
  • Now uses the native ctypes module rather than PyWin32

Extensions

  • eol: filter aliases for compatibility with win32text
  • mq: --exact option for qpush

  • mq: various robustness improvements
  • progress: remaining time estimates

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

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

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)

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

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)

Mercurial 1.7 (2010-11-01)

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)

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)

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)

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

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)

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

contrib

  • mergetools.hgrc: add vimdiff
  • zsh completion: support bookmarks and patchbomb extensions
  • zsh completion: add qpush --move option

Windows

  • 64-bit Inno Setup installer
  • handle spaces in path to Python (issue2074)

Mercurial 1.6.4 (2010-10-01)

This is a monthly bugfix release.

  • archive: set date to 1980 for very old zip files
  • bookmarks: fix _bookmarks/lookup() reentrancy issue (issue2016)

  • color: add win32 support for non-black background
  • context: fix filectx.undelete() (issue2388)

  • convert/darcs: handle non-ASCII metadata in darcs changelog (issue2354)

  • convert/svn: fix broken symlink renames in svn sink
  • core: use lexists() instead of exists() where appropriate
  • hgweb: Fix memory leak when using hg commands over http repositories
  • hgweb: correct Content-Type header values for archive downloads
  • log: include unmodified-in-merge files in log diff/stat (issue2383)

  • mq: always require --force when pushing patches (issue2363)

  • patch: do not overwrite broken untracked symlinks
  • patch: fix rename text to binary file (issue2400)

  • patch: fix target when patching broken symlinks (issue2368)

  • patch: upgrade to git patch when removing binary file
  • rename: do not overwrite existing broken symlinks
  • url: verify correctness of https server certificates (issue2407)

  • util: avoid using hashlib on Python < 2.5 (issue2278)

  • verify: fix "missing revlog!" errors for revlog format v0 and add test
  • win32: add Emacs scripts to Inno Setup installer
  • win32: add hgweb scripts to Inno Setup installer

Mercurial 1.6.3 (2010-08-26)

This is a monthly bugfix release. It includes several significant fixes, including a fix for a long-standing hardlink corruption issue on Windows (issue761).

  • alias: make shadowing behavior more consistent (issue2054)

  • bisect: better message for unrelated starting revisions
  • bookmarks: Check if the bookmark to delete exists on the remote
  • bookmarks: guard against listing bookmarks on unsupported repos
  • chunkbuffer: use += rather than cStringIO to reduce memory footprint
  • convert: Using --dest-type svn crashed, if the source repo used tags.
  • convert: properly set encoding for gnuarch converter
  • convert: use encoding.encoding instead of locale.getpreferredencoding()
  • encoding: improve handling of buggy getpreferredencoding() on Mac OS X
  • graphlog: mark --branch as incompatible with --graph
  • http basic auth: reset redirect counter on new requests (issue2255)

  • httprepo: decompress stream incrementally to reduce memory usage
  • log: fix the bug 'hg log --stat -p == hg log --stat'
  • mercurial.spec: gettext is a build requirement for getting proper localization
  • merge: drop reference to file contents after write
  • merge: move reverse-merge logic out of filemerge (issue2342)

  • merge: fix detection of conflict markers with checkconflicts enabled
  • mq: don't inherit default and default-push paths with --mq (issue2333)

  • resolve: updated help documentation for improved clarity
  • revlog: drop cache after use to save memory footprint
  • templatefilters: unnest uescape()
  • templates: add filenolink to raw style (issue2332)

  • url: expand vars in all [auth] settings (issue2328)

  • url: limit expansion to safe auth keys (Issue2328)

  • util: avoid using hashlib on Python < 2.5 (issue2278)

  • verify: initialize rp variable in case we hit out of memory
  • verify: reduce memory footprint when unpacking files
  • verify: report exceptions that don't have a str() method
  • win32: correctly break hardlinks on network drives (issue761)

Mercurial 1.6.2 (2010-08-02)

This release addresses a regression in the color extension.

  • color: pass write/write_err to win32print correctly (issue2312)

  • convert/progress: use plural and avoid retrieving
  • color: call correct superclass method in write_err

Mercurial 1.6.1 (2010-08-01)

This is a scheduled monthly minor bugfix release.

  • alias: ensure checksignature() is applied directly to the command (issue2286)

  • bash/zsh completion: use HGPLAIN when invoking hg (issue2297)

  • bookmarks: don't allow name to contain whitespaces only
  • bookmarks: ensure current bookmark is updated when specified with -r .
  • bundle: lookup revisions after addbranchrevs
  • color/progress: subclass ui instead of using wrapfunction (issue2096)

  • commit: only warn when reopening the workdir's branch
  • dispatch: give better error message when cwd doesn't exist (issue2293)

  • doc: make sure we use our own code for generating man pages
  • filelog: cmp: don't read data if hashes are identical (issue2273)

  • filelog: test behaviour for data starting with "\1\n"
  • hg.clone: fix branch value when passing a repo object (issue2267)

  • hgweb.wsgi: add a URL to the corresponding wiki documentation
  • hgwebdir: allow pure relative globs in paths
  • hgwebdir: use template paths configured in the hgrc (issue2281)

  • init: create target directory recursively
  • inotify: check all components of filenames against hgignore (issue884)

  • keyword: move collecting of [keyword] patterns to reposetup (issue2303)

  • log: fix missing diff output for hg log -p in subdirectory
  • log: follow filenames through renames (issue647)

  • mail: ensure that Python2.4 to 2.7 use the same header format
  • mercurial.spec: rename docutils to python-docutils in BuildRequires

  • mq: clarify the fact that qimport is trying to read a file
  • mq: cleanup status if applied mq is stripped (issue1881)

  • mq: fixed ENOENT when qrename to new/directory.patch
  • mq: reset self.added after the mq transaction instead of inside qimport
  • qpush --move: move the right patch even with comment lines
  • rebase: re-add patches to mq repo after rebase
  • revert: rename original to .orig instead of copying (issue2282)

  • revset: fix ancestor subset handling (issue2298)

  • runrst: try to be more helpful if docutils is not installed
  • tag: do not allow tag names to consist solely of whitespace (issue2307)

  • transplant: crash if repo.commit() finds nothing to commit

Mercurial 1.6 (2010-07-01)

(This release makes a couple small behavior changes, be sure to read UpgradeNotes!)

Core

  • addremove: optimize addremove -s100 by matching files by their SHA1 hashes

  • archive: auto-detect archive type by extension (issue2058)

  • commit: more friendly handling of new and closed named branches
  • hooks: provide pre- and post- hooks with parsed command line arguments
  • log: add --branch for filtering on named branch

  • log: add --stat for diffstat output

  • push: add --new-branch option to allow initial push of new branches

  • push: break infinite http recursion bug with Python 2.6.5 (issue2179)

  • rollback: add -n/--dry-run flag, report what's being rolled back

  • subrepo: various fixes
  • summary: report copies and renames and add subrepo status
  • tag: add -e/--edit option for modifying the commit message

  • revsets: introduce a powerful query language for specifying revisions, see the manpage or hg help revsets

Hgweb

  • unify and simplify hgweb.cgi and hgwebdir.cgi scripts

  • fix race in refreshing repo list (issue2188)

  • simplify hgweb.cgi, add help pointer

  • deliver shell hook output to client
  • allow --port=0 to specify "choose free port number automatically"

  • improved templater performance

Help

  • add new hgweb, glossary, and revsets topics
  • numerous improvements to help text

Extensions

  • acl: support for access control base on branches and user-defined or OS-level groups
  • acl: added support for pretxncommit, so that one can call the ACL hook at (?)

  • bookmarks: add support for pushing and pulling bookmarks
  • churn: add possibility to include/exclude paths
  • color: add support for Windows consoles
  • color: colorize based on output labels instead of parsing output
  • extdiff: add labels, read diff arguments from [merge-tools]

  • keyword: offer svn-like default keywordmaps
  • keyword: support (q)record
  • mq: add a line to hg summary
  • mq: qpush --move, reorder patch series and apply only the patch

  • progress: progress support for many more commands
  • rebase: add option to not commit after a collapsing

1.5.4 (2010-06-01)

This is a scheduled monthly minor bugfix release.

  • dispatch: include Python version in traceback
  • push: update help
  • status: avoid performance regression when no .hgsub is present
  • clone: fix performance issue with hardlinks and Windows shares
  • hgweb: fix race in refreshing repo list (issue2188)

  • hgrc: clarify that hgrc keys can be overridden and sections can be split
  • eol: new extension for managing file newlines based on a version controlled configuration file

  • pager: fork and exec pager as parent process with /bin/sh -c
  • rebase: stress that only local changesets should be rebased
  • convert/svn: close gettags() log stream (issue2196)

  • record: check that we are not committing a merge before patch selection

1.5.3 (2010-05-13)

This is an unscheduled bugfix release to fix issue2181 (commit generates traceback on Nonetype). Also included:

  • various improvements to SVN conversion support
  • minor doc improvements

1.5.2 (2010-05-01)

This is a monthly bugfix release with numerous minor fixes including:

Core

  • clone: fix URL too long problem with many heads
  • commands: revised documentation of 'default' and 'default-push'
  • copies: properly visit file context ancestors on working file contexts
  • diffstat: use ui.plain() instead of ui.interactive()
  • dirstate: fix in memory dirstate entries for 1-second race
  • dispatch: don't mangle ImportError abort messages

  • filemerge: use working dir parent as ancestor for backward wdir merge
  • hgrc.5: describe form of config values and mention lists as well
  • hgweb: fix attribute error in error response (issue2060)

  • log: document the new xml style
  • merge: correctly compute the flag for noexec filesystems
  • patch: don't look for headers in diff lines
  • push: fix bug in warning message selection
  • revlog: fix lazyparser.iter() to return all revisions (issue2137)

  • static-http: allow clone -r (issue2164)

  • subrepo: fix repo root path handling in svn subrepo
  • subrepo: propagate and catch push failures
  • templates: document missing template variables
  • util: fix default termwidth() under Windows
  • util: use an explicit prefix for checkexec/checklink temporary files

Extensions

  • convert/cvs: skip bad tags
  • convert/git: check status when reading output stream
  • convert/subversion: fix default URL checker prototype
  • mq: rewrite strip docstrings
  • mq: use util.unlink instead of os.unlink and os.removedirs
  • schemes: fix // breakage with Python 2.6.5 (issue2111)

1.5.1 (2010-04-01)

Core

  • improve warning on adding large files
  • expand ~ in auth filenames and aliases
  • several improvements to patch parsing
  • warn about attempts to use hg branch to switch branches
  • push: fix bug in prepush logic and its tests
  • hgweb: fix broken URLs of RSS/Atom feeds
  • subrepo: several bug fixes

Extensions

  • acl: added support for '*' (everyone) in user list
  • progress: use stderr instead of stdout
  • schemes: add Kiln On Demand to default schemes

1.5 (2010-03-06)

(This release makes a number of small behavior changes, be sure to read UpgradeNotes!)

Core

  • improved behavior for named branches with heads command

  • new XML output template for logs
  • import extract multiple patches from emails, mboxes, files, and URLs

  • new patch.eol=auto option to ignore patch line-endings while preserving target file endings.

  • new -b/--branch option for clone, bundle, incoming, outgoing, pull, and push

  • new server.validate option to validate completeness of pushed changesets

  • subrepos now has basic Subversion support
  • support for SSL server certificates and improved IPv6 support
  • the HGPLAIN environment variable makes output more stable for scripts

Extensions

  • new progress bar extension

  • mq: new --mq option to make regular commands operate on queue repository

  • mq: automatically upgrade conventional patches to git format where needed
  • color: add support for bookmarks, resolve -l, and churn --diffstat

  • convert: two CVS history editing hooks
  • win32mbcs: add configuration to specify path encoding
  • zeroconf: many bug fixes
  • rebase: new --detach option for rebase

Web Interface

  • improve navigation on log and graph pages
  • support for pluggable authorization
  • raw templates for tags/branches pages
  • add wsgi script for Microsoft IIS with isapi-wsgi

Windows

  • add WiX installer scripts to contrib/wix
  • handle configuration files in <install-dir>\hgrc.d

  • expand environment variables specified in merge tools paths

Help and Documentation

  • greatly improve error messages and command documentation
  • support extended documentation with --verbose
  • provide help for disabled extensions and commands

1.4.3 (2010-02-01)

This is a scheduled bugfix release.

  • Mercurial license has changed from GPLv2 to GPLv2+
  • speed up copy detection in merge, status, and diff
  • templates: fix relative path expansion on style setting
  • merge: fix merging of already-merged subrepos
  • summary: fix i18n issue reporting clean working directories
  • hgweb: improve IIS PATH_INFO handling
  • relink: Windows support

1.4.2 (2010-01-01)

This is a minor bugfix release.

core

  • config: raise ConfigError on non-existing include files

  • alias: do not crash when aliased command has no usage help text
  • auth: allow specifying auth sections in .hg/hgrc
  • patch: fix handling of chunk offsets
  • subrepo: add default path to new clones
  • docs: Fix rst2html detection

extensions

  • convert/svn: better handling of hg recursive call failure
  • convert/svn: make sink recover gracefully from empty changeset
  • keyword: fix interaction with transplant
  • mq: preserve --git flag when folding and merging patches
  • mq: qnew -f rejects merge working directories
  • mq: qpop: remove added files before re-adding removed files
  • patchbomb: handle repository#rev URLs correctly
  • share: use defaultdest to compute unspecified destination

1.4.1 (2009-12-01)

regression fixes

  • fix to prepush logic when it creates new heads
  • fix qseries truncation

other

  • doc fixes: formatting, missing options
  • tests fixes (now less dependent on environment variables)
  • inotify fixes
  • keyword: allow RCSfile like CVS
  • share: fix a bad interaction with clone
  • show non-default branch names with summary -q
  • new schemes extension

  • i18n updates

1.4 (2009-11-16)

core

  • summary: new command summarizes current working state
  • tags: new tag cache greatly speeds up tag operations
  • diff: new --stat option to show diffstat

  • diff: add --reverse option to diff

  • subrepo: fix a bunch of issues with the experimental subrepo extension
  • status: fixes for behavior when working with clock skew
  • clone: new -u/--updaterev option

  • templater: new latesttag and latesttagdistance keywords

  • push/pull: handle some broken pipe errors during large transfers
  • config: environment variables and ~user constructs are expanded in pathnames

hgweb

  • fix for showing header lines in raw changeset diffs
  • try to send better error messages to the client
  • use config-supplied ordering by default in hgwebdir index pages
  • add web.descend option to disable showing all nested repositories in hgwebdir

documentation and help

  • new config help topic
  • help texts are now written in reStructuredText format

  • many translation updates including a new Swedish translation
  • many help text updates and improvements

extensions

  • mq: add -1 options to qapplied/qunapplied

  • patchbomb: add a --flag option to set a flag value in the Subject header

  • patchbomb: correctly handle Unicode domains (using the IDNA encoding scheme)
  • color: improve colorization of the qseries command
  • inotify: cleaner code, fixed pattern handling
  • zeroconf: show repository descriptions
  • rebase: some performance and correctness fixes
  • extdiff: add 3-way diff for merge changesets
  • convert: handle directory renaming in Darcs, fixed file renaming
  • relink: new extension which helps people re-hardlink their clones

other

  • contrib/shrink-revlog.py script that can significantly shrink some internal hg files
  • work around non-standard locale settings on OS X

Version 1.3.1 - 2009-07-23

Regression fixes:

  • fixed excessive memory usage issues with diff and strip
  • fixed ssh performance issue on OS X
  • fixed slow calculation of branch heads
  • fixed handling of port numbers in URLs
  • fixed transaction handling exception
  • fixed incoming with graphlog extension
  • fixed slow commit in fetch extension
  • fixed loading of win32mbcs extension

Other fixes:

  • fixed http username handling in acl extension
  • fixed subrepo path joining on Windows
  • allow update --check to cross branches
  • miscellaneous small doc and bug fixes

Version 1.3 - 2009-07-01

Major Changes

  • experimental support for sub-repositories

  • Python 2.3 is no longer supported; now requires Python 2.4-2.6

Commands

  • merge: add -P/--preview option
  • update: don't unlink added files when -C/--clean is specified
  • update: added -c/--check option to abort on local changes
  • update: allow merges going backwards
  • push: improved handling of named branches
  • branches/heads: add a -c/--closed option to show closed branches
  • help: new extensions topic

General

  • add patch.eol config setting to work with cross-platform patches
  • fixed support for SSL through proxies
  • add ability to load hooks from arbitrary Python modules
  • hide passwords for HTTP repositories in error and log output
  • fix Python 2.6 support in the Windows installer
  • add mechanism for specifying HTTP authentication details in hgrc
  • prompts and choices are now shown even in non-interactive mode
  • performance improvements, especially on Windows
  • much improved zsh completion
  • improved Danish, Japanese, Italian and simplified Chinese translations
  • new German, French, Greek, Brazilian Portuguese and traditional Chinese translations

Web interface

  • read configuration data from webdir configs
  • add branches page to hgweb
  • pluggable templater engine support
  • refresh hgwebdir configuration periodically
  • let web.encoding override ui.encoding setting
  • deal with dicts/lists like webdir config paths

Extensions

  • experimental share extension

  • the alias extension has been moved into core
  • mq
    • add -P/--push option to qimport
    • numerous bug fixes
  • convert
    • improved source detection
    • support for comments in author maps
    • add branch map support
    • add different ordering options
    • svn: support OS-specific authn providers
    • svn: improved tag support
    • git: add committer tag only when needed
    • bzr: fix renaming support
    • bzr: add support for filemaps
    • bzr: handle timestamps correctly
    • bzr: fix symlink handling
    • bzr: restore paths to source encoding
    • cvs: add support for CVS merge(point)s
    • cvs: add support for synthetic revisions
    • cvs: better support for branchpoints
    • cvs: deprecate use of external cvsps
    • mtn: improve renaming support
    • mtn: support mtn database files as source
    • mtn: improve date/time support
    • p4: better handling of keywords, binary files and symlinks
  • rebase
    • don't lose copy/rename info
    • keep original mq patch format
  • zeroconf
    • advertise repositories by hostname
    • try to guess IP address if necessary
  • patchbomb
    • option to set attachment name
    • support for In-Reply-To header
  • inotify
    • fix handling of untracked files moved out of repository
    • fix support for directory deletion
  • acl: now works with push over https

Version 1.2.1 - 2009-03-20

This is a bugfix release.

  • fixed version number build from tarball
  • fix allow_read logic for hgweb
  • improve handling of damaged revlogs in verify
  • keep .orig files when resolving
  • clear resolve state properly when rebasing
  • improve --command handling with bisect
  • fix diff against bundles
  • improve fetch logic for inactive branches
  • fix diffstat with notify
  • fix 'synthetic file adds' in CVS conversion

Version 1.2 - 2009-03-04

This is a larger feature release.

General features:

  • explicit closing of named branches via hg commit --close-branch
  • hg now accepts options given after arguments on the commandline
  • added translation support with initial Danish, Chinese, Japanese, and Italian translations
  • added optional pure-Python versions of C modules
  • pending changesets can now be accessed safely from hooks
  • diff: added -c option to show single changeset
  • many improvements to the documentation and online help topics

Extensions:

  • convert:
    • new support for perforce sources
    • improvements to handling cvs sources
    • improvements to handling gnu arch source
    • improvements to handling darcs sources
  • bookmarks:
    • set current to new when current is renamed
    • bookmarks: Add track.current option
    • bookmarks: add bookmarks to tags
  • mq: allow qpop when it won't invalidate any dirstate parents
  • patchbomb: respect diff settings
  • rebase: pull --rebase updates if there is nothing to rebase
  • bugzilla: updated to work with Bugzilla 3.2
  • zeroconf: added more documentation
  • hgk: add several color settings
  • the imerge extension has been removed (obsoleted by the resolve command)

Version 1.1.2 - 2008-12-31

This is a minor release including one security fix and two minor bug fixes

  • improve path auditing (issue 1450)

  • fix date-related test failures in test suite
  • add graph controls to monoblue theme

Version 1.1.1 - 2008-12-20

This is a bugfix release

  • make hgweb recursion optional (use '**' rather than '*')
  • fix fncache bug for directories ending in ' ' or '.'
  • require -a switch to resolve all files
  • improve help for resolve command
  • fix inotify interaction with bundle diffs
  • fix strange readline import error on Windows
  • fix non-existing target directory with git diffs
  • fix removing symlinks with git diffs
  • fix directory creation bug in patch
  • rebase: allow keeping branch names
  • fix a copy bug in the SVN converter

Version 1.1 - 2008-12-2

This is a larger feature release.

General:

  • Added 'resolve' command for better tracking of in-progress merges
  • Several speedups for status and diff commands (especially on Windows)
  • Some modules have been rewritten in C for greater speed
  • Compatibility with Python 2.6
  • Improved correctness in the face of casefolding filesystems
  • Fixed a possible race condition in pull
  • Fix support for context-size diff settings
  • Fixed several crashes on Windows related to code freezing
  • Don't complain when trying to load extensions twice
  • Allow C extensions to compile on Haiku
  • Allow for committing in-memory file contents
  • New repository format which limits path lengths in the store
  • Unclutter commands list by extracting extension commands into separate lists
  • static-http support is now a fallback for the general http support
  • Add some buffering to the templater
  • Better documentation on git diffs

Web interface:

  • Add a canvas-based repository graph
  • New and improved hgweb themes: paper, coal and monoblue
  • paper is now the new default style; the old default is now called 'spartan'
  • Better WSGI compliance
  • Collections now show nested repos (best used without a checkout)
  • diffs are more sensible, follow diff.git settings
  • Full author name available in annotate templates
  • Make it easier to add template paths in extensions
  • Support for allow_read/deny_read access controls
  • Working diff and file log for removed files
  • Better alternative for repository collections
  • Corrected feed link in gitweb theme
  • Fix a bug with CGIs running under IIS

Commands:

  • commit: print the revision ID when invoked with --verbose
  • resolve: new command to help keep track of merges
  • merge: only implicitly select same-branch heads
  • export: append instead of overwrite when exporting multiple changesets
  • bundle: added support for different compression types
  • rollback: clean up empty files
  • help: several more sections from the manual are available through hg help now
  • bisect: better documentation, give better feedback, option for scripted testing
  • branch: allow for resetting current branch name
  • patch: add a --similarity option to do rename/copy detection
  • tag: without a checkout, use tip as the tagging revision's parent
  • log: allow searching by user (with -u)
  • import: importing from URL now works with http authentication
  • unbundle: importing from URL now works
  • pull: with -u, still update if there's only one head on the current branch
  • diff: fix a problem with the --showfunc option

Extensions:

  • rebase: new extension to support rebasing changesets
  • bookmarks: new extension to provide (local-only) git-like branches
  • zeroconf: new extension to support publishing repositories through Zeroconf/Bonjour
  • hgcia: new extension to facilitate communication with CIA

  • mq:
    • qfinish: added command for conversion of patches into changesets
    • qpush/qgoto: gracefully abort when encountering guards
    • qrefresh: don't lose work when interrupted
    • qimport: allow for importing patches from URLs
    • qnew: abort early if patch already exists, be more careful in general
    • qdiff: now supports all diff options
    • qfold: more tolerance of file removals, better handling of commit messages
    • import: prevent import from working when patches are applied
  • convert:
    • added support for conversion from bzr repositories
    • incorporate an improved Python version of cvsps, replacing the external cvsps tool (see upgrade notes)
    • compatibility with recent git releases
    • add an option to start from an arbitrary revision
    • correctly encode characters in Subversion repository URLs
    • better, more tolerant tags detection
  • highlight:
    • remove need to pre-generate CSS stylesheet
    • compatibility with older Pygments versions
    • make the lexer guessing faster by not reading all of the file
    • allow demandimport to load it incrementally
  • fetch: improve support for named branches
  • graphlog:
    • now adds --graph options to log, incoming and outgoing
    • fix calls from outside the repository
  • inotify:
    • many bugfixes, should work much better
    • daemon is automatically started by default
  • color:
    • add colorization of diffs
    • add --color options to many commands
  • keywords: be more careful about expanding binary files
  • bugzilla: added support for Bugzilla 3.0
  • pager: allow per-command configuration
  • hgk: display branch names for revisions
  • churn: support for templated statistics report generation
  • patchbomb: charset encoding can now be configured
  • notify: charset encoding can now be configured

Version 1.0.2 - 2008-08-13

This is a relatively small bugfix release with two security fixes.

Security:

  • ensure that git patches only touch files within the repository (CVE-2008-2942)

  • hgweb: fix "allowpull" permission being ignored when pulling from hgweb

General:

  • commit: handle copies of previously deleted files (issue 1175)

  • bisect: allow for having multiple resulting changesets
  • fix Python 2.3 compatibility
  • make mq patches and .hgtags hardlink-safe again
  • various documentation improvements and fixes
  • fix a crash when addremove was called to replace a deleted directory with a symlink
  • make branches output easier to parse (issue 1230)

  • fix inactive branches detection (issue 1104)

  • hgweb: fix a crash in archive when the URL did not end in an expected archive type
  • sshserver: fix a crash in error handling code
  • fix the patchbomb extension on Windows by including email package in binary installations
  • handle symlinks when OS supports them but FS doesn't (issue 1149)

Extensions:

  • mq:
    • fix qrefresh losing metadata on the last refreshed file (issue 1134)

    • fix a crash when renaming a patch just after a versioned queue initialization
    • fix the path of an explicitly specified queue when merging patches
    • strip now updates the working directory only if a parent was stripped
  • convert:
    • CVS: fix a crash when converting an existing working copy
    • monotone: fix quotes and backslashes parsing when reading commit messages
    • Subversion: correctly normalize paths and slashes
    • Subversion: fix compatibility with Subversion 1.5
    • git: allow converter to work with recent git releases
  • color:
    • get coloring for qseries --verbose output
    • improve mq extension detection
    • reset coloring before and after outputting colorized lines
  • highlight: fix a performance issue when detecting file types from large files
  • notify: take the diff options into account

Version 1.0.1 - 2008-05-22

This is a relatively small bugfix release.

General:

  • several improvements in file copying implementation
  • allow different default value for diff.unified option
  • allow explicit use of internal merge tools

Commands:

  • rename: doesn't unlink source file with --after
  • backout: reverse changeset belongs on current branch

Extensions:

  • convert:
    • svn: improved detection of tags (has also become optional)
    • svn: improved branch handling
    • svn: better detection of file copies
  • mq:
    • expand terse command help texts
    • fix unimplemented qdiff -U option
  • highlight: fix compatibility with older Pygments (0.5.1)
  • churn: allow whitespaces as delimiter in aliases
  • pager: disable when used with --debugger

Version 1.0 - 2008-03-24

General:

  • greatly improved merge tool configuration, see "hgrc.5.txt" for details

  • improved copy/rename handling in diffs, status, and merge
  • files in .hg inherit permissions from .hg/store
  • infer --repository when possible, so commands may be run from anywhere.
  • easy-installable
  • new "droplet" logo

Commands:

  • archive: disable ".hg_archival.txt" file addition with "ui.archivemeta"
  • bisect: now built-in with greatly improved performance and usability
  • bundle: new --all option to bundle the whole repository more easily.
  • cat: apply decode filters with --decode
  • clone: can clone from a full-history bundle
  • commit: warn when creating a new head
  • debugancestor: index argument is now optional
  • diff: set the number of context line to show with -U/--unified
  • grep: display matched revisions commit date with --date
  • import: new --no-commit and --user options
  • incoming/outgoing: add --limit option
  • log: use -b/--only-branch to show revisions of a single branch
  • remove: improve handling for --after
  • revert: major speedup
  • serve: prefix the served path with --prefix (also in [web] section)
  • status: unknown files are skipped by --quiet
  • tag: allow multiple tags to be added or removed
  • tags: --verbose flags local tags
  • update: switch between named branches without -C

Extensions:

  • churn: promoted to an official extension (previously in contrib)
  • color: new extension coloring "status" and "qseries" command outputs
  • convert:
    • allow synthetic history to be spliced in with --splicemap
    • support GNU Arch and Monotone sources
    • svn: allow shallow conversions of single branches with convert.svn.startrev option.
    • svn: make trunk/branches/tags layout detection more flexible by allowing either of them to be skipped.
    • svn: preliminary support as a conversion target
  • hgk: configuration file changed from .gitk to .hgk
  • highlight: new extension enabling syntax highlighting in hgweb file view (requires pygments)
  • inotify: new extension using Linux 2.6 inotify API for instant status checking
  • keyword: new extension for filewise RCS-keyword expansion in working directory
  • mq: new --currentdate, --date, --currentuser, and --user options
  • record: add "qrecord" command when used with mq
  • win32mbcs: new extension dealing with problematic MBCS behavior on Windows

Web interface:

  • improved WSGI integration and compatibility
  • follow symlinks in hgwebdir collections
  • show branches in most of gitweb templates
  • add line anchors to annotate, changeset, diff and file views
  • support web.baseurl in hgwebdir, overriding SCRIPT_NAME

Hooks:

  • standard hook to reject text files with CRLF in win32text extension
  • redirect stdout to stderr for ssh and http servers

Windows support:

  • "hg" script output set to binary mode for redirecting diff, export, annotate, etc.
  • also search for .hgrc if mercurial.ini cannot be found
  • major speedup of "clone --pull"

Version 0.9.5 - 2007-10-19

New features:

  • Handle symlinks on systems without symlink support
  • hg archive supports symlinks
  • Display executable/symlink bit with "hg manifest -v" (see UpgradeNotes)

  • Improved hg verify diagostics
  • Faster revlog handling
  • Faster handling of large directories
  • Greatly improved handling of large files
  • Atom syndication support in hgweb
  • Improved test suite with parallel execution

Fixes:

  • Fixes for some file copy and rename corner cases
  • Allow moving newly-added files before commit
  • Improve hg diff whitespace handling
  • Disallow fast-forward merge with an ancestor
  • Fix adding untracked files on directory renames
  • Fix hg archive %r format specifier
  • Fix re: and glob: patterns in .hgignore
  • Improve hg executable path resolution
  • Many options and hgrc parsing improvements
  • Better handling of VFAT filesystems on Linux
  • Fix tgz archival on Windows
  • Fix hg serve on Windows requiring pywin32 modules
  • Fix --profile under Windows

New extensions:

  • alias - allow user-defined command aliases
  • children - show the children of the given or working dir revision
  • imerge - incremental interactive merging
  • interhg - modify changelog text as in InterWiki

  • record - darcs-style interactive change selection during commit

New extension features:

  • convert
    • Now supports Subversion, Darcs and Mercurial as source SCMs
    • Use clone's behaviour for the default destination name
    • Force encoding to UTF-8 for converted repository
    • Support new-style .cvspass file format
    • Filter the files and directories to import
    • Remap paths to new locations during import
  • hgk
    • Fix hgk stopping because of untrusted repository warnings
    • Handle filenames with spaces
    • Improved documentation
  • mq
    • Autodetect --git patches on qrefresh

Version 0.9.4 - 2007-06-25

New features:

  • support for symlinks
  • improved tag handling
  • improved merge handling of file and directory renames
  • improved named branch usability
  • numerous improvements to commands
  • generic pre- and post-command hooks
  • improved Windows support
  • basic BeOS and OpenVMS support
  • numerous bug fixes

New extensions and contributions:

  • extensions can now be specified in .hg/hgrc
  • new convert extension with CVS support
  • new graphlog extension
  • improved patchbomb extension
  • example FastCGI script

Version 0.9.3 - 2006-12-17

Bug fixes:

  • fix a merge copy/rename corner case
  • fix spurious new heads message with push -r
  • fix hg export %n sequence numbers
  • fix shell quoting on Windows
  • fix charset encoding for hgwebdir and obfuscated addresses
  • fix missing generated files for distribution tarball
  • fix convert-repo tag updates and transcoding of committer
  • add instructions for redoing failed merges

Documentation fixes:

  • hg cat, manifest, and tag default to current parent revision.
  • CGI stub comments clarified
  • corrected synopses for many commands
  • improve doc building and distribution
  • convert-repo: update usage information

Extension fixes:

  • mq: fix strip on Windows
  • mq: fix some guards corner cases
  • gpg: make 'hg sign' default to current parent

Version 0.9.2 - 2006-12-10

New features:

  • merge now follows renames and copies
  • new layout protects against case-insensitivity issues
  • new branch and branches commands for managing named branches
  • push command accepts -r for pushing specified heads or named branches
  • proper storage of changelog and other metadata in UTF-8
  • log, annotate and grep --follow follow renames and copies

  • date parsing is improved and log, update, and revert now accept --date ranges
  • additional command options for log, status, addremove
  • improved schema for hgweb URLs
  • bundle can now use -r and --base removing the need of an base repository

  • support for git-style extended patches with --git option
  • new debuginstall command to check for common installation issues

New contributions and extensions:

  • mq
    • support for quilt-style guards
    • can import existing changesets into mq (qimport -r) or commit mq patches as regular changesets (qdel -r)

    • edit the log message with qrefresh -e

    • rename patches with qrename

    • qheader to display the patch header of particular patches, and --summary for qseries, qapplied, qunapplied and qtop

    • combine patches with qfold

    • qrefresh supports pattern options to import only a subset of the changes into a patch, to help split changes into multiple patches
    • patch names for applied patches act like local tags, and can be used in the revision arguments of any hg command
  • hgk
    • browse a subset of the entire history with --limit and revision range arguments

    • shows revision numbers as well as node hashes
  • churn: graph lines of code changed per user over a range of history
  • patchbomb: generate inline attachments with -a

Behavior changes:

  • hg cat defaults to the working directory revision rather than tip
  • hg manifest no longer shows internal file revision hashes by default
  • hg revert now requires the -a flag to revert all files

Developer notes:

  • new high-level API functions in the hg module

  • new context API simplifies many operations
  • The changelog can now include arbitrary metadata in key: value form

Version 0.9.1 - 2006-07-24

These are the major changes between Mercurial 0.9 and 0.9.1:

  • New features:
    • You can now configure your hgweb server to let remote users push changes over http.

    • You can now import a patch in a mail message by saving the mail message, and importing it. This works for patches sent either inline or as attachments.

    • The diff command now accepts -rA:B syntax as a synonym for -r A -r B, and adds -b and -B options.

  • New contributions and extensions:
    • The acl extension lets you lock down parts of a repository against incoming changes

    • The extdiff extension lets you run your favourite graphical change viewer

    • Comprehensive integration with the vim editor

    • A restricted shell for ssh-hosted repositories

    • An importer for darcs repositories

  • New hooks added:
    • preupdate is run before an update or merge in the working directory.

    • update is run after an update or merge in the working directory.

  • Behaviour changes:
    • NOTE: Mercurial as installed by the Windows binary installer no longer performs automatic line-ending conversion for Unix/Linux compatibility. To re-enable this feature, edit your mercurial.ini file after you upgrade.

    • The Windows binary installer now automatically adds hg to your %PATH%.

    • The backout command now runs an editor by default, to let you modify the commit message for a backed-out changeset.

    • An earlier problem with parsing of tags has been fixed. This makes tag parsing slower but more reliable.

  • Memory usage and performance improvements:
    • The remove command has been rewritten to be hundreds of times faster in large repositories.

    • It is now possible to clone a repository very quickly over a LAN, if the server is configured to allow it. See the new server section in the hgrc documentation.

  • Other changes of note:
    • Mercurial will now print help for an extension if you type hg help EXT_NAME.

    • The usual array of bug fixes and documentation improvements.
    • The integrated web server is now more WSGI-compliant.

    • Work has begun to solidify Mercurial's API for use by third-party packages.

Version 0.9 - 2006-05-10

Release announcement.

These are the major changes between Mercurial 0.8.1 and 0.9:

  • The repository file format has been improved.
    • This has resulted in an average 40% reduction in disk space usage.
    • The new format (called RevlogNG) is now the default.
    • Mercurial works perfectly with both the old and new repository file formats. It can transfer changes transparently between repositories of either format.
    • To use the new repository format, simply use hg clone --pull to clone an existing repository.

    • Note: Versions 0.8.1 and earlier of Mercurial cannot read RevlogNG repositories directly, but they can clone, pull from, and push to servers that are serving RevlogNG repositories.

  • Memory usage has been improved by over 50% for many common operations.
  • Substantial performance improvements on large repositories.
  • New commands:
    • archive - generate a directory tree snapshot, tarball, or zip file of a revision

  • Deprecated commands:
    • addremove - replaced by add and remove --after

    • forget - replaced by revert

    • undo - replaced by rollback

  • New extensions:
    • Bugzilla integration hook
    • Email notification hook
  • Nested repositories are now supported. Mercurial will not recurse into a subdirectory that contains a .hg directory. It is treated as a separate repository.

  • The standalone web server, hg serve, is now threaded, so it can talk to multiple clients at a time.

  • The web server can now display a "message of the day".
  • Support added for hooks written in Python.
  • Many improvements and clarifications to built-in help.

Version 0.8.1 - 2006-04-07

Released 2006-04-07.

  • New extensions:
    • mq (manage a queue of patches, like quilt only better)

    • email (send changes as series of email patches)

  • New command: merge (replaces update -m)

  • Improved commands:
    • log (--limit option added)

    • pull and push (-r works on specific revisions)

    • revert (rewritten, much better)

  • Comprehensive hook support
  • Output templating added, supporting e.g. GNU changelog style
  • Windows, Mac OS X: prebuilt binary packages, better support
  • Many reliability, performance, and memory usage improvements

Version 0.8

Major changes from 0.7 to 0.8:

 faster status, diff, and commit
 reduced memory usage for push and pull
 improved extension API
 new bisect, gpg, hgk, and win32text extensions
 short URLs, binary file handling, and optional gitweb skin for hgweb
 numerous new command options including log --keyword and pull --rev
 improved hooks and file filtering

Version 0.7

Changes from 0.6 to 0.7:

core
 greatly improved merge logic
 improved copy/rename support (still experimental)
 automatic binary file handling
 generic file filtering support
 support for user-defined hooks (aka triggers)
 support for local tags and finding branches with tags
 numerous performance improvements
command line
 fewer long, confusing hashes to deal with
 new commands: clone, revert, incoming/outgoing, bundle/unbundle, grep, rename
 more powerful path handling with most commands
 improved push and pull support
 support for plug-in extensions
 much improved exception handling and debugging support
 many new command options and settings
web interface
 more conformant and compatible HTML output
 built-in RSS feeds
 fast multiple keyword search
 easy to set up multiple repository interface
 configurable support for downloading tarballs and zip files
 improved configurability
 IPv6 support
documentation
 improved built-in help and man pages
 a greatly expanded wiki
 tutorials in multiple languages
portability
 full support for Windows, including hardlinking and file filtering
 should easily compile and install on any modern UNIX
 binary packages available for many systems
extras
 powerful bash completion support
 Emacs integration
 updated hgk
and more
 expanded test suite
 numerous bug fixes and cleanups

Changes from 0.6c to 0.7:

core
 improved merge logic
 improved copy/rename support (still experimental)
 automatic binary file handling
 generic file filtering support
 various performance improvements
command line
 new bundle/unbundle commands for exchanging native updates
 more natural support for remove, copy, and rename
 faster, more powerful log command
 new grep command for searching entire history
 support for plug-in extensions
 improved exception handling and debugging facilities
hgweb
 optional downloading of tarballs and zip files
Windows support
 hardlinking support
 newline conversion through file filtering
contrib
 updated hgk

See also


CategoryHistorical

WhatsNew/Archive (last edited 2019-02-02 17:14:07 by rcl)