Differences between revisions 246 and 247
Revision 246 as of 2015-01-01 22:33:36
Size: 27241
Editor: mpm
Comment:
Revision 247 as of 2015-01-18 02:33:05
Size: 37746
Editor: mpm
Comment:
Deletions are marked like this. Additions are marked like this.
Line 13: Line 13:

== Mercurial 3.3-rc (2015-1-17) ==

Preliminary release notes for the 3.3 feature release.

=== commands ===
 * bookmark: read pending data when appropriate
 * bookmarks: factor out bookmark file opening for easier extensibility
 * bookmarks: factor out repository lookup from writing bookmarks file
 * branchcache: add debug output whenever cache files use truncate
 * branchcache: introduce revbranchcache for caching of revision branch names
 * branchcache: make _rbcrevslen handling more safe
 * branches: deprecate -a
 * branchmap: add seek() to end of file before calling tell() on append open()
 * branchmap: use revbranchcache when updating branch map
 * commit: abort if --addremove is specified, but fails
 * commit: propagate --addremove to subrepos if -S is specified (Bts:issue3759)
 * graft: drop cset description from empty commit message
 * graft: give helpful warning for empty grafts
 * graft: show hashes in user-facing messages
 * graft: show more useful status information while grafting
 * graft: use a real conflict for the tests
 * help: suggest '-v -e' to get built-in aliases for extensions (Bts:issue4461)
 * log: use namespace logname and colorname
 * log: use new namespaces api to display names
 * patch: add a new function to initialize diffopts by feature
 * patch: rename diffopts to diffallopts
 * patchbomb: don't honor whitespace and format-changing diffopts (BC)
 * push: elevate phase transaction to cover entire operation
 * push: send highest changegroup format supported by both side
 * status: cache dirstate status in _dirstatestatus()
 * status: don't list files as both clean and deleted
 * status: don't list files as both removed and deleted
 * status: don't override _buildstatus() in workingcommitctx

=== core ===
 * filelog: fix backwards comment for 'backrevref'
 * filelog: remove trailing "form feed" character
 * filelog: use censored revlog flag bit to quickly check if a node is censored
 * revlog: add a method to get missing revs incrementally
 * revlog: add config variable for limiting delta-chain length
 * revlog: add flags argument to _addrevision, update callers use default flags
 * revlog: bound based on the length of the compressed deltas
 * revlog: cache chain info after calculating it for a rev (Bts:issue4452)
 * revlog: compute length of compressed deltas along with chain length
 * revlog: define censored flag for revlogng index
 * revlog: increase I/O bound to 4x the amount of data consumed
 * revlog: make a predicate clearer with parens
 * revlog: store fulltext when compressed delta is bigger than it
 * revlog: switch findmissing* methods to incrementalmissingrevs
 * revlog: verify censored flag when hashing added revision fulltext
 * revset-filelog: handle hidden linkrev for file missing for head (Bts:issue4490)
 * transaction: allow generating files with a suffix
 * transaction: support cache file in backupentries
 * transaction: support for callbacks during abort
 * transaction: use the right location when cleaning up backup file (Bts:issue4479)

