Mercurial 3.4 (2015-05-01)#

Mercurial 3.4.2 (2015-07-01)#

  • changegroup: properly compute common base in changeggroupsubset (issue4736)

  • crecord: fix a typo introduced when moving crecord to core

  • crecord: fix three typos introduced while moving crecord into core

  • hgwebdir: avoid redundant repo and directory entries when 'web.name' is set

  • hgwebdir: don't allow the hidden parent of a subrepo to show as a directory

  • parsers: do not cache RevlogError type (issue4451)

  • pull: avoid race condition with 'hg pull --rev name --update' (issue4706)

  • templater: do not preprocess template string in "if" expression (issue4714)

  • templater: evaluate arguments passed to diff() appropriately

  • templater: parse \"...\" as string for 2.9.2-3.4 compatibility (issue4733)

  • transplant: only pull the transplanted revision (issue4692)

  • transplant: update test to use hash for remote transplant

Mercurial 3.4.1 (2015-06-01)#

This is a regularly-scheduled bugfix release.

  • archive: always use portable path component separators with subrepos

  • commands: hide formatter option as EXPERIMENTAL, not as DEPRECATED

  • context: don't complain about a matcher's subrepo paths in changectx.walk()

  • convert: properly pass null ids through .hgtags (issue4678)

  • extensions: clear aftercallbacks after execution (issue4646)

  • hgweb: bring back infinite scroll in shortlog of paper style

  • histedit: fix --continue when rules are finished

  • histedit: fix --edit-plan

  • histedit: fix keep during --continue

  • histedit: fix serializing of None backupfile

  • histedit: fix test-histedit-edit on vfat

  • localrepo: pass hook argument txnid to pretxnopen hooks

  • localrepo: rename hook argument from TXNID to txnid (BC)

  • localrepo: use correct argument name for pretxnclose hooks (BC)

  • match: explicitly naming a subrepo implies always() for the submatcher

  • mergecopies: avoid slowdown from linkrev adjustment (issue4680)

  • rebase: check that the bookmark is still valid when restoring (issue4669)

  • rebase: clear merge when aborting before any rebasing (issue4661)

  • revbranchcache: return uncached branchinfo for nullrev (issue4683)

  • revset: drop magic of fullreposet membership test (issue4682)

  • revset: id() called with 40-byte strings should give the same results as for short strings

  • revset: map postfix '%' to only() to optimize operand recursively (issue4670)

  • ssh: capture output with bundle2 again (issue4642)

  • templatekw: compare target context and its parent exactly (issue4690)

  • templater: do not process \-escapes at parsestring() (issue4290)

  • templater: fix crash by passing invalid object to date() function

  • templater: strictly parse leading backslashes of '{' (issue4569) (BC)

  • transaction: really fix _addbackupentry key usage (issue4684)

  • transaction: separate calculating TXNID from creating transaction object

  • transaction: use the proper variable in '_addbackupentry' (issue4684)

  • util.checkcase: don't abort on broken symlinks

Mercurial 3.4 (2015-05-01)#

This is a regularly-scheduled feature release.

Commands#

  • annotate: add option to annotate working-directory files

  • annotate: always prepare ancestry context of base fctx (issue4600)

  • annotate: always adjust linkrev before walking down to parents (issue4623)

  • annotate: prepare ancestry context of workingfilectx

  • bookmarks: add incoming() to replace diff() for incoming bookmarks

  • bookmarks: add outgoing() to replace diff() for outgoing bookmarks

  • bookmarks: check @pathalias suffix before available @number for efficiency

  • bookmarks: enhance test of showing detail about incoming/outgoing bookmarks

  • bookmarks: prevent divergent bookmark from being updated unexpectedly

  • bookmarks: reuse @number bookmark, if it refers changeset referred remotely

  • bookmarks: rewrite comparing bookmarks in commands.summary() by compare()

  • bookmarks: show detailed status about incoming/outgoing bookmarks

  • clone: add progress support to hardlink clones (issue3059)

  • commands.import: accept a prefix option

  • commands.push: abort when revisions evaluate to empty set (BC)

  • commands: add ui.statuscopies config knob

  • debuginstall: expand the editor path before searching for it (issue4380)

  • files: split reusable implementation into cmdutil for subrepo support

  • files: use ctx object to access dirstate

  • graft: allow creating sibling grafts

  • graft: record intermediate grafts in extras

  • log: display closing-branch nodes as "_" (BC)

  • log: fix --follow null parent not to include revision 0

  • log: make -fr show complete history from the given revs (BC)

  • log: prefer 'wctx' over 'pctx' for working context

  • patch.internalpatch: accept a prefix parameter

  • patch.internalpatch: add a default value for prefix

  • patch: rename pathstrip to pathtransform

  • pull: print "pulling from foo" before accessing the other repo

  • push: acquire local 'wlock' if "pushback" is expected (BC) (issue4596)

  • resolve: silence warning of unknown pats for -l/--list (BC)

  • revert: evaluate filesets against working directory (issue4497)

  • revert: fix --interactive on local modification (issue4576)

  • revert: stop marking files clean after interactive revert (issue4592)

  • revert: accept just -I/-X without paths or -a/-i (issue4592)

  • revert: apply normallookup on reverted file if size isn't changed (issue4583)

  • revert: restore the ability to revert across case only renames (issue4481)

  • status: add relative directory help text (issue3835)

