Recent Releases
4.902 Feb 2019 21:45
minor feature:
archive: use manifest.matches() to simplify and speed up matching. branch: allow changing branch of merge commits with --rev.
Branches: add -r option to show branch name(s) of a given rev ( )
graft: abort if --date/user specified with --currentdate/currentuser (BC). graft: introduce --base option for using custom base revision while merging. help: add internals.extensions topic. help: show advanced, experimental and deprecated extensions with --verbose.
Log: line wrap on diffstat with -G/--graph ( )
merge: make local file storage in the.hg/merge directory extensible.
Pull: inconsistent view of bookmarks during pull ( )
push: add --publish flag to change phase of pushed changesets. push: config option to control behavior when pushing to a publishing server.
Resolve: mark-check when a file was deleted on one side ( )
tags: cache 'repo.changelog' access when checking tags nodes. update: edge-case with update.atomic-file and read-only files.
4.8.106 Dec 2018 11:05
minor feature:
commandserver: get around ETIMEDOUT raised by selectors2.
Graft: do not try to skip rev derived from ancestor more than once ( )
verify: provide unit to ui.makeprogress().
4.803 Nov 2018 08:25
minor feature:
add: add a label for messages about added files. addremove: add labels for messages about added and removed files. annotate: pass in wdir rev and node to formatter (BC). annotate: rename line_number to lineno (BC). bookmarks: add explicit option to list bookmarks of the given names. bookmarks: pass in formatter to printbookmarks() instead of opts (API). clone: allow local cloning to create more than one level of directories. decommands: introduce derevlogindex (BC). decommands: use openstorage() in dedata (BC). grep: add MULTIREV support to --allfiles flag. grep: rename line_number to lineno as well (BC). grep: search all commits in allfiles mode. help: adding a proper declaration for shortlist/basic commands (API). help: adding support for command categories. identify: change parents to a list of nodes (BC). identify: show remote bookmarks in 'hg id url -Tjson -B'. log: have changesetformatter fill in wdir() rev and node (BC).
Log: respect graphshorten on terminal nodes (collapsing o- to just o )
Merge: improve interactive one-changed one-deleted message ( )
phase: explicitly exclude secret phase and above. phase: expose a '_phase(idx)' revset. phase: handle phase with no command flag. phase: report number of non-public changeset alongside the new range.
Push: add "remote" to 'repository changed while pushing' messages ( )
remove: add a label for messages about removed files. rename: return error status if any rename/copy failed. resolve: add a flag for the default behavior of re-merging. resolve: add config to make hg resolve not re-merge by default. resolve: add confirm config option. resolve: add option to warn/abort on -m with unresolved conflict markers. resolve: graduate resolve.mark-check from experimental, add docs. resolve: rename status to mergestatus to not shadow change status (BC). status: advertise --abort instead of 'update -C.' to abort a merge. status: advertise --abort instead of 'update -C.' to abort graft. status: remove "morestat
4.723 Aug 2018 15:45
minor feature:
Merge: do not fill manifest of committed revision with pseudo node ( )
Crecord: line number in hunk header ( )
Lazymanifest: don't crash when out of memory ( )
procutil: use unbuffered stdout on Windows.
3.8.302 Jun 2016 09:25
minor feature:
Bookmarks: allow pushing active bookmark on new remote head ( )
localrepo: prevent executable-bit only changes from being lost on amend.
Strip: invalidate phase cache after stripping changeset ( )
3.8.217 May 2016 22:45
minor feature:
3.7.331 Mar 2016 00:45
minor feature:
Mercurial prior to 3.7.3 contained two bounds-checking errors in its binary delta decoder that may be exploitable via clone, push, or pull.
3.7.203 Mar 2016 15:45
minor feature:
Bundlerepo: properly handle hidden linkrev in filelog ( )
Bundlerepo: properly handle hidden linkrev in manifestlog ( )
demandimport: add _imp to ignore list. doc: correct example concerning "hg purge" alias in man page "hgrc.5". doc: remove deprecated option from synopsis of command help. fileset: copy/paste in eol() error message. help: typo in backgrounddocumentation. help: hg.intevation.de is new primary name of hg.intevation.de (and new cert). help: update template examples to use reST literal syntax.
hg: obtain lock when creating share from pooled repo ( ).
Log: order of revisions filtered by multiple OR options ( )
Rebase: update working directory when aborting ( )
Revert: properly revert to ancestor of p2 during merge ( )
Revset: flatten chained 'list' operations (aka function args) ( )
setup: avoid procedure related to hg.exe at setup.py --pure. ui: crash by non-interactive prompt echo for user name.
Unionrepo: properly handle hidden linkrev in revlog ( )
zeroconf: forward all arguments passed to ui.configitems() wrapper.
3.703 Feb 2016 04:25
minor feature:
Merge: don't try to merge subrepos twice ( )
pull: advance current active bookmark at pull --update correctly.
Templater: abort if infinite recursion detected while evaluation ( )
Annotate: add missing period to help. annotate: mention that -n is suppressed in help.
Backout: disable --merge with --no-commit ( )
bookmark: deprecate 'bmstore.write' method. bookmarks: hoist getbkfile out of bmstore class. bookmarks: make _readactive safe when readlines raises ENOENT. branch: reword help text. clone: move bookmarks and checkouts before pull help. clonebundles: improve BUNDLESPEC documentation. clonebundles: remove advertisement of feature. commands.summary: switch to mergestate.read(). commands: inline definition of localrepo.parents() and drop the method (API). commands: make backout acquire locks before processing.
Commands: make commit acquire locks before processing ( )
commands: use context manager for opened bundle file.
Commandserver: drop tell() and seek() from channels ( )
commandserver: reset state of progress bar per command. commit: add a way to return more information from the chunkselector. commit: add amend mode for commit -i.
Commit: add some help examples ( )
commit: adjust the quoting in the examples to be Windows friendly. commit: rest syntax of examples. commit: make commit acquire store lock before processing for consistency. commit: preserve extra when amending with commit --amend.
Fileset: add missing() predicate ( )
fileset: use set instead of list to mark predicates for efficiency (API). graft: clarify in help that '-r' is not just optional. graft: copy extra (except branch) when copying changesets. graft: hook afterresolvedstates. graft: improve --continue abort message. help: quoting for bundle1 options. import: add word to help text. import: limit scope of msg in tryimportone. import: reorder help text.
Log: speed up single file log with hidden revs ( )
log: add 'hg log' example for full hashes. log: help provide sort by date example. log: me
3.6.306 Jan 2016 06:45
minor feature:
cmdutil: use crecordmod.checkcurses. copyfile: add an optional parameter to copy other stat data.
Crecord: stop raising error.Abort if curses is not found ( )
dirstate: don't write repo.currenttransaction to repo.dirstate if repo.
Dockerlib: short form for non-unique uid/gid for CentOS 5 compat ( )
Merge: while checking for unknown files don't follow symlinks ( )
mq: use fallback patch name if no alpha-numeric in summary line ( ).
Parsers: parse_dirstate to check len before unpacking header ( )
paths: include #fragment again.
Push: restore old behavior of default-push ( )
record: don't dereference symlinks while copying over stat data.
Revlog: seek to end of file before writing ( )
ui: try to handle more robustly in prompts ( ).
3.6.204 Dec 2015 20:45
minor feature:
Docker: match more version of 'hg docker version' ( )
Localrepo.commit: check all files for resolve state ( )
rebase: add returning value from pullrebase function.
Resolve: restore.orig only after merge is fully complete ( )
Share: wrap bmstore._writerepo for transaction sensitivity ( )
tags: create new sortdict for performance reasons.
3.6.110 Nov 2015 18:45
minor feature:
changegroup: call 'prechangegroup' hook before setting up write delay. changegroup: the scope of a try finally. clonebundles: typo s/comand/command/. demandimport: level passed to loader of sub-modules. dirstate: filefoldmap incosistency on file delete.
Dockerlib: allow non-unique uid and gid of DBUILDUSER ( )
Exchange: do not attempt clone bundle if local repo is non-empty ( )
hooks: always include HG_PENDING.
Hooks: hooks not firing if prechangegroup was set ( )
parsers: width of datalen variable in fm1readmarkers. posix: test-permissions regression. posix: retry on symlink race in checklink.
Templatefilters: try round-trip utf-8 conversion by json filter ( )
Wireproto: move clonebundles command from extension ( )
wix: style-coal.css has been renamed.
3.602 Nov 2015 17:05
minor feature:
bookmark: do not crash when active bookmark is forward and --date is used.
Bookmarks: don't deactivate on no-op update ( )
Clone: updaterev to update to latest branch changeset ( )
clonebundles: support for seeding clones from pre-generated bundles. commit: abort when a committemplate is not changed (BC).
Help: distinguish sections when multiple match ( )
help: pass around ui to doc loader (API). help: pass around ui to rewriter hooks (API). merge: perform all premerges before any merges (BC).
Merge: abort on file/directory case folding collisions ( )
Phases: return zero for no-op operations ( ) (BC)
resolve: perform all premerges before performing any file merges (BC).
3.5.203 Oct 2015 00:45
minor feature:
Hgweb: use latest mtime for caching tag ( )
Largefiles: restore archiving largefiles with hgweb ( )
Localrepo: recreate phasecache if changelog was modified ( )
monoblue: page subtitle on help pages. unbundle: cleanly abort on unknown bundle2 feature.
3.5.102 Sep 2015 22:05
minor feature:
convert: git copy file content conversions. filesets: ignore unit case in size() predicate for single value.
Help: typo familar - gt; familiar
help: typo in scripting documentation. hg: avoid auto sharing when the clone destination is remote. hgweb: trust of templates path (BC). histedit: backout ebb5bb9bc32e. largefiles: ensure lfutil.getstandinmatcher() only matches standins.
Match: a case-only rename + explicit path commit on icasefs ( )
parsers: memory leak in compute_phases_map_sets. rebase: lock the repo during the full rebase operation. revset: prevent crash caused by empty group expression while optimizing "and". revset: prevent crash caused by empty group expression while optimizing "or". strip: use the 'finally: tr.release' pattern during stripping. update: wlock the repo for the whole 'hg update' command. wix: avoid an abort with 'hg help -k foo'.
3.502 Aug 2015 23:25
minor feature:
bookmark: informs of failure to upgrade a bookmark. bookmark: remove the "touch changelog" hack. bookmarks: abort the whole push if bookmarks fails to update (BC). bookmarks: change bookmark within a transaction. bookmarks: clear active bookmark on non-linear update. bookmarks: mark internal-only config option. bookmarks: mark internal-only option. bookmarks: name label for active bookmark correctly. bookmarks: remove unused updatecurrentbookmark function (API). bookmarks: rename bookmarkcurrent to activebookmark (API). bookmarks: rename current to active in variables and comments. bookmarks: rename readcurrent to readactive (API). bookmarks: rename setcurrent to activate (API). bookmarks: rename unsetcurrent to deactivate (API). bookmarks: simplify iscurrent to isactivewdirparent (API). bookmarks: use try/except/finally. branch: don't warn about branches if repository has multiple branches already. commands: use the optional badfn argument when building a matcher. commands: use try/except/finally. commit: add ui.allowemptycommit config option. commit: avoid match.files() in conditions. commit: improve --close-branch documentation. commit: mark internal-only option. commit: no longer allow empty commit with the 'force' argument (API). config: give it an includepaths option for looking for config files. files: recurse into subrepos automatically with an explicit path. import-checker: add xargs like mode. import-checker: don't treat modules as relative one if not found. import-checker: exclude mercurial packages installed into the system path. import-checker: loop to get list of locally defined modules at first. import: cross-reference patch.fuzz option from 'hg help import'. import: cross-reference ui.patch option from 'hg help import'. import: use ui.allowemptycommit to allow empty commits. log: add a status template. patch: add 'extra' argument to makememctx.
patch: add fuzz config flag ().
phases: abort the whole push if phases fail to update (BC). phases: fix bug
3.4.202 Jul 2015 22:25
minor feature:
changegroup: properly compute common base in changeggroupsubset ()
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 ().
pull: avoid race condition with 'hg pull --rev name --update' ().
templater: do not preprocess template string in "if" expression ().
templater: evaluate arguments passed to diff() appropriately.
templater: parse "... " as string for 2.9.2-3.4 compatibility ().
transplant: only pull the transplanted revision ().
transplant: update test to use hash for remote transplant.
3.4.102 Jun 2015 06:45
minor feature:
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 ().
extensions: clear aftercallbacks after execution ().
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 ().
rebase: check that the bookmark is still valid when restoring ().
rebase: clear merge when aborting before any rebasing ().
revbranchcache: return uncached branchinfo for nullrev ().
revset: drop magic of fullreposet membership test ().
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 ().
ssh: capture output with bundle2 again ().
templatekw: compare target context and its parent exactly ().
templater: do not process -escapes at parsestring() ().
templater: fix crash by passing invalid object to date() function.
templater: strictly parse leading backslashes of ' ' () (BC).
transaction: really fix _addbackupentry key usage ().
transaction: separate calculating TXNID from creating transaction object.
transaction: use the proper variable in '_addbackupentry' ().
util.checkcase: don't abort on broken symlinks.
3.402 May 2015 04:45
major feature:
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 . 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 modifica
3.3.302 Apr 2015 17:25
minor feature:
adjustlinkrev: handle 'None' value as source . adjustlinkrev: prepare source revs for ancestry only once.
amend: check for directory renames for both merge parents.
annotate: reuse ancestry context when adjusting linkrev.
dirstate: don't require exact case when adding dirs on icasefs.
dirstate: make sure rootdir ends with directory separator.
filemerge: clean up language in mergemarkertemplate help.
forget: cleanup the output for an inexact case match on icasefs.
hgweb: prevent loading style map from directories other than specified paths.
mergecopies: reuse ancestry context when traversing file history.
templates: fix "log -q" output of default style . templates: fix "log -q" output of phases style.
win32: 'raise ctypes.WinError' - gt; 'raise ctypes.WinError()'.
3.3.203 Mar 2015 14:45
minor feature:
Transaction: really disable hardlink backups.
3.302 Feb 2015 09:05
minor feature:
add: add back forgotten files even when not matching exactly (BC) addremove: add back forgotten files (BC) addremove: add support for the -S flag addremove: print relative paths when called with -I/-X (BC) addremove: support addremove with explicit paths in subrepos backout: add --commit option commit: abort if --addremove is specified, but fails
commit: remove reverse search for copy source when not in parent (issue4476)
commit: propagate --addremove to subrepos if -S is specified (issue3759)
graft: show more useful status information while grafting
3.2.402 Jan 2015 11:45
minor feature:
demandimport: blacklist distutils.msvc9compiler (issue4475)
largefiles: backout f72d73937853 - linear updates handle m - gt; 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.2.319 Dec 2014 20:45
minor feature:
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
3.2.202 Dec 2014 07:25
minor feature:
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" amp; "more" links in paper style (issue4460)
3.2.112 Nov 2014 03:16
minor feature:
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)
3.203 Nov 2014 03:17
minor feature:
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
3.1.203 Oct 2014 03:17
minor feature:
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
3.105 Aug 2014 22:42
major feature:
backout: accept '--edit' like other commands creating new changeset
bash_completion: add -l --list support for shelve
bookmarks: avoid deleting primary bookmarks on rebase
bookmarks: improve the bookmark help (issue4244)
branch: add debug message for branch cache write failure
bugzilla: stop trying to cache setup across hook invocation
build: initial support for in-tree autobuilding recipes
buildrpm: include release version in .tar.gz name
bundle2: add pushkey support
bundle2: fix bundle2 pulling all revs on empty pulls
commit: make commit message shown in text editor customizable by template
config: allow 'user' in .hgrc ui section (issue3169)
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'
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 internal:tagmerge merge tool
filemerge: use 'basic' as the default of ' ui mergemarkers' for safety
filemerge: use non-minimal conflict marker regions (BC)
gpg: accept '--edit' like other commands creating new changeset
graft: customize graft conflict markers (BC)
help: always show command help with -h (issue4240)
help: suggest keyword search when no topic is found
histedit: respect revsetalias entries (issue4311)
import: add --partial flag to create a changeset despite failed hunks
largefiles: avoid unnecessary creation of .hg/largefiles when opening lfdirstate
largefiles: include largefiles when doing log on a directory (issue4241)
largefiles: show also how many data entities are outgoing at "hg outgoing"
largefiles: use "normallookup", if "mtime" of standin is