Mercurial 2.3 (2012-08-01)#

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)