Core#

  • bundle2: capture transaction rollback message output (issue4614)

  • bundle2: disable ouput capture unless we use http (issue4613 issue4615)

  • changelog: fix readpending if no pending data exist (issue4609)

  • dirstate: fix order of initializing nf vs f

  • filelog: allow censored files to contain padding data

  • merge: run update hook after the last wlock release

  • pushkey: flush pending data before running a pre-pushkey hook (issue4607)

  • repoview: improve compute staticblockers perf

  • revlog: _addrevision creates full-replace deltas based on censored revisions

  • revlog: add "iscensored()" to revlog public API

  • revlog: addgroup checks if incoming deltas add censored revs, sets flag bit

  • revlog: in addgroup, reject ill-formed deltas based on censored nodes

  • revlog: make converting from inline to non-line work after a strip

  • revlog: special case expanding full-replacement deltas received by exchange

  • subrepo: don't write .hgsubstate lines with empty subrepo state (issue4622)

  • subrepo: update the help text to account for diff -I/-X gitsubrepo support

  • tags: establish a separate and shared cache of .hgtags filenodes

  • tags: change format of tags cache files

  • tags: have a different cache file per filter level

  • ui: disable revsetaliases in plain mode (BC)

  • util: add progress callback support to copyfiles

  • windows: make shellquote() quote any path containing '\' (issue4629)

Extensions#

  • color: be more conservative about setting ANSI mode on Windows (BC)

  • color: fix crash in cmd.exe

  • color: omit terminfo/win32 warning if non-interactive (issue4543)

  • color: support a different color mode when the pager is active

  • convert: adjust progress bar for octopus merges (issue4169)

  • histedit: add --edit-plan option to histedit

  • histedit: allow histedit --continue when not on a descendant (BC)

  • histedit: fix preventing strips during histedit

  • histedit: fix style of new error message

  • histedit: improve roll action integration with fold

  • histedit: fix rollup prompting for a commit message (issue4606)

  • largefiles: don't crash when cloning to a remote repo

  • largefiles: don't mangle filesets when fixing up the log matcher

  • largefiles: always consider updatelfiles 'checked' parameter set

  • largefiles: avoid infinite recursive call of openlfdirstate in overriderevert

  • largefiles: don't create chain of __contains__ calls

  • largefiles: don't prefix standin patterns with '.hglf' when logging

  • largefiles: don't warn when reverting a forgotten largefile

  • largefiles: extract and reuse 'standin' variable in overriderevert()

  • largefiles: for update -C, only update largefiles when necessary

  • largefiles: handle logging from outside the repo

  • largefiles: introduce lfutil.findstorepath()

  • largefiles: override cmdutil.revert() instead of comands.revert()

  • largefiles: report the source of copied/moved largefiles in status -C

  • largefiles: set the extension as enabled locally after a clone requiring it

  • largefiles: teach log to handle patterns

  • largefiles: update _subdirlfs() comment

  • largefiles: use common function to build content of .hg_archival.txt

  • largefiles: use lfutil.findstorepath() when verifying a local repo

  • largefiles: use the core file copy logic to validate the destination path

  • largefiles: use the share source as the primary local store (issue4471)

  • mq: avoid silent failure when single patch doesn't apply (issue4604)

  • rebase: don't forward "source" argument to rebase (issue4633)

  • rebase: restore bookmark state on abort

  • record: edit patch of newly added files (issue4304)

  • record: fix adding new file with record from within a subdir (issue4626)

  • record: fix record with change on moved file crashes (issue4619)

  • shelve: acquire lock in the right order

  • shelve: add interactive mode

  • shelve: add interactive mode command line option