=== extensions ===
 * color: add support for colorizing git subrepo diffs
 * convert: on svn failure, note libsvn version (Bts:issue4043)
 * histedit: add a test to show that issue4251 is fixed (Bts:issue4251)
 * largefiles: align the output messages for a removed file with core methods
 * largefiles: align the output messages for an added file with core methods
 * largefiles: avoid printing messages while rebasing by "_lfstatuswriters"
 * largefiles: avoid printing messages while transplanting by "_lfstatuswriters"
 * largefiles: avoid redundant "updatelfiles" invocation in "overridetransplant"
 * largefiles: convert addlargefiles() to vfs
 * largefiles: don't clobber merge action message with user message
 * largefiles: don't duplicate 'actions' into 'actionbyfile'
 * largefiles: don't pop largefile-specific arguments to the add command
 * largefiles: don't print files as both large and normal in addremove dryruns
 * largefiles: don't rehash largefiles in updatelfiles if standin hash changed
 * largefiles: don't unnecessarily sort merge action lists
 * largefiles: don't use 'r' action for normal file that doesn't exist
 * largefiles: don't use 'r' action for standin that doesn't exist
 * largefiles: drop the override for 'fetch'
 * largefiles: drop the unfiltered repo usage in overridepurge()
 * largefiles: eliminate a duplicate message when removing files in verbose mode
 * largefiles: enable subrepo support for add
 * largefiles: enable subrepo support for forget
 * largefiles: enable subrepo support for remove
 * largefiles: ensure that the standin files are available in getlfilestoupload()
 * largefiles: factor out procedures to update lfdirstate for post-committing
 * largefiles: factor out procedures to update standins for pre-committing
 * largefiles: fix unused import
 * largefiles: get function to write status messages via "getstatuswriter()"
 * largefiles: introduce "_lfcommithooks" to abstract pre-committing procedures
 * largefiles: introduce "_lfstatuswriters" to customize status reporting
 * largefiles: look at unfiltered().lfstatus to allow status() to be filtered
 * largefiles: make linear update set unsure largefiles normal if unchanged
 * largefiles: pass a matcher instead of a raw file list to removelargefiles()
 * largefiles: properly sync lfdirstate after removing largefiles
 * largefiles: put same 'action' object back in 'newglist'
 * largefiles: return the list of added files from addlargefiles()
 * largefiles: rewrite merge code using dictionary with entry per file
 * largefiles: shortcircuit status code also for non-matching patterns
 * largefiles: show progress when checking standin hashes in outgoing changesets
 * largefiles: simplify check for lack of path arguments
 * largefiles: split the creation of a normal matcher out of its install method
 * largefiles: start by finding files of interest
 * largefiles: update comments to refer to the right overridden method
 * largefiles: update standins only at the 1st commit of "hg rebase --continue"
 * largefiles: update standins only at the 1st commit of "transplant --continue"
 * largefiles: use clearer debug messages in actions
 * largefiles: wrap "rebase.rebase" for functions using it directly
 * mq: drop updateheader - inserthgheader and insertplainheader is enough
 * mq: smarter handling of plain headers
 * rebase: add a 'revtodo' constant
 * rebase: always store rev in state, also when collapsing
 * rebase: clarify comment about merge ancestor when rebasing merges
 * rebase: clarify naming of variables holding node hashes - don't call them rev
 * rebase: handle revtodo as a special value when storing/restoring state
 * rebase: improve debug messages while processing the list of rebases
 * rebase: show more useful status information while rebasing
 * rebase: show warning when rebase creates no changes to commit
 * rebase: use '>= 0' to know is a revision was rebased

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

=== unsorted ===
 * add: add back forgotten files even when not matching exactly (BC)
 * add: pass options via keyword args
 * 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
 * bundle2-push: provide transaction to reply unbundler
 * bundles: do not overwrite existing backup bundles (BC)
 * changegroup: introduce "raw" versions of some commands
 * changelog: handle writepending in the transaction
 * changelog: register changelog.i.a as a temporary file
 * changelog: rely on transaction for finalization
 * changelog: rework the delayupdate mechanism
 * cmdserver: use given streams as pipe channels like other commands
 * copyfile: allow optional hardlinking
 * debugrevlog: fix computing chain length in debugrevlog -d
 * diff: add a --noprefix option
 * dispatch: only check compatibility against major and minor versions (BC)
 * extdiff: avoid unexpected quoting arguments for external tools (Bts:issue4463)
 * filectx: fix annotate to not directly instantiate filectx
 * generate-working-copy-states: accept depth arguments on command line
 * getbundle: send highest changegroup format supported by both side
 * graphlog: add a way to test the 'groupbranchiter' function
 * groupbranchiter: allow callers to select the first branch
 * groupbranchiter: support for non-contiguous revsets
 * hg.clone: set 'stream' depending on whether --pull was requested or not
 * hghave: we now support Python 2.7.9's ssl for https
 * hgk: forward command output to ui.fout consistently
 * highlight: ignore Unicode's extra linebreaks (Bts:issue4291)
 * https: support tls sni (server name indication) for https urls (Bts:issue3090)
 * ignore: resolve ignore files relative to repo root (Bts:issue4473) (BC)
 * linkrev-filelog: 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)
 * manifest: add optional recording of clean entries to diff
 * 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)
 * readmarkers: use unpacker for fixed header
 * record: don't honor format-changing diffopts (Bts:issue4459)
 * remove: support remove with explicit paths in subrepos
 * share: add option to share bookmarks
 * share: fix source repo lookup on Windows
 * subrepo: add full revert support for git subrepos
 * subrepo: add partial diff support for git subrepos
 * subrepo: add revert support without backup for git subrepos
 * subrepo: add status support for ignored files in git subrepos
 * subrepo: fix git subrepo ui argument
 * tests: adapt glob pattern to fix test with NetBSD's sh(1) (Bts:issue4484)
 * tests: run 'cvs init' only on non-existent directories (Bts:issue4482)
 * transplant: properly skip empty changeset (Bts:issue4423)
 * win32: fix win32 installers generation
 * win32: remove Mercurial.ini file from Inno Setup installer (Bts:issue4435)

