Differences between revisions 6 and 115 (spanning 109 versions)
Revision 6 as of 2005-09-16 20:29:25
Size: 2772
Editor: mpm
Comment:
Revision 115 as of 2011-10-01 21:01:44
Size: 24862
Editor: mpm
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
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
}}}

Upgrade notes:

{{{
Mercurial 0.6c introduced a layout change that affects a small number of repositories. To avoid potential future name collisions, repositories containing directory names ending in ".i", ".d", or ".hg" (eg: etc/init.d/foo) need escaping. If you have a repository containing such directories, it can be updated with the following UNIX command:

 find .hg -type d -name "*.[di]" -exec echo mv {} {}.hg ";"

As of 0.7, hardlink cloning is now supported on Windows with NTFS and ActiveState Python. Because old versions cannot properly determine the link count of hardlinked files, using old versions of Mercurial on a new repository containing hardlinks may be dangerous.
}}}


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
}}}
#pragma section-numbers 2
## notes that are older than 3 major releases should be moved to WhatsNew/Archive
= Release Notes =
Features and bugfixes in our latest releases.

Note that Mercurial follows a time based release plan with major releases every
four months and minor (bugfix) releases on the first of every month (see [[TimeBasedReleasePlan]]).

{i} Be sure to read the [[UpgradeNotes|upgrade notes]] when [[UpgradingMercurial|upgrading]].

<<TableOfContents(2)>>

(See [[WhatsNew/Archive|archive]] for older versions.)