Hgweb#

  • hgweb: resurrect <span> tag on diffline to fix rendering in monoblue style

  • hgweb: use introrev() for finding parents (issue4506)

  • json: implement {bookmarks} template

  • json: implement {branches} template

  • json: implement {changeset} template

  • json: implement {comparison} template

  • json: implement {fileannotate} template

  • json: implement {filediff} template

  • json: implement {helptopics} template

  • json: implement {help} template

  • json: implement {manifest} template

  • json: implement {shortlog} and {changelog} templates

  • json: implement {tags} template

Unsorted#

  • archive: change the default prefix to '' from None

  • archive: look for first visible revision to build repo identity (issue4591)

  • bundle2-localpeer: properly propagate the server output on error (issue4594)

  • bundle2-wireproto: properly propagate the server output on error (issue4594)

  • changeset_printer: display p1rev:p1node with "+" suffix for workingctx

  • check-commit: be more picky about detection of wrong bug tag

  • check-commit: check capitalization in summary lines

  • churn: deprecate -t option in favour of -T

  • crecord: fix another underbar

  • crecord: fix underbar style for orig_stdout

  • devel-warn: add a prefix to all messages ("devel-warn: ")

  • dirs._addpath: don't mutate Python strings after exposing them (issue4589)

  • dispatch: consolidate formatting of ParseErrors

  • dispatch: offer near-edit-distance suggestions for {file,rev}set functions

  • dispatch: offer suggestions of similar-named commands

  • extensions: support callbacks after another extension loads

  • get-with-headers: support parsing and pretty printing JSON

  • graphlog: do not bypass commands.log so that -fr works

  • graphlog: move comment and flag denoting revs might be unsorted

  • graphlog: remove too early return from getgraphlogrevs() for empty repo

  • lazymanifest: fix memory leak in lmiter_iterentriesnext() after 3d485727e45e

  • lazymanifest: fix pure hg iterkeys()

  • linkrev: fix issue with annotate of working copy

  • manifestv2: add support for reading new manifest format

  • manifestv2: add support for writing new manifest format

  • obsolete: avoid infinite loop from obs-cycle in divergence (issue4126)

  • record: add interactive option to the commit command

  • record: allow editing new files (issue4304)

  • record_curses: fix ui bug for newly added file

  • revbranchcache: add test for when the cache is not writable

  • revbranchcache: move out of branchmap onto localrepo

  • revbranchcache: populate cache incrementally

  • revbranchcache: store repo on the object

  • revbranchcache: write cache even during read operations

  • revrange: don't parse revset aliases as hash prefixes (issue4553)

  • rollback: clear resolve state (issue4593)

  • ssl: resolve symlink before checking for Apple python executable (issue4588)

  • ssl: set explicit symbol "!" to web.cacerts to disable SSL verification (BC)

  • strip: properly clear resolve state with --keep (issue4593)

  • subrepo: add 'cat' support for git subrepos

  • subrepo: add basic support to hgsubrepo for the files command

  • subrepo: add include/exclude support for diffing git subrepos

  • subrepo: add status support for ignored and clean files in git subrepos

  • subrepo: change arguments of abstractsubrepo.__init__ (API)

  • subrepos: support adding files in git subrepos

  • test-convert-git: show insane progress bar with octopus merge (issue4169)

  • test-histedit-edit.t: demonstrate qnew fails during a histedit (issue4366)

  • test-https: enable dummycert test only if Apple python is used (issue4500)

  • test-shelve: be more lenient about whitespace (issue4124)

  • tests: add test showing tags cache drops filtered heads (issue4550)

  • tests: handle deleted .hg directory (git 2.2.0 and higher) (issue4585)

  • trydiff: join filename with prefix only once

  • unbundle: acquire 'wlock' when processing bundle2 (BC) (issue4596)

  • webcommands: define a dict of available commands

  • webcommands: define web commands using a decorator