Release Notes

Features and bugfixes in our latest releases. Please see the Download page for links to source and binaries.

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

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

(See the archive for older versions)

1. Mercurial 3.3-rc (2015-1-17)

Preliminary release notes for the 3.3 feature release.

1.1. commands

  • bookmark: read pending data when appropriate
  • bookmarks: factor out bookmark file opening for easier extensibility
  • bookmarks: factor out repository lookup from writing bookmarks file
  • branchcache: add debug output whenever cache files use truncate
  • branchcache: introduce revbranchcache for caching of revision branch names
  • branchcache: make _rbcrevslen handling more safe
  • branches: deprecate -a
  • branchmap: add seek() to end of file before calling tell() on append open()
  • branchmap: use revbranchcache when updating branch map
  • commit: abort if --addremove is specified, but fails
  • commit: propagate --addremove to subrepos if -S is specified (issue3759)

  • graft: drop cset description from empty commit message
  • graft: give helpful warning for empty grafts
  • graft: show hashes in user-facing messages
  • graft: show more useful status information while grafting
  • graft: use a real conflict for the tests
  • help: suggest '-v -e' to get built-in aliases for extensions (issue4461)

  • log: use namespace logname and colorname
  • log: use new namespaces api to display names
  • patch: add a new function to initialize diffopts by feature
  • patch: rename diffopts to diffallopts
  • patchbomb: don't honor whitespace and format-changing diffopts (BC)
  • push: elevate phase transaction to cover entire operation
  • push: send highest changegroup format supported by both side
  • status: cache dirstate status in _dirstatestatus()
  • status: don't list files as both clean and deleted
  • status: don't list files as both removed and deleted
  • status: don't override _buildstatus() in workingcommitctx

1.2. core

  • filelog: fix backwards comment for 'backrevref'
  • filelog: remove trailing "form feed" character
  • filelog: use censored revlog flag bit to quickly check if a node is censored
  • revlog: add a method to get missing revs incrementally
  • revlog: add config variable for limiting delta-chain length
  • revlog: add flags argument to _addrevision, update callers use default flags
  • revlog: bound based on the length of the compressed deltas
  • revlog: cache chain info after calculating it for a rev (issue4452)

  • revlog: compute length of compressed deltas along with chain length
  • revlog: define censored flag for revlogng index
  • revlog: increase I/O bound to 4x the amount of data consumed
  • revlog: make a predicate clearer with parens
  • revlog: store fulltext when compressed delta is bigger than it
  • revlog: switch findmissing* methods to incrementalmissingrevs
  • revlog: verify censored flag when hashing added revision fulltext
  • revset-filelog: handle hidden linkrev for file missing for head (issue4490)

  • transaction: allow generating files with a suffix
  • transaction: support cache file in backupentries
  • transaction: support for callbacks during abort
  • transaction: use the right location when cleaning up backup file (issue4479)

