Size: 37746
Comment:
|
Size: 32330
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 14: | Line 14: |
== Mercurial 3.3-rc (2015-1-17) == Preliminary release notes for the 3.3 feature release. |
== Mercurial 3.3.1 (2015-3-2) == This is a regularly scheduled bugfix release. It fixes a significant regression with transactions on Windows network shares. * dispatch: work around !UnicodeDecodeError caused by SSLError of Python 2.7.9 * hgweb: recreate old DOM structure for css in monoblue style * largefiles: access to specific fields only if largefiles enabled (Bts:issue4547) * log: fix json-formatted output when file copies are listed (Bts:issue4523) * repoview: invalidate cached changelog if _delayed changes (Bts:issue4549) * revisionbranchcache: fall back to slow path if starting readonly (Bts:issue4531) * revset: mask specific names for named() predicate * shellquote: fix missing quotes for empty string * templatekw: fix {join(bookmarks, sep)} to always show associated bookmarks * transaction: disable hardlink backups (Bts:issue4546) == Mercurial 3.3 (2015-2-1) == This is a regularly scheduled feature release with over 800 changes. |
Line 19: | Line 34: |
* 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 === |
|
Line 135: | Line 35: |
* add: pass options via keyword args | |
Line 141: | Line 40: |
* bundle2-push: provide transaction to reply unbundler | * commit: abort if --addremove is specified, but fails * commit: remove reverse search for copy source when not in parent (Bts:issue4476) * commit: propagate --addremove to subrepos if -S is specified (Bts:issue3759) * graft: show more useful status information while grafting === core === |
Line 143: | Line 47: |
* 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 |
* osx: patch .pax.gz files in pkg bundles so they extract as root (Bts:issue4081) * revset: handle hidden linkrev for file missing for head (Bts:issue4490) * revset: allow rev(-1) to indicate null revision (BC) * revset: fix ancestors(null) to include null revision (Bts:issue4512) * subrepo: don't abort in add when non-hg subrepos are present (Bts:issue4513) |
Line 149: | Line 53: |
* 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) |
* extensions: only check compatibility against major and minor versions (BC) |
Line 166: | Line 56: |
* linkrev-filelog: handle filtered linkrev with no visible children (Bts:issue4307) | * linkrev: handle filtered linkrev with no visible children (Bts:issue4307) |
Line 169: | Line 59: |
* manifest: add optional recording of clean entries to diff | |
Line 173: | Line 62: |
* 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: support remove with explicit paths in subrepos |
Line 180: | Line 65: |
* subrepo: add revert support without backup for git subrepos | |
Line 182: | Line 66: |
* 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) |
* win32: remove Mercurial.ini file from Inno Setup installer (Bts:issue4435) === hgweb === * hgweb: allow viewing diffs against p1 or p2 for merge commits (Bts:issue3904) === extensions === * color: add support for colorizing git subrepo diffs * color: add missing 'dim' in _effects * convert: on svn failure, note libsvn version (Bts:issue4043) * convert: replace revision references in messages if they are >= short hashes * convert: handle LookupError in mercurial_source.lookuprev() * extdiff: reintroduce backward compatibility with manual quoting of parameters * histedit: add a test to show that issue4251 is fixed (Bts:issue4251) * largefiles: fix commit of a directory with no largefile changes (Bts:issue4330) * largefiles: use 'default' path for pulling largefiles, not 'default-push' * largefiles: enable subrepo support for add, forget, remove * largefiles: show progress when checking standin hashes in outgoing changesets * mq: smarter handling of plain headers * patchbomb: don't honor whitespace and format-changing diffopts (BC) * rebase: show more useful status information while rebasing * rebase: ensure rebase revision remains visible (Bts:issue4504) * extdiff: avoid unexpected quoting arguments for external tools (Bts:issue4463) * highlight: ignore Unicode's extra linebreaks (Bts:issue4291) * record: don't honor format-changing diffopts (Bts:issue4459) * share: add option to share bookmarks |
Line 186: | Line 93: |
* 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).
Be sure to read the upgrade notes when upgrading.
Contents
- Mercurial 3.3.1 (2015-3-2)
- Mercurial 3.3 (2015-2-1)
- Mercurial 3.2.4 (2015-1-1)
- Mercurial 3.2.3 (2014-12-18)
- Mercurial 3.2.2 (2014-12-01)
- Mercurial 3.2.1 (2014-11-11)
- Mercurial 3.2 (2014-11-01)
- Mercurial 3.1.2 (2014-10-01)
- Mercurial 3.1.1 (2014-09-01)
- Mercurial 3.1 (2014-08-01)
- Mercurial 3.0.2 (2014-07-01)
- Mercurial 3.0.1 (2014-06-01)
- Mercurial 3.0 (2014-05-01)
- Mercurial 2.9.2 (2014-04-01)
- Mercurial 2.9.1 (2014-03-01)
- Mercurial 2.9 (2014-02-01)
(See the archive for older versions)
1. Mercurial 3.3.1 (2015-3-2)
This is a regularly scheduled bugfix release. It fixes a significant regression with transactions on Windows network shares.
dispatch: work around UnicodeDecodeError caused by SSLError of Python 2.7.9
- hgweb: recreate old DOM structure for css in monoblue style
largefiles: access to specific fields only if largefiles enabled (issue4547)
log: fix json-formatted output when file copies are listed (issue4523)
repoview: invalidate cached changelog if _delayed changes (issue4549)
revisionbranchcache: fall back to slow path if starting readonly (issue4531)
- revset: mask specific names for named() predicate
- shellquote: fix missing quotes for empty string
- templatekw: fix {join(bookmarks, sep)} to always show associated bookmarks
transaction: disable hardlink backups (issue4546)
2. Mercurial 3.3 (2015-2-1)
This is a regularly scheduled feature release with over 800 changes.
2.1. commands
- 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
2.2. core
- bundles: do not overwrite existing backup bundles (BC)
osx: patch .pax.gz files in pkg bundles so they extract as root (issue4081)
revset: handle hidden linkrev for file missing for head (issue4490)
- revset: allow rev(-1) to indicate null revision (BC)
revset: fix ancestors(null) to include null revision (issue4512)
subrepo: don't abort in add when non-hg subrepos are present (issue4513)
- cmdserver: use given streams as pipe channels like other commands
- extensions: only check compatibility against major and minor versions (BC)
https: support tls sni (server name indication) for https urls (issue3090)
ignore: resolve ignore files relative to repo root (issue4473) (BC)
linkrev: 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)
memctx: calculate manifest correctly with newly-removed files (issue4470)
memctx: fix manifest for removed files (issue4470)
obsstore: disable garbage collection during initialization (issue4456)
- subrepo: support remove with explicit paths in subrepos
- subrepo: add full revert support for git subrepos
- subrepo: add partial diff support for git subrepos
- subrepo: add status support for ignored files in git subrepos
win32: remove Mercurial.ini file from Inno Setup installer (issue4435)
2.3. hgweb
hgweb: allow viewing diffs against p1 or p2 for merge commits (issue3904)
2.4. extensions
- color: add support for colorizing git subrepo diffs
- color: add missing 'dim' in _effects
convert: on svn failure, note libsvn version (issue4043)
convert: replace revision references in messages if they are >= short hashes
convert: handle LookupError in mercurial_source.lookuprev()
- extdiff: reintroduce backward compatibility with manual quoting of parameters
histedit: add a test to show that issue4251 is fixed (issue4251)
largefiles: fix commit of a directory with no largefile changes (issue4330)
- largefiles: use 'default' path for pulling largefiles, not 'default-push'
- largefiles: enable subrepo support for add, forget, remove
- largefiles: show progress when checking standin hashes in outgoing changesets
- mq: smarter handling of plain headers
- patchbomb: don't honor whitespace and format-changing diffopts (BC)
- rebase: show more useful status information while rebasing
rebase: ensure rebase revision remains visible (issue4504)
extdiff: avoid unexpected quoting arguments for external tools (issue4463)
highlight: ignore Unicode's extra linebreaks (issue4291)
record: don't honor format-changing diffopts (issue4459)
- share: add option to share bookmarks
transplant: properly skip empty changeset (issue4423)
3. 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
4. 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
5. 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)
6. 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)
7. Mercurial 3.2 (2014-11-01)
This is a quarterly feature release.
7.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
7.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)
7.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)
7.4. hgweb
- hgweb: disable SSLv3 serving (BC)
hgweb: refresh repository using URL not path (issue4323)
8. 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
9. 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)
10. Mercurial 3.1 (2014-08-01)
10.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)
10.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)
10.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
10.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)
10.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
11. 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
12. 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
13. 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.
13.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
13.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
13.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)
13.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
14. 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
15. 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
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
16. Mercurial 2.9 (2014-02-01)
This is a regularly-scheduled feature release.
16.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)
16.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
16.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
16.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