== 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 (Bts:issue3017)
 * keyword: preserve file mode when overwriting
 * osutil: avoid accidentally destroying the True object in isgui (Bts:issue2937)
 * patch: correctly handle non-tabular Subject: line
 * patch: handle 'gitpatches' being empty, but not none
 * record: use command wrapper properly for qnew/qrefresh (Bts:issue3001)
 * setdiscovery: fix hang when #heads>200 (Bts: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 (Bts:issue2451)
 * url: parse fragments first (issue2997)
 * util: fix crash converting an invalid future date to string
 * util: wrap lines with multi-byte characters correctly (Bts: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 (Bts:issue2912)
 * http: pass user to readauthforuri() (fix 4a43e23b8c55)
 * http: strip credentials from urllib2 manager URIs (Bts:issue2885)
 * parsers: avoid pointer aliasing
 * subrepo: fix cloning of repos from urls without slash after host (Bts: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 (Bts: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 (Bts:issue2891)
 * hgweb: do not ignore [auth] if url has a username (Bts:issue2822)
 * hgweb: handle 'baseurl' configurations with leading slash (Bts:issue2934)
 * hgweb: raw file mimetype guessing configurable, off by default (BC) (Bts: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 (Bts:issue2112)
 * rebase: reset bookmarks (Bts:issue2265 and Bts:issue2873)
 * revert: restore check for uncommitted merge (Bts:issue2915) (BC)
 * revsets: catch type error on tip^p1(tip) (Bts:issue2884)
 * revsets: do the right thing with x^:y (Bts:issue2884)
 * subrepo: handle adding svn subrepo with a svn:external file in it (Bts:issue2931)
 * subrepo: use working copy of .hgsub to filter status (Bts:issue2901)
 * url: store and assume the query part of an url is in escaped form (Bts:issue2921)
 * util: rename the util.localpath that uses url to urllocalpath (Bts:issue2875)
 * verify: filter messages about missing null manifests (Bts:issue2900)
 * web: output a correct date in short format (Bts:issue2902)
 * win32: assign winstdout to sys.__stdout__ as well (Bts:issue2888)


== Mercurial 1.9 (2011-07-01) ==

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

=== Major features ===

 * New [[http://www.selenic.com/hg/help/filesets|fileset]] file matching support
 * Improved remote changeset discovery
 * New [[CommandServer|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 (Bts:issue2756)
 * add: notify when adding a file that would cause a case-folding collision
 * bisect: new command to extend the bisect range (Bts: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 (Bts:issue2799)
 * help: add -e/--extension switch to display extension help text
 * help: move hgignore man page into built-in help (Bts: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 (Bts: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 (Bts:issue2406)
 * rebase: add -m/--message to rebase --collapse (Bts: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 making it current (Bts:issue2788)
 * bookmarks: do not forward merged bookmark (Bts:issue1877)
 * changegroup: do not count closed new heads (Bts:issue2697)
 * config: handle comment lines in continuations (Bts:issue2854)
 * dispatch: propagate ui command options to the local ui (Bts:issue2523)
 * eol: make the hook check all new heads, not only tip (Bts:issue2666)
 * grep: don't print data from binary files for matches (Bts:issue2614)
 * http: report unexpected unparsable push responses (Bts:issue2777)
 * httprepo: handle large lengths by bypassing the len() operator
 * httprepo: long arguments support (Bts:issue2126)
 * httprepo: proper handling of invalid responses without content-type (Bts:issue2019)
 * httprepo: send URL redirection notices to stderr (Bts:issue2828)
 * localrepo: don't add deleted files to list of modified/added files (Bts:issue2761)
 * localrepo: ignore tags to unknown nodes (Bts:issue2750)
 * merge: drop resolve state for mergers with identical contents (Bts:issue2680)
 * patch: do not patch unknown files (Bts:issue752)
 * path_auditor: check filenames for basic platform validity (Bts:issue2755)
 * rebase: don't mark file as removed if missing in parent's manifest (Bts:issue2725)
 * rebase: preserve mq series order after rebasing (Bts:issue2849)
 * rebase: restore mq guards after rebasing (Bts:issue2107)
 * revset: report a parse error if a revset is not parsed completely (Bts:issue2654)
 * scmutil: improve path calculation for install-relative RC files (Bts:issue2841)
 * set NOT_CONTENT_INDEXED on .hg dir (Bts:issue2694)
 * sslutil: fall back to commonName when no dNSName in subjectAltName (Bts:issue2798)
 * subrepo: be more careful with deletions of .hgsub and .hgsubstate (Bts:issue2844)
 * subrepo: make stdin for svn a pipe for non-interactive use (Bts:issue2759)
 * subrepo: svn abort now depends on exit code (Bts:issue2833)
 * subrepo: be smarter about what's an absolute path (Bts:issue2808)
 * svn subrepo: attempt work around obstructed checkouts (Bts:issue2752)
 * svn subrepos: work around checkout obstructions (Bts:issue2752)
 * tags: catch more corruption during cache parsing (Bts:issue2779)
 * util: add Mac-specific check whether we're in a GUI session (Bts:issue2553)

== Mercurial 1.8.4 (2011-06-01) ==
This is a regular time-based bugfix release.

 * bookmarks: do not forward merged bookmark (Bts: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 (Bts:issue2019)
 * httprepo: send URL redirection notices to stderr (Bts:issue2828)
 * localrepo: don't add deleted files to list of modified/added files (Bts:issue2761)
 * localrepo: ignore tags to unknown nodes (Bts:issue2750)
 * mq: strip extra whitespace from node ids in header (Bts:issue2790)
 * rebase: restore mq guards after rebasing (Bts: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 (Bts: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 (Bts:issue310)
 * subrepo: don't crash when git .hgsubstate is empty (Bts:issue2716)
 * subrepo: make stdin for svn a pipe for non-interactive use (Bts:issue2759)
 * subrepo: respect non-default path for incoming/outgoing
 * subrepo: svn abort now depends on exit code (Bts:issue2833)
 * subrepo: use code from 71ea5b only if Python needs it (Bts:issue2795)
 * tags: catch more corruption during cache parsing (Bts:issue2779)

== Mercurial 1.8.3 (2011-05-01) ==
This is a regular time-based bugfix release.

 * convert: make filemap prune useless branch closing revs (Bts:issue2774)
 * encoding: avoid localstr when a string can be encoded losslessly (Bts:issue2763)
 * extdiff: fix broken symlinks handling (Bts: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 (Bts: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 (Bts:issue2725)
 * subrepo: handle svn tracked/unknown directory collisions
 * subrepo: prevent url normalization from removing // in ssh paths (Bts:issue2556)
 * subrepo: tell Subversion when we are non-interactive (Bts:issue2759)
 * url: use a regex to hide unsupported ssh passwords (Bts: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 (Bts:issue2692)
 * bookmarks: fix update of the current bookmark during rename
 * color: port to using ctypes (Bts:issue2687)
 * convert/svn: fix _iterfiles() output in root dir case (Bts: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 (Bts:issue2715)
 * mq: do not let qrefresh write bad patch
 * pager: don't page stderr if it's being redirected (Bts:issue2541)
 * push/outgoing: print remote target path even if there's an error (Bts:issue2561)
 * subrepo: recognize scp-style paths as git URLs
 * templates: widen the graph canvas (Bts: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 (Bts: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 (Bts:issue2677)
 * merge: back out single-parent fast-forward merge
 * merge: drop resolve state for mergers with identical contents (Bts:issue2680)
 * merge: improve unresolved conflicts warning (Bts: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 (Bts:issue2673)

== Mercurial 1.8 (2011-03-01) ==
=== Core ===
 * Bookmarks are now a core feature (see UpgradeNotes)
 * New `listfile:` pattern-matching (Topic: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 (Bts: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#Host_certificate_fingerprints|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 (Bts:issue2543)
 * churn: ignore trailing and leading spaces (Bts: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 (Bts:issue2377)
 * tag: abort if not at a branch head (Bts:issue2552)
 * tag: don't check .hgtags status if --local passed
 * tag: fix uncommitted merge check and error message (Bts:issue2542)
 * util: fix ellipsis() not to break multi-byte sequence (Bts:issue2564)
 * util: work around behavior change in Python 2.7.1
 * windows.rename: eliminate temp name race (Bts: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 (Bts:issue2517)
 * commit: search both parents for missing copy revision (Bts: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 (Bts:issue2023)
 * keyword: copy: when copied source is a symlink, follow it
 * mq: ignore subrepos (Bts: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 (Bts:issue2513)
 * util: do not recurse in makedirs if name is {{{''}}} (Bts: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 (Bts:issue2475)
 * bundlerepository: get rid of temporary bundle files (Bts:issue2478)
 * bundlerepository: test self.tempfile field, not tempfile module
 * eol: exclude .hgtags file from eol translation (Bts:issue2493)
 * log: fix log -rREV FILE when REV isnt the last filerev (Bts:issue2492)
 * opener: check hardlink count reporting (Bts:issue1866)
 * pushkey: force HTTP POST on push and add tests (Bts:issue2489)
 * revlog: fix descendants() if nullrev is in revs
 * subrepo: test & fix svn subrepo removal
 * win32: remove try-catch block of GetModuleFileNameEx (Bts:issue2480)

== Mercurial 1.7 (2010-11-01) ==
=== Core ===
 * filelog: improve cmp performances (Bts:issue2273)
 * patch: don't strip '#' lines from patch descriptions (Bts: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 (Bts:issue1713)
 * url: expand environment variables in [auth] settings (Bts:issue2328)
 * url: check validity (notBefore/notAfter) using OpenSSL (Bts: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 (Bts:issue2376)
 * init: expand destination url as a configured paths
 * log: do not --follow file that is deleted and recreated later (Bts: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 (Bts:issue2364)
 * tags: do not fail if tags.cache is corrupted (Bts: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 (Bts: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 (Bts: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 (Bts:issue1845)

=== Extensions ===
 * color: better support for branches and mq guards
 * convert: handle closed branch heads in hg-hg conversion (Bts:issue2185)
 * convert: support darcs changelogs with bytes 0x7F-0xFF (Bts:issue2411)
 * convert: deprecate `--authors` in preference for `--authormap`
 * graphlog: support header and footer templates when using styles (Bts: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 (Bts: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` (Bts: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 (Bts:issue2074)

----
CategoryProcess CategoryProject

Release Notes

Features and bugfixes in our latest releases.

Note that Mercurial follows a time based release plan with major releases every four months and minor (bugfix) releases on the first of every month (see TimeBasedReleasePlan).

{i} Be sure to read the upgrade notes when upgrading.

(See archive for older versions.)

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

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

3. 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)

4. Mercurial 1.9 (2011-07-01)

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

4.1. Major features

  • New fileset file matching support

  • Improved remote changeset discovery
  • New command server mode to improve application integration

  • Experimental generaldelta storage scheme
  • Experimental new http client library

4.2. Command changes

  • HGPLAIN: allow exceptions to plain mode, like i18n, via HGPLAINEXCEPT
  • manifest: add new option --all
  • aliases: add positional arguments to non-shell aliases
  • add: introduce a warning message for non-portable filenames (issue2756)

  • add: notify when adding a file that would cause a case-folding collision
  • bisect: new command to extend the bisect range (issue2690)

  • bookmarks: allow deactivating current bookmark with -i
  • bundle: update current bookmark to most recent revision on current branch
  • diff: make diff -c aware of revision sets
  • help: add -c/--command flag to only show command help (issue2799)

  • help: add -e/--extension switch to display extension help text
  • help: move hgignore man page into built-in help (issue2769)

  • http: correctly handle redirects from http to https
  • identify: list bookmarks for remote repositories
  • import: add --bypass option
  • paths: Add support for -q/--quiet
  • pushkey: add hooks for pushkey/listkeys
  • revset: add aliases
  • revset: add ^ and ~ operators from parentrevspec extension
  • revset: add a revset command to get bisect state
  • revset: add desc(string) to search in commit messages
  • revset: add follow(filename) to follow a filename's history across copies
  • revset: introduce filelog() to emulate log's fast path
  • revset: add a last() function

4.3. Web changes

  • add bookmarks listing to raw style and summary pages
  • support alternate logo url
  • add base link to file log for paper and coal styles (issue2452)

  • paper, coal: display diffstat on the changeset page
  • elapsed time calculation dynamic (javascript)
  • provide diffstat and summary on the changeset page

4.4. Extension changes

  • hgcia: handle URL like in notify (issue2406)

  • rebase: add -m/--message to rebase --collapse (issue2389)

  • Updating hgext.extdiff to use revsets
  • bash_completion: enable alias auto-complete
  • bugzilla: add XMLRPC interface
  • color: add support for terminfo-based attributes and color
  • convert/mtn: add support for using monotone's "automate stdio" when available
  • convert/svn: stop using svn bindings when pushing to svn
  • convert: add bookmark support for hg and git backends
  • convert: add svnrev, svnpath and svnuuid template keywords
  • extdiff: add repository root as a variable
  • graphlog: support more log command features with revsets
  • keyword: convert a verbatim block to a field list
  • keyword: offer additional datefilters when the extension is enabled
  • mq: add a 'mq()' revset predicate that returns applied mq csets
  • notify: send changesets on 'outgoing' hook, updated doc
  • progress: add speed format
  • rebase: add --tool argument for specifying merge tool
  • rebase: allow for rebasing descendants onto ancestors on different named branches
  • record: add an option to backup all wc modifications
  • record: add qrefresh -i/--interactive
  • record: add white space diff options
  • record: alias qrecord to qnew -i/--interactive

4.5. Bug fixes

  • bookmarks: allow create/move bookmark without making it current (issue2788)

  • bookmarks: do not forward merged bookmark (issue1877)

  • changegroup: do not count closed new heads (issue2697)

  • config: handle comment lines in continuations (issue2854)

  • dispatch: propagate ui command options to the local ui (issue2523)

  • eol: make the hook check all new heads, not only tip (issue2666)

  • grep: don't print data from binary files for matches (issue2614)

  • http: report unexpected unparsable push responses (issue2777)

  • httprepo: handle large lengths by bypassing the len() operator
  • httprepo: long arguments support (issue2126)

  • httprepo: proper handling of invalid responses without content-type (issue2019)

  • httprepo: send URL redirection notices to stderr (issue2828)

  • localrepo: don't add deleted files to list of modified/added files (issue2761)

  • localrepo: ignore tags to unknown nodes (issue2750)

  • merge: drop resolve state for mergers with identical contents (issue2680)

  • patch: do not patch unknown files (issue752)

  • path_auditor: check filenames for basic platform validity (issue2755)

  • rebase: don't mark file as removed if missing in parent's manifest (issue2725)

  • rebase: preserve mq series order after rebasing (issue2849)

  • rebase: restore mq guards after rebasing (issue2107)

  • revset: report a parse error if a revset is not parsed completely (issue2654)

  • scmutil: improve path calculation for install-relative RC files (issue2841)

  • set NOT_CONTENT_INDEXED on .hg dir (issue2694)

  • sslutil: fall back to commonName when no dNSName in subjectAltName (issue2798)

  • subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)

  • subrepo: make stdin for svn a pipe for non-interactive use (issue2759)

  • subrepo: svn abort now depends on exit code (issue2833)

  • subrepo: be smarter about what's an absolute path (issue2808)

  • svn subrepo: attempt work around obstructed checkouts (issue2752)

  • svn subrepos: work around checkout obstructions (issue2752)

  • tags: catch more corruption during cache parsing (issue2779)

  • util: add Mac-specific check whether we're in a GUI session (issue2553)

5. 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)

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

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

8. 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)

9. Mercurial 1.8 (2011-03-01)

9.1. Core

  • Bookmarks are now a core feature (see UpgradeNotes)

  • New listfile: pattern-matching (patterns)

  • Revset syntax supported by most commands
  • Performance improvements for reading large repository indexes
  • Certificate validation for HTTPS proxies

9.2. Subrepos

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

9.3. Windows

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

9.4. Extensions

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

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

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

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

12. 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)

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

14. 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)

15. Mercurial 1.7 (2010-11-01)

15.1. Core

  • filelog: improve cmp performances (issue2273)

  • patch: don't strip '#' lines from patch descriptions (issue2417)

  • patch: when native patching fails (ui.patch is not set), don't retry with an external tool
  • setup/hg: always load Mercurial from where it was installed.
  • setup: user-friendly error message if Python headers are missing
  • store: new unsupported and experimental parentdelta format (see UpgradeNotes)

  • store: encode first period or space in filenames (issue1713)

  • url: expand environment variables in [auth] settings (issue2328)

  • url: check validity (notBefore/notAfter) using OpenSSL (issue2407)

15.2. Commands

  • addremove: use similarity 100 by default
  • alias: add support for shell command aliases starting with '!' (see [alias] in hgrc(5))
  • backout: add --tool argument for specifying merge tool
  • backout: backout linearly by default instead of branching and merging (use --merge to get the former behaviour)
  • dispatch: properly handle relative path aliases used with -R (issue2376)

  • init: expand destination url as a configured paths
  • log: do not --follow file that is deleted and recreated later (issue732)

  • merge: don't detect copies as "divergent renames", make diagnostic message more helpful
  • merge: add --tool argument to merge and resolve
  • merge: handle no file parent in backwards merge (issue2364)

  • tags: do not fail if tags.cache is corrupted (issue2444)

  • templater: add "hex" filter and "children" keywords (see hg help templating)

15.3. Subrepos

  • support remapping of subrepository source paths (see [subpaths] in hgrc(5))
  • make add, diff, incoming, outgoing and status commands recurse into subrepos with --subrepos/-S
  • subrepo: add support for 'hg archive'
  • subrepo: fix status check on SVN subrepos (issue2445)

15.4. Revsets

  • add id() and rev() to allow explicit references to changes by hash or rev (see hg help revsets)
  • add min() function to complement max()
  • add present() function to avoid lookup errors on possibly missing changesets
  • rename tagged() to tag() and allow it to take an optional tag name
  • strip: add revsets support
  • add revsets support to bisect and update (issue1993)

  • bookmarks: add a bookmark([name]) revset for referencing bookmarks
  • transplant: add a transplanted(set) revset to get transplanted revisions

15.5. hgweb

  • add a help view for accessing the built-in documentation (see help link in hg serve)
  • let HTTPS serve use more compatible but less secure encryption
  • support very simple caching model (issue1845)

15.6. Extensions

  • color: better support for branches and mq guards
  • convert: handle closed branch heads in hg-hg conversion (issue2185)

  • convert: support darcs changelogs with bytes 0x7F-0xFF (issue2411)

  • convert: deprecate --authors in preference for --authormap

  • graphlog: support header and footer templates when using styles (issue2395)

  • keyword: do not expand at all during diff
  • keyword: support copy and rename
  • mq: extend support for the --mq argument to extension commands

  • mq: save qrefresh message for easy recovery in case it fails (issue2062)

  • mq: support hg qimport --existing --name renametothis thatexistingpatch, fix --force case on Windows

  • mq/qqueue: support renaming of active queue
  • mq/qqueue: add --purge option to delete a queue and its patches

  • pager: add global --pager=<auto/boolean> option

  • patchbomb: add --confirm option to show series details and ask for confirmation

  • patchbomb: let diffstat prompt only once with complete summary
  • progress: support rebase and patchbomb
  • rebase: re-add patches to mq repo after rebase
  • strip: add --keep flag to avoid modifying working directory during strip

  • strip: rename --nobackup option to --no-backup (issue2377)

  • strip: support stripping multiple revisions

15.7. contrib

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

15.8. Windows

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


CategoryProcess CategoryProject

WhatsNew (last edited 2024-10-28 15:33:56 by RaphaelGomes)