1.3. extensions

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

  • histedit: add a test to show that issue4251 is fixed (issue4251)

  • largefiles: align the output messages for a removed file with core methods
  • largefiles: align the output messages for an added file with core methods
  • largefiles: avoid printing messages while rebasing by "_lfstatuswriters"
  • largefiles: avoid printing messages while transplanting by "_lfstatuswriters"
  • largefiles: avoid redundant "updatelfiles" invocation in "overridetransplant"
  • largefiles: convert addlargefiles() to vfs
  • largefiles: don't clobber merge action message with user message
  • largefiles: don't duplicate 'actions' into 'actionbyfile'
  • largefiles: don't pop largefile-specific arguments to the add command
  • largefiles: don't print files as both large and normal in addremove dryruns
  • largefiles: don't rehash largefiles in updatelfiles if standin hash changed
  • largefiles: don't unnecessarily sort merge action lists
  • largefiles: don't use 'r' action for normal file that doesn't exist
  • largefiles: don't use 'r' action for standin that doesn't exist
  • largefiles: drop the override for 'fetch'
  • largefiles: drop the unfiltered repo usage in overridepurge()
  • largefiles: eliminate a duplicate message when removing files in verbose mode
  • largefiles: enable subrepo support for add
  • largefiles: enable subrepo support for forget
  • largefiles: enable subrepo support for remove
  • largefiles: ensure that the standin files are available in getlfilestoupload()
  • largefiles: factor out procedures to update lfdirstate for post-committing
  • largefiles: factor out procedures to update standins for pre-committing
  • largefiles: fix unused import
  • largefiles: get function to write status messages via "getstatuswriter()"
  • largefiles: introduce "_lfcommithooks" to abstract pre-committing procedures
  • largefiles: introduce "_lfstatuswriters" to customize status reporting
  • largefiles: look at unfiltered().lfstatus to allow status() to be filtered
  • largefiles: make linear update set unsure largefiles normal if unchanged
  • largefiles: pass a matcher instead of a raw file list to removelargefiles()
  • largefiles: properly sync lfdirstate after removing largefiles
  • largefiles: put same 'action' object back in 'newglist'
  • largefiles: return the list of added files from addlargefiles()
  • largefiles: rewrite merge code using dictionary with entry per file
  • largefiles: shortcircuit status code also for non-matching patterns
  • largefiles: show progress when checking standin hashes in outgoing changesets
  • largefiles: simplify check for lack of path arguments
  • largefiles: split the creation of a normal matcher out of its install method
  • largefiles: start by finding files of interest
  • largefiles: update comments to refer to the right overridden method
  • largefiles: update standins only at the 1st commit of "hg rebase --continue"
  • largefiles: update standins only at the 1st commit of "transplant --continue"
  • largefiles: use clearer debug messages in actions
  • largefiles: wrap "rebase.rebase" for functions using it directly
  • mq: drop updateheader - inserthgheader and insertplainheader is enough
  • mq: smarter handling of plain headers
  • rebase: add a 'revtodo' constant
  • rebase: always store rev in state, also when collapsing
  • rebase: clarify comment about merge ancestor when rebasing merges
  • rebase: clarify naming of variables holding node hashes - don't call them rev
  • rebase: handle revtodo as a special value when storing/restoring state
  • rebase: improve debug messages while processing the list of rebases
  • rebase: show more useful status information while rebasing
  • rebase: show warning when rebase creates no changes to commit
  • rebase: use '>= 0' to know is a revision was rebased

1.4. hgweb

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

1.5. unsorted

  • add: add back forgotten files even when not matching exactly (BC)
  • add: pass options via keyword args
  • 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
  • bundle2-push: provide transaction to reply unbundler
  • bundles: do not overwrite existing backup bundles (BC)
  • changegroup: introduce "raw" versions of some commands
  • changelog: handle writepending in the transaction
  • changelog: register changelog.i.a as a temporary file
  • changelog: rely on transaction for finalization
  • changelog: rework the delayupdate mechanism
  • cmdserver: use given streams as pipe channels like other commands
  • copyfile: allow optional hardlinking
  • debugrevlog: fix computing chain length in debugrevlog -d
  • diff: add a --noprefix option
  • dispatch: only check compatibility against major and minor versions (BC)
  • extdiff: avoid unexpected quoting arguments for external tools (issue4463)

  • filectx: fix annotate to not directly instantiate filectx
  • generate-working-copy-states: accept depth arguments on command line
  • getbundle: send highest changegroup format supported by both side
  • graphlog: add a way to test the 'groupbranchiter' function
  • groupbranchiter: allow callers to select the first branch
  • groupbranchiter: support for non-contiguous revsets
  • hg.clone: set 'stream' depending on whether --pull was requested or not
  • hghave: we now support Python 2.7.9's ssl for https
  • hgk: forward command output to ui.fout consistently
  • highlight: ignore Unicode's extra linebreaks (issue4291)

  • https: support tls sni (server name indication) for https urls (issue3090)

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

  • linkrev-filelog: 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)

  • manifest: add optional recording of clean entries to diff
  • memctx: calculate manifest correctly with newly-removed files (issue4470)

  • memctx: fix manifest for removed files (issue4470)

  • obsstore: disable garbage collection during initialization (issue4456)

  • readmarkers: use unpacker for fixed header
  • record: don't honor format-changing diffopts (issue4459)

  • remove: support remove with explicit paths in subrepos
  • share: add option to share bookmarks
  • share: fix source repo lookup on Windows
  • subrepo: add full revert support for git subrepos
  • subrepo: add partial diff support for git subrepos
  • subrepo: add revert support without backup for git subrepos
  • subrepo: add status support for ignored files in git subrepos
  • subrepo: fix git subrepo ui argument
  • tests: adapt glob pattern to fix test with NetBSD's sh(1) (issue4484)

  • tests: run 'cvs init' only on non-existent directories (issue4482)

  • transplant: properly skip empty changeset (issue4423)

  • win32: fix win32 installers generation
  • win32: remove Mercurial.ini file from Inno Setup installer (issue4435)

2. Mercurial 3.2.4 (2015-1-1)

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

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

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

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

6. Mercurial 3.2 (2014-11-01)

This is a quarterly feature release.

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

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

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

6.4. hgweb

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

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

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

9. Mercurial 3.1 (2014-08-01)

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

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

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

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

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

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

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

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

12.1. Core features

  • cat: support explicit paths in subrepos
  • cmdserver: allow starting server without repository
  • clone: abort if default destination has no meaningful name (BC)
  • clone: put streaming clones in a transaction
  • color: add debugcolor command (issue4094)

  • color: allow color keywords to be used directly in template
  • commands: add -T as alternative to --template
  • commands: hg debuginstall checks missing templates (issue4151)

  • commit: --edit/-e allows editing commit message supplied through other means
  • config: add initial implementation of --edit (with --global and --local flags)
  • debuginstall: add Python information to debuginstall output (issue4128)

  • demandimport: support HGDEMANDIMPORT=disable to disable demandimport
  • hgweb: add metadata to atom and rss feed entries
  • http: reuse authentication info after the first failed request (issue3567)

  • log: change implementation to use graphlog code
  • push: provide a hint when no paths are configured (issue3692)

  • require: provide a link to a wiki page as well as suggesting upgrade
  • revset: new implementation with incremental evaluation
  • revset: try to handle hyphenated symbols if lookup callback is available
  • revset: add 'only()' revset
  • sshpeer: only print out 'running ssh' messages in debug mode (BC)
  • template: add ifcontains template function
  • template: add pad function for padding output
  • template: add revset() template function
  • template: add shortest(node) template function
  • template: add flexible -T option
  • win32: improve the performance of win32.unlink() over CIFS

12.2. Extension features

  • blackbox: log events related to branch cache
  • convert: avoid updating tags when there is nothing new
  • convert: compare tags from all heads instead of just one
  • convert: replace old sha1s in the description
  • extensions: mark win32text deprecated
  • extensions: remove interhg
  • extensions: remove the inotify extension (BC)
  • histedit: select the lowest rev when looking for a root in a revset (BC)
  • journal: report parsing errors on recover/rollback (issue4172)

  • qimport: allow importing URLs

12.3. Fixes

  • backout: don't limit ancestry check to a single ancestor
  • backout: improve confusing 'cannot backout change on a different branch' abort
  • caches: invalidate store caches when lock is taken
  • cmdserver: forcibly use L channel to read password input (issue3161)

  • cmdserver: reload mq on each runcommand request to avoid corruption
  • diff: use second filename for --stat reporting on git patches (issue4221)

  • dirstate: report bad subdirectories as match.bad, not just a warning (BC)
  • extensions: use normpath to allow trailing '\' on Windows (issue4187)

  • fncache: clean up fncache during strips
  • largefiles: changed overridelog to work with graphlog
  • largefiles: don't prompt when one side of merge was changed but didn't change
  • largefiles: remove directories emptied after their files are moved (issue3515)

  • parsers: fail fast if Python has wrong minor version (issue4110)

  • phases: apply publishing enforcement for "serve" source
  • revlog: deal with chunk ranges over 2G on Windows (issue4215)

  • setup.py: fix C extension compilation issue with OS X 10.9 and Xcode 5.1
  • subrepo: check return code for git push (issue4223)

12.4. Experimental features

  • bundle2: experimental support for bundle2
  • merge: experimental implementation of bid merge
  • merge: tell when .ancestor picks one of multiple common ancestors heads

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

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

15. Mercurial 2.9 (2014-02-01)

This is a regularly-scheduled feature release.

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

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

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

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

WhatsNew (last edited 2024-03-29 20:39:30 by RaphaelGomes)