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
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
1. Mercurial 2.9 (2014-02-01)
This is a regularly-scheduled feature release.
aliases: make "_checkshellalias()" invoke "findcmd()" with "strict=True"
backout: add a message after backout that need manual commit
backout: avoid update on simple case
bash_completion: add completion for deleting a shelve
bash_completion: add global support for -B|--bookmark
bash_completion: add global support for -b|--branch
bisect: --command without --noupdate should flag the parent rev it tested
bookmarks: allow push -B to create a new remote head (issue2372)
branchmap: cache open/closed branch head information
cat: increase perf when catting single files
changectx: increase perf of walk function
clone: do not turn hidden changeset public on publishing clone (issue3935)
convert: use branchmap to change default branch in destination (issue3469)
date: allow %z in format (issue4040)
diff: search beyond ancestor when detecting renames
hgweb: infinite scroll support for coal, gitweb, and monoblue styles
merge: consider successor changesets for a bare update
patch: add support for git delta hunks
phase: properly compute ancestors of --rev on push (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: --user/-u now works with record when ui.username not set (issue3857)
record: re-enable whitespace-ignoring options
relink: abort earlier when on different devices (issue3916)
strip: add faster revlog strip computation
subrepo: check phase of state in each subrepositories before committing
subrepo: make it possible to update to hidden subrepo revisions
subsettable: move from repoview to branchmap, the only place it's used
templater: selecting a style with no templates does not crash (issue4140)
update: consider successor changesets when moving active bookmark
url: added authuri when login information is requested (issue3209)
either because they themselves are not ready or because a
dependency isn't. This is annotated by
PYTHON_VERSIONS_INCOMPATIBLE= 33 # not yet ported as of x.y.z
or
PYTHON_VERSIONS_INCOMPATIBLE= 33 # py-foo, py-bar
respectively, please use the same style for other packages,
and check during updates.
Use versioned_dependencies.mk where applicable.
Use REPLACE_PYTHON instead of handcoded alternatives, where applicable.
Reorder Makefile sections into standard order, where applicable.
Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default
with the next commit.
Whitespace cleanups and other nits corrected, where necessary.
This is a regularly-scheduled bugfix release.
fileset, revset: do not use global parser object for thread safety
hgweb: avoid initialization race (issue3953)
mpatch: rewrite pointer overflow checks
This is a regularly-scheduled bugfix release.
bookmarks: consider successor changesets when moving bookmark (issue4015)
contrib: don't mention obsolete graphlog extension in mercurial.ini
contrib: promote strip extension over MQ in sample.hgrc
contrib: stop mentioning obsolete graphlog extension in sample.hgrc
convert: fix svn crash when svn.ra.get_log calls back with orig_paths=None
help: fix backwards bisect help example
help: use progress instead of mq as in 'hg help config' example
hgk: fix tag list parser (issue4101)
hgweb: ignore non numeric "revcount" parameter values (issue4091)
histedit: hold wlock and lock while in progress
largefiles: cache largefiles for update, also without printmessage
largefiles: don't crash on 'local renamed directory' actions
merge: move forgets to the beginning of the action list
minirst: do not interpret a directive as a literal block
minirst: find admonitions before pruning comments and adding margins
obsolete: stop doing membership test on list
parse_index2: fix crash on bad argument type (issue4110)
phase: better error message when --force is needed
rebase: fix rebase aborts when 'tip-1' is public (issue4082)
rebase: fix working copy location after a --collapse (issue4080)
share: fix unshare calling wrong repo.init() method
shelve: fix bad argument interaction with largefiles (issue4111)
shelve: unshelve using an unfiltered repository
strip: fix last unprotected mq reference (issue4097)
strip: hold wlock for entire duration
subrepo: sanitize non-hg subrepos
templater: fix escaping in nested string literals (issue4102)
templater: makes branches work correctly with stringify (issue4108)
templater: only recursively evaluate string literals as templates (issue4103)
unshelve: add tests for unknown files
unshelve: don't commit unknown files during unshelve (issue4113)
util: url keeps backslash in paths
util: warn when adding paths ending with \
This is a regularly scheduled feature release.
1.1. Core features
hgweb: add revset syntax support to search
hgweb: always run search when a query is entered (BC)
hgweb (paper theme): add infinite scrolling to graph
hgweb: show full date in rfc822 format in tooltips at shortlog page
proxy: allow wildcards in the no proxy list (issue1821)
pull: for pull --update with failed update, print hint if any
rebase: preserve working directory parent (BC)
sslutil: add a config knob to support TLS (default) or SSLv23 (BC) (issue4038)
templatefilters: add short format for age formatting
templater: support using templates with non-standard names from map file
update: add error message for dirty non-linear update with no rev
addremove: don't do full walks
log: make file log slow path usable on huge repos
subrepo: let the user choose to merge, keep local or keep remote subrepo revisions
1.2. Extension features
convert-internals: introduce hg.revs to replace hg.startrev and --rev with a revset
convert-internals: update source shamap when using filemap, just as when not using filemap
factotum: clean up keychain for multiple hg repository authentication
histedit: abort if there are multiple roots in "--outgoing" revisions
mq: extract strip function as its standalone extension (issue3824)
mq: look for modified subrepos when checking for local changes
rebase: remove bailifchanged check from pullrebase (BC)
shelve: add a shelve extension to save/restore working changes
1.3. Fixes
pager: honour internal aliases
patch: ensure valid git diffs if source/destination file is missing (issue4046)
patch: Fix nullid for binary git diffs (issue4054)
progress: stop getting stuck in a nested topic during a long inner step
rebase: handle bookmarks matching revset function names (issue3950)
rebase: preserve active bookmark when not at head (issue3813)
rebase: preserve metadata from grafts of changes (issue4001)
rebase: fix selection of base used when rebasing merge (issue4041)
ui: send password prompts to stderr again (issue4056)
Regularly scheduled bugfix release. This fixes significant regressions
from 2.7 in push/pull performance and SSL negotiation.
bundle: fix performance regression when bundling file changes (issue4031)
generaldelta: initialize basecache properly
help: use full name of extensions to look up them for keyword search
histedit: abort if there are multiple roots in "--outgoing" revisions
histedit: add more detailed help about "--outgoing"
histedit: suggest "histedit --abort" for inconsistent histedit state
httpclient: apply upstream revision da7579b034a4 to fix SSL problems (issue4038)
rebase: catch RepoLookupError at restoring rebase state for abort/continue
rebase: catch RepoLookupError at restoring rebase state for summary
repoview: have unfilteredpropertycache using the underlying cache
repoview: make propertycache.setcache compatible with repoview
revset: fix wrong keyword() behaviour for strings with spaces
sslutil: backed out changeset 074bd02352c0 (issue4038)
strip: set current bookmark to None if stripped
Mercurial 2.7 (2013-08-01)
Regularly scheduled feature release. This release contains an
important fix for a merge ancestor calculation regression in the
2.6 series.
ancestor: decrement ninteresting correctly (issue3984)
bookmarks: allow bookmark command to take multiple arguments
bookmarks: pull --update updates to active bookmark if it moved (issue4007)
bookmarks: update only proper bookmarks on push -r/-B (issue 3973)
changegroup: fix fastpath during commit
checklink: work around sshfs brain-damage (issue3636)
churn: split email aliases from the right
commands: add checks for unfinished operations (issue3955)
commit: enable --secret option
convert: catch empty origpaths in svn gettags (issue3941)
convert: fix bad conversion of copies when hg.startrev is specified
convert: handle changeset sorting errors without traceback (issue3961)
hgweb: fix incorrect way to count revisions in log (issue3977)
hgweb: run search instead of showing wrong error for ambigious identifier
histedit: don't clobber working copy on --abort if not on histedit cset
histedit: refuse to edit history that contains merges (issue3962)
import: cut commit messages at --- unconditionally (issue2148)
largefiles: overridematch() should replace the file path instead of extending (issue3934)
log: add a log style that is default+phase (issue3436)
paper: add line wrapping switch to file source view
paper: code selection without line numbers in file source view
paper: highlight line which is linked to in source view
progress: respect HGPLAIN
rebase: allow aborting when descendants detected
rebase: continue abort without strip for immutable csets (issue3997)
rebase: don't clobber wd on --abort when we've updated away (issue4009)
revert: make backup when unforgetting a file (issue3423)
revlog: handle hidden revs in _partialmatch (issue3979)
rollback: mark as deprecated
splicemap: improve error handling when parsing (issue2084)
splicemap: support paths with spaces in splicemap (issue3844)
sslutil: force SSLv3 on Python 2.6 and later (issue3905)
summary: augment output with info from extensions
templater: add strip function with chars as an extra argument
log: show style list when unknown style specified
tip: deprecate the tip command
update: add tracking of interrupted updates (issue3113)
worker: check problem state correctly (issue3982)
worker: properly report errors from worker processes (issue3982)
This is a regularly-scheduled bugfix release.
commit: amending with --close-branch (issue3445)
doc: make it easier to read how to enable extensions
doc: reword "config file" to "configuration file"
docs: change description to synopsis in hgrc.5
histedit: raise ImportError when demandloading is enabled
pathencode: fix hashmangle short dir limit (issue3958)
update: remove .hg/graftstate on clean (issue3970)
This is a regularly-scheduled bugfix release.
amend: complain more comprehensibly about subrepos
blackbox: fix blackbox causing exceptions in tests
blackbox: fix recording exit codes (issue3938)
dirstate: don't overnormalize for ui.slash
graft: refuse to commit an interrupted graft (issue3667)
help: fix role/option confusion in RST
help: stop documentation markup appearing in generated help
This is an unscheduled bugfix release to address some minor regressions in the 2.6 release.
convert: fix bug of wrong CVS path parsing without port number (issue3678)
help/config: note 64-bit Windows registry key used with 32-bit Python
hfs+: rewrite percent-escaper (issue3918)
hgignore: fix regression with hgignore directory matches (issue3921)
highlight: fix page layout with empty first and last lines
largefiles: check existence of the file with case awareness of the filesystem
largefiles: check unknown files with case awareness of the filesystem
pathencode: grow buffers to increase safety margin
revert: ensure that copies and renames are honored (issue3920)
subrepo: open files in 'rb' mode to read exact data in (issue3926)
windows: check target type before actual unlinking to follow POSIX semantics
This is a regularly scheduled feature release.
addremove: improve performance
amend: support amending merge changesets (issue3778)
ancestor: a new algorithm that is faster for nodes near tip
annotate: increase refcount of each revision correctly (issue3841)
applyupdates: assign variable before we try to use it (issue3855)
archive: raise error.Abort if the file pattern matches no files
bash_completion: allow remove to complete normal files
blackbox: new extension
bookmarks: don't allow integers as bookmark/branch/tag names
bookmarks: allow (re-)activating a bookmark on the current changeset
bookmarks: allow moving a bookmark forward to a descendant
bookmarks: moving the active bookmark deactivates it
bookmarks: fix bug that activated a bookmark even with -r passed
bookmarks: resolve divergent bookmark when moving across a branch
bookmarks: resolve divergent bookmarks when moving active bookmark forward
commit: allow closing "non-head" changesets
commit: show active bookmark in commit editor helper text
config: discard "%unset" values defined in the other files read in previously
convert/git: catch errors from modern git-ls-remote (issue3428)
convert: add closesort algorithm to mercurial sources
dates: support 'today' and 'yesterday' in parsedate (issue3764)
destroyed: invalidate phraserevs cache in all case (issue3858)
diff: fix binary file removals in git mode
dirstate: performance improvements
dispatch: exit with status 1 for an InterventionRequired exception (BC)
dispatch: print 'abort:' when a pre-command hook fails (BC)
export: clobber files with -o (BC) (issue3652)
export: export working directory parent by default
export: show 'Date' header in a format that also is readable for humans
extensions: obsolete and remove interhg extension
filesets: add eol predicate
grep: use re2 if possible
hgk: add support for phases
hgk: don't use fixed format for dates
hgk: update backgroud colour when Ttk is available
hgweb: generate HTML documentation
hgweb: teach archive how to download a specific directory or file
histedit: allow "-" as a command file
histedit: handle multiple spaces between action and hash (issue3893)
histedit: make "hg histedit" sensitive to branch in URL
histedit: properly handle --continue on empty fold
histedit: support editing of the first commit (issue3767)
httppeer: avoid large dumps when we don't see an hgweb repo
icasefs: rewrite case-folding collision detection (issue3452)
import: don't rollback on failed import --exact (issue3616)
largefiles: don't cache largefiles for pulled heads by default
largefiles: improve reuse of HTTP connections
largefiles: introduce lfpull command for pulling missing largefiles
largefiles: introduce pull --lfrev option
largefiles: introduce pulled() revset expression for use in --lfrev
largefiles: quiet (and document) undefined name errors (issue3886)
largefiles: stat all largefiles in one batch before downloading
largefiles: use repo.wwrite for writing standins (issue3909)
log: fix behavior with empty repositories (issue3497)
merge: apply non-interactive working dir updates in parallel
mergetools: avoid losing the merged version with meld
mergetools: vimdiff issues a warning explaining how to abort
mq: comply with filtering when injecting fake tags (issue3812)
mq: do not inherit settings form base repo in mqrepo (Fixes issue2358)
outgoing: fix possible filtering crash in outgoing (issue3814)
pager: catch ctrl-c on exit (issue3834)
date: understand "now" as a shortcut for the current time
parsers: a C implementation of the new ancestors algorithm
pull: list bookmarks before pulling changesets (issue3873)
push: make locking of source optional (issue3684)
rebase: check no-op before checking phase (issue3891)
rebase: fix --collapse when a file was added then removed
record: abort on malformed patches instead of crashing
revset: change ancestor to accept 0 or more arguments (issue3750)
revset: don't abort when regex to tag() matches nothing (issue3850)
sadclown: another test failure eluded bos
scheme: don't crash on invalid URLs
scmutil: rewrite dirs in C, use if available
setup: make error message for missing Python headers more helpful
smtp: use 465 as default port for SMTPS
smtp: verify the certificate of the SMTP server for STARTTLS/SMTPS
sshpeer: store subprocess so it cleans up correctly
sslutil: abort if peer certificate is not verified for secure use
subrepo: clone of git sub-repository creates incorrect git branch (issue3870)
subrepo: do not push mercurial subrepos whose store is clean
subrepo: fix exception on revert when "all" option is omitted
summary: make "incoming" information sensitive to branch in URL (issue3830)
summary: make "outgoing" information sensitive to branch in URL (issue3829)
summary: show active bookmark even if not at current changeset
tags: update tag type only if tag node is updated (issue3911)
templatekw: add default styles for hybrid types (issue3887)
templater: add get() function to access dict element (e.g. extra)
unionrepo: read-only operations on a union of two localrepos
win32: use explicit path to "python.exe" only if it exists
This fixes an urgent regression in merging with subrepos introduced in 2.5.
applyupdates: assign variable before we try to use it (issue3855)
setup.py: properly discard trust warning
hgweb: show correct error message for i18n environment
localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
rebase: restore active bookmark after rebase --continue
setup.py: add metadata to register package to PyPI
setup.py: ignore warnings from obsolete
zsh_completion: fix trailing carriage return spoiling tag completion
bundle: treat branches created newly on the local correctly (issue3828)
largefiles: avoid rechecking hashes when avoidable
largefiles: don't let update leave wrong largefiles in wd if fetch fails
largefiles: fix off-by-one error on pull --all-largefiles
largefiles: fix download of largefiles from an empty list of changesets
largefiles: missing largefiles should not be committed as removed
mergetools: vimdiff issue a warning explaining how to abort
outgoing: fix possible filtering crash in outgoing (issue3814)
rebase: fix potential infinite loop in complex rename situation (issue3843)
This is a non-scheduled bugfix release.
hgk: support the old way of getting the current Ttk theme (issue3808)
hgweb.cgi: fix internal WSGI emulation (issue3804)
hgweb: make 'summary' work with hidden changesets (issue3810)
incoming: fix incoming when a local head is remotely filtered (issue3805)
largefiles: don't crash when trying to find default dest for url without path
rebase: derive node from target rev (issue3802)
This is a regularly-scheduled feature release.
1.1. Core features
branchmap: improved performances
bundle: add revset expression to show bundle contents (issue3487)
dirstate: implement unix statfiles in C
hgweb: add (Atom) subscribe links to the repository index
hgweb: add "URL breadcrumbs"
hgweb: add branches RSS and Atom feeds
hgweb: secret changeset are excluded from html view (3614 )
serve: use chunked encoding in hgweb responses
pathencode: implement both basic and hashed encoding in C
subrepo: append subrepo path to subrepo error messages
validate: check for spurious incoming filelog entries
hgweb: allow hgweb's archive to recurse into subrepos
1.2. Changeset Evolution
Major progress toward ChangesetEvolution were done.
hidden changesets are now properly ignored by all commands
a global --hidden flag is added to give access to hidden changesets
rewriting a changeset but not its descendants is now allowed; this leaves unstable changeset behind
we now detect *divergent* changesets. The third and last kind of obsolescence related troubles. divergent() revset is added
a troubled() revset have been added
branchmap for of *visible* and *served* changeset are now cached on disk. This is a major performance improvements
performance improvements of most evolution related algorithm
1.3. Extension features
color: add template label function
convert: add config option to use the local time zone
convert: add support for converting git submodule (issue3528)
hgk: use Ttk instead of plain Tk
inotify: don't fall over just because of a dangling symlink
largefiles: fix revert removing a largefile from a merge
largefiles: fix update from a merge with removed files
largefiles: make log match largefiles in the non-standin location too
largefiles: make update with backup files in .hglf slightly less broken
largefiles: rename 'admin' to more descriptive 'lfstoredir
rebase: performance improvements
rebase: rebase set with multiple roots are now handled by the --rev option
record: use patch.diffopts to account for user diffopts
share: always set default path to work with subrepos (issue3518)
zsh_completion: add completion of branch names
1.4. Fixes
commands: 'hg bookmark NAME' should work even with ui.strict=True
copies: do not track backward copies, only renames (issue3739)
destroyed: keep the filecache in sync with __dict__ (issue3335, issue3693, issue3743)
grep: don't search past the end of the searched string
hgweb: properly returns 404 for unknown revision (instead of 500)
histedit: proper phase conservation (issue3724)
histedit: prevents obsolescence cycle (issue3681)
hook: disable demandimport before importing hooks
mq: don't fail when removing a patch without patch file from series file
mq: fix qpop of working directory parent patch when not at qtip
zeroconf: use port from server instead of picking port from config (issue3746)
update: update to current bookmark if it moved out from under us (issue3682)
bookmarks: show active bookmark even if not at working dir
largefiles: let wirestore._stat return stats as expected by remotestore verify
largefiles: adapt verify to batched remote statlfile (issue3780)
largefiles: don't allow corruption to propagate after detection
largefiles: don't verify largefile hashes on servers when processing statlfile
largefiles: allow use of urls with #revision
largefiles: fix commit when using relative paths from subdirectory
largefiles: fix cat when using relative paths from subdirectory
histedit: prevent parent guessed via --outgoing from being a revset (issue3770)
rebase: delete divergent bookmarks on destination (issue3685)
hgwebdir: use web.prefix when creating url breadcrumbs (issue3790)
subrepo: allow skipping courtesy phase sync (issue3781)
merge: .hgsubstate is special as merge destination, not as merge source
merge: improved handling of symlinks
This is a regularly-scheduled bugfix release.
amend: invalidate dirstate in case of failure (issue3670)
amend: prevent loss of bookmark on failed amend
bookmarks: fix head selection for merge with two bookmarked heads
bundlerepo: don't return the peer without bundlerepo from getremotechanges
dirstate: don't rename branch file if writing it failed
dirstate: remove obsolete comment from setbranch
hgweb: avoid generator exhaustion with branches
hgweb: fix iterator reuse in atom feed generation
hgwebdir: honor web.templates and web.static for static files (issue3734)
largefiles revert: update lfdirstate with result from first cleanliness check
largefiles status: update lfdirstate with result from cleanliness check
largefiles: commit directories that only contain largefiles (issue3548)
largefiles: don't walk through all ignored files
paper: sanity-check page feed links
scmutil: don't try to match modes on filesystems without modes (issue3740)
zeroconf: use port from server instead of picking port from config (issue3746)
This is a regularly-schedule bugfix release.
amend: force editor only if old message is reused (issue3698)
grep: don't search past the end of the searched string
hooks: be even more forgiven of non-fd descriptors (issue3711)
hooks: delay I/O redirection until we actually run a hook (issue3711)
phases: fix missing "error" module import (issue3707)
rebase: fix pull --rev options clashing with --rebase (issue3619)
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
update: allow update to existing branches with invalid names (issue3710)
util: make chunkbuffer non-quadratic on Windows
Mercurial 2.4 (2012-11-1)
This is a regularly-scheduled feature release.
1.1. Core features
amend: support for ChangesetEvolution if enabled
bookmarks: deactivate current bookmark if no name is given
bookmarks: teach the -r option to use revsets
bookmarks: disallow bookmarks named 'tip', '.', or 'null'
clone: substantial speedup to clone on repo with a lots of heads (issue3378)
clone: activate bookmark specified with --updaterev
clone: update to @ bookmark if it exists
log: substantial speedup for untracked files (issue1340)
revsets: add branchpoint() function
resolve: commit the changes after each item resolve (issue3638)
subrepo, hghave: use "svn --version --quiet" to determine version number
subrepo: setting LC_MESSAGES only works if LC_ALL is empty or unset
templatefilters: add parameterized date method
templatefilters: add parameterized fill function
templatefilters: avoid traceback caused by bogus date input (issue3344)
templatekw: add p1rev, p1node, p2rev, p2node keywords
templatekw: add parent1, parent1node, parent2, parent2node keywords
templater: abort when a template filter raises an exception (issue2987)
templater: add if/ifeq conditionals
templater: add sub() function
templating: make new-style templating features work with command line lists
bookmarks: take ChangesetEvolution into account when updating (issue3561)
speedup various operation related to ChangesetEvolution
add detection of changeset bumped by ChangesetEvolution
1.2. Extension features
color: add additional changeset.phase label to log.changeset and log.parent
color: enabled color support for export command (issue1507)
color: support for all grep fields
contrib: add a commit synthesizer for reproducing scaling problems
histedit: refuse to edit public changeset
histedit: replaces patching logic by merges
histedit: support for ChangesetEvolution if enabled
largefiles: always create the cache and standin directories when cloning
largefiles: distinguish "no remote repo" from "no files to upload" (issue3651)
largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)
mq: improve qqueue message with patches applied (issue3036)
mq: update bookmarks during qrefresh
notify: support revset selection for subscriptions
rebase: support for ChangesetEvolution if enabled
record: checks for valid username before starting recording process (issue3456)
record: fix display of non-ASCII names in chunk selection
1.3. Fixes
amend: fix incompatibity between logfile and message option (issue3675)
amend: wrap all commit operations in a single transaction
bookmarks: abort when incompatible options are used (issue3663)
bookmarks: avoid redundant creation/assignment of "validdests" in "validdest()"
bookmarks: check bookmark format during rename (issue3662)
bookmarks: when @ bookmark diverges, don't double the @ sign (BC)
bookmark: prevent crashing when a successor is unknown locally (issue3680)
clone: activate @ bookmark if updating to it
clone: don't %-escape the default destination (issue3145)
clone: make sure to use "@" as bookmark and "default" as branch (issue3677) (BC)
clone: print bookmark name when clone activates a bookmark
commands: don't infer repo for commands like update (issue2748)
convert: normalize paths in filemaps (issue3612)
dirstate: handle large dates and times with masking (issue2608)
dirstate: handle dangling junctions on windows (issue2579)
filemerge: use util.shellquote when calling merge (issue3581)
hgweb: make the escape filter remove null characters (issue2567)
http2: make it possible to connect w/o ssl on port 443
icasefs: make case-folding collision detection as deletion aware (issue3648)
largefiles: don't copy largefiles from working dir to the store while converting
largefiles: respect the rev when reading standins in copytostore() (issue3630)
largefiles: use 'default' instead of 'default-push' when pulling (issue3584)
mq: fix qrefresh case sensitivity (issue3271)
patchbomb: respect --in-reply-to for all mails if no intro message is sent
remove: don't return error on directories with tracked files
revset: accept @ in unquoted symbols (issue3686)
scmutil: add mustaudit delegation to filtervfs (issue3673)
subrepo: only do clean update when overwrite is set (issue3276)
subrepo: subrepo isolation, pass baseui when cloning a new subrepo (issue2904)
update: check for missing files with --check (issue3595) (BC)
url: use open and not url.open for local files (issue3624)
verify: fix all doubled-slash sites (issue3665)
wireproto: fix pushkey hook failure and output on remote http repo
clone: don't fail with --update for non-local clones (issue3578)
commit: normalize filenames when checking explicit files (issue3576)
fileset: actually implement 'minusset'
fileset: do not traceback on invalid grep pattern
fileset: exclude deleted files from matchctx.existing()
fileset: fix generator vs list bug in fast path
fileset: matchctx.existing() must consider ignored files
fileset: matchctx.existing() must consider unknown files
largefiles: adjust localstore to handle batch statlfile requests (issue3583)
merge: handle case when heads are all bookmarks
obsolete: import modules within mercurial/ without "from mercurial"
revlog: don't try to partialmatch strings those length > 40
rollback: write dirstate branch with correct encoding
store: only one kind of OSError means "nonexistent entry"
store: sort the results of fncachestore.datafiles()
strip: fix revset usage (issue3604)
templater: handle a missing value correctly
verify: do not choke on valid changelog without manifest
wix: bump MSI based installers to use Python 2.7
This is a regularly-scheduled feature release with numerous improvements and bugfixes.
1.1. Core features
help: add --keyword (-k) for searching help
hgweb: side-by-side comparison functionality
log: support --graph without graphlog extension
push: accept revset argument for --rev
merge: bookmarks will no longer automatically merge with unnamed heads or other bookmarks. Instead it picks heads with diverging bookmarks.
introduce ChangesetsObsolescence concept (experimental)
bookmarks: allow existing remote bookmarks to become heads when pushing
bookmarks: pull new bookmarks from remote by default (backward incompatible change)
bookmarks: delete divergent bookmarks on merge
bisect: set HG_NODE when runing a command
graft: allow -r to specify revisions
graft: implement --log (issue3438)
graft: remark on empty graft
hooks: print out more information when loading a python hook fails
identity: show trailing '+' for dirty subrepos (issue2839)
incoming/outgoing: handle --graph in core
merge: warn about file deleted in one branch and renamed in other (issue3074)
Mercurial can now identify third-party extensions as sources of tracebacks
outgoing: accept revset argument for --rev
performance improvement on branchy repo: incrementaly update branchcache
performance improvement on huge file tree: add a C function to pack the dirstate
performance improvement for huge .hgignore: process regex with re2 bindings if available
revset: add "diff" field to "matching" predicate
revset: add "converted" predicate to find converted changesets
revset: add "origin" and "destination" predicates, to get graft, transplant or rebase origins or destinations.
revset: add "extra" predicate to match changesets extra fields (issue2767)
revset: add pattern matching to "bookmarks/branch/extra/tag/user" predicated
1.2. Extension features
acl: use of "!" prefix in user or group names
children: mark extension as deprecated
convert/svn: handle non-local svn destination paths (issue3142)
convert: accept Subversion 'file:///c%3A/svnrepo' syntax on Windows
fetch: mark extension as deprecated
graphlog: feature is now into core
histedit: new extension for interactive history editing
hg-ssh: add read-only flag
largefiles: add --all-largefiles flag to pull and clone (issue3188)
largefiles: improve performance by batching statlfile requests when pushing a largefiles repo (issue3386)
largefiles: no longer attempt to clone all largefiles to non-local destinations
largefiles: optimize performance when updating (issue3440)
largefiles: support revsets for cat, outgoing --large and revert
mq: introduce qpush/qpop/qgoto --keep-changes
strip: introduce -B option to remove a bookmark
rebase: allow collapsing branches in place (issue3111)
rebase: make --dest understand revsets
rebase: drop the infamous --detach option: rebase now behave with --source and --rev as expectable. It may no longer add second parent to rebased changeset (backward compatible change)
transplant: handle non-empty patches doing nothing (issue2806)
transplant: manually transplant pullable changesets with --log
1.3. Fixes
bisect: fix O(n**2) behaviour (issue3382)
bookmarks: fix push of moved bookmark when creating new branch heads
case insensitive file system can no longer be confused by -R on (issue2167)
copies: one fix related to directory rename detection (issue3511)
convert: check for failed svn import in debugsvnlog and abort cleanly
convert: ignore svn:executable for subversion targets without exec bit support
convert: keep branch switching merges with ancestors (issue3340)
convert: make filemap renames consistently override revision renames
debugrevlog: fix a bug with empty repository (issue3537)
graphlog: don't truncate template value at last \n
httprepo: ensure Content-Type header exists when pushing data
largefiles: fix a traceback when addremove follows a remove (issue3507)
largefiles: fix a traceback when archiving a subrepo in a subrepo
largefiles: fix addremove when largefile is missing (issue3227)
largefiles: fix addremove with -R option
largefiles: fix exception hack for i18n (issue3197)
largefiles: fix path handling for cp/mv (issue3516)
largefiles: archive -S now store largefiles instead of standins
largefiles: fix hg addremove when already removed largefile exists (issue3364)
merge: do not warn about copy and rename in the same transaction (issue2113)
mq: add ".hgsubstate" to patch target list only if it is not listed up yet
mq: create patch file after commit to import diff of ".hgsubstate" at qrefresh
pager: work around bug in python 2.4's subprocess module (issue3533):
revlog: zlib.error are no longer sent to the user (issue3424)
tag: don't allow tagging the null revision (issue1915)
This is a regularly-scheduled bugfix release.
amend: disable hooks when creating intermediate commit (issue3501)
archive: make progress only show files that are actually archived
bookmarks: correctly update current bookmarks on rebase (issue2277)
bugzilla: stop bugs always being marked as fixed in xmlrpc (issue3484)
graft: don't drop the second parent on unsuccessful merge (issue3498)
hgweb: fixes linebreak location in gitweb filediff.tmpl view
rebase: improve error message on improper phases
record: fix display of non-ASCII names
statichttprepo: don't send Range header when requesting entire file
strip: update help to state that you can strip public changeset
subrepo/svn: make rev number retrieval compatible with svn 1.5 (issue2968)
subrepo: support Git being named "git.cmd" on Windows (issue3173)
subrepo: warn user if Git is not version 1.6.0 or higher
update: fix help regarding update to ancestor
This is a regularly-scheduled bugfix release.
addremove: document default similarity behavior (issue3429)
alias: inherit command optionalrepo flag (issue3298)
amend: preserve extra dict (issue3430)
bisect: save current state before running a command
bugzilla: fix transport initialization on python 2.4
build: fix hgrc manpage building with docutils 0.9
bundle: make bundles more portable (isue3441)
changelog: ensure that nodecache is valid (issue3428)
hg-ssh: exit with 255 instead of -1 on error
hgweb: fix filediff base calculation
largefiles: fix "hg status dir" missing regular files (issue3421)
largefiles: fix deletion of multiple missing largefiles (issue3329)
largefiles: follow normal codepath for addremove if non-largefiles repo (issue3249)
largefiles: in putlfile, ensure tempfile's directory exists prior to creation
largefiles: use wlock for lfconvert (issue3444)
localrepo: clear _filecache earlier to really force reloading (issue3462)
match: make 'match.files()' return list object always
mq: add --no-backup for qpush/qpop/qgoto
mq: backup local changes in qpop --force (issue3433)
mq: backup local changes in qpush --force
mq: qimport need wlock for --push - do that after releasing lock
osutil: handle deletion race with readdir/stat (issue3463)
pager: check if signal.SIGPIPE exists
pager: preserve Hg's exit code (and fix Windows support) (issue3225)
pager: remove quiet flag
paper, monoblue: link correctly to lines in annotate view
parsers: fix refcount bug on corrupt index
patch: fix segfault against unified diffs which start line is zero
patch: keep patching after missing copy source (issue3480)
posix: workaround lack of TIOCGWINSZ on Irix (issue3449)
revpair: handle odd ranges (issue3474)
revset: explicitely tag alias arguments for expansion
revset: fix infinite alias expansion detection
revset: fix traceback for bogus revisions in id(rev)
revset: make matching() preserve input revision order
scmutil: seen.union should be seen.update (issue3476)
subrepo: do not traceback on .hgsubstate parsing errors
subrepo: ignore blank lines in .hgsubstate (issue3424)
tag: run commit hook when lock is released (issue3344)
templater: handle SyntaxError when parsing ui.logtemplate
util: fix bad variable use in bytecount introduced by f0f7f3fab315
win32: fix encoding handling for registry strings (issue3467)
This is an unscheduled bugfix release to fix a signficant memory leak in hgweb.
bookmarks: catch the proper exception for missing revisions
help: add reference to template help (issue3413)
help: added description for the web.collapse setting
largefiles: fix commit of both largefiles and non-largefiles (issue3354)
parsers: fix refcount leak, simplify init of index (issue3417)
1. Mercurial 2.2 (2012-05-01)
This is a regularly-scheduled feature release. The most notable
feature is a new safe '--amend' option for commit using our new
phases infrastructure. There are also a number of signficant
performance improvements for large repositories and improvements
for case-folding filesystems. See UpgradeNotes for minor compatibility
notes.
1.1. Core features
commit: add --amend option
fileset: add "subrepo" fileset symbol
graft: add --dry-run support (issue3362)
hgweb: add support for branch width and color settings
hgweb: add block numbers to diff regions and related links
hgweb: support multi-level repository indexes by enabling descend and collapse
merge: improve performance with lots of unknown files
parsers: incrementally parse the revlog index in C
plan9: add support for plan9
push/pull: improve performance for partial transfers
push: decompress in larger chunks for better performance on the server
clone: add server config option to prefer uncompressed clone
revert: add support for reverting subrepos
revset: add "matching" keyword
store: speed up read and write of large fncache files
ui: optionally quiesce ssl verification warnings on python 2.5
1.2. Extension features
bugzilla: add xmlrpcemail submission for Bugzilla 3.6 email interface
bugzilla: allow change comment to mark bugs fixed
bugzilla: extract optional hours from commit message and update bug time
bugzilla: modify access interface to include new bug states
graphlog: add all log options to glog command
patchbomb: add --body flag to send patches as inline message body text
record: allow splitting of hunks by manually editing patches
transplant: permit merge changesets via --parent
1.3. Fixes
alias: fix shell alias documentation (issue3374)
archive: make it work with svn subrepos (issue3308)
branchmap: server should not advertise secret changeset in branchmap (Issue3303)
clone: always close source repository (issue2491)
commit: abort on merge with missing files (BC)
config: discard UTF-8 BOM if found
convert/bzr: convert all branches (issue3229) (BC)
convert/bzr: expect unicode metadata, encode in UTF-8 (issue3232)
convert/bzr: handle empty bzr repositories (issue3233)
convert/bzr: ignore nested repos when listing branches (issue3254)
convert/svn: do not try converting empty head revisions (issue3347)
convert/svn: make svn sink work with svn 1.7
convert: support non-annotated tags in git backend
dirstate: preserve path components case on renames (issue3402)
export: catch exporting empty revsets (issue3353)
icasefs: make case-folding collision detection rename aware (issue3370)
inotify: catch SignalInterrupt during shutdown (issue3351)
journal: use tryread helper to backup files (issue3375)
largefiles: fix cat for largefiles (issue3352)
largefiles: fix status -S reporting of subrepos (issue3231)
largefiles: hide .hglf/ prefix for largefiles in hgweb
largefiles: notice dirty large files in a subrepo
largefiles: only update changed largefiles when transplanting
largefiles: optimize update speed by only updating changed largefiles
localrepo: add setparents() to adjust dirstate copies (issue3407)
mdiff: fix diff header generation for files with spaces (issue3357)
merge: check for untracked files more precisely (issue3400)
merge: fix unknown file merge detection for case-folding systems
patch: be more tolerant with "Parent" header (issue3356)
patch: be more tolerant with EOLs in binary diffs (issue2870)
patch: fix patch hunk/metdata synchronization (issue3384)
phase: when phase cannot be reduced, hint at --force and return 1 (BC)
posix: disable cygwin's symlink emulation (BC)
posix: ignore execution bit in cygwin (issue3301)
pure/osutil: use Python's msvcrt module (issue3380)
rebase: preserve mq series order, guarded patches (issue2849)
rebase: skip resolved but emptied revisions
revset: fix O(n**2) behaviour of bisect() (issue3381)
revset: fix adds/modifies/removes and patterns (issue3403)
revset: fix alias substitution recursion (issue3240)
subrepo/svn: abort on commit with missing file (issue3029)
subrepo/svn: fix checked out rev number retrieval (issue2968)
subrepo: fix default implementation of forget() (issue3404)
subrepo: rewrite handling of subrepo state at commit (issue2403)
templates/filters: extracting the user portion of an email address (BC)
transplant: do not rollback on patching error (issue3379)
update: fix case-collision with a clean wd and no --clean
update: make --check abort with dirty subrepos
update: use normal update path with --check (issue2450)
wireprotocol: use visibleheads as reference while unbundling (issue 3303)
This is a regularly-scheduled bugfix release.
alias: abort on missing positional args (issue3331)
aliases: use empty string for missing position parameters (issue3331)
bookmarks: clone non-divergent bookmarks with @ in them
convert/git: abort if git submodules are detected (issue2150)
convert: deal with empty splicemap path (issue3311)
dirstate: avoid normalizing letter case on icasefs for exact match (issue3340)
dirstate: fix some problems for recursive case normalization (issue3342)
dirstate: normalize case of directory components
extdiff: escape filenames with vim/DirDiff and make quoting work with Windows
filemerge: remove temporary files when using internal:dump as merge-tool
filemerge: restore default prompt for binary/symlink lost in 83925d3a4559
icasefs: use case preserved root for 'util.fspath()' invocation (issue3302)
largefiles: suppress unexpected warning of 'hg status' for removed files
localrepo: fix unpushable repos when using bookmarks (issue3317)
merge: accept missing revisions in symlink flag merge (issue3316)
merge: handle linear update to symlink correctly (issue3316)
mq: fix qpush --move with comments in series file between applied patches
qfinish: comply with the phases.new-commit option in secret mode (issue3335)
rebase: move bookmarks as needed with pull --rebase (issue3285)
rebase: properly calculate descendant set when aborting (issue3332)
rename: handle case-changing (issue1717)
setup.py: don't call splitlines twice on the output of xcodebuild (issue3277)
strip: enhance repair.strip to receive a list of nodes (issue3299)
strip: ignore -n (issue3326) (BC)
wix: add phases help text and two more translations (issue3288)
This is a regularly-scheduled bugfix release.
bdiff: fix malloc(0) issue in fixws()
bugzilla: stop XMLRPC requests from requesting gzipped responses
bundlerepo: bundle repos should be non-publishing (issue3266)
cmdserver: invalidate the dirstate when running commands (issue3271)
context: make workingctx.forget() really warn about untracked files
convert: ignore blank lines in mapfiles (issue3286)
convert: tolerate spaces between splicemap parent ids (issue3203)
convert: use splicemap entries when sorting revisions (issue1748)
dirstate: filecacheify _ignore (issue3278)
fetch: use update rather than clean when updating (issue3246)
forget: show warning messages for forgetting in subrepo correctly
graft: use proper revisions for copy detection (issue3265)
import: handle git renames and --similarity (issue3187)
largefiles: check whether specified patterns are related to largefiles strictly
largefiles: don't break filesets
largefiles: only cache largefiles in new heads
largefiles: use repo.store.createmode for new files in .hg/largefiles
localrepo: clear _filecache on rollback (issue3261)
localrepo: reset _phasesdirty flag after writing
localrepo: use 'changectx.dirs()' in 'status()' for directory patterns
log: fix --follow FILE ancestry calculation
log: remove caching of all visited revisions (issue3253)
log: restore cache used by --copies
mdiff: adjust hunk offsets with --ignore-blank-lines (issue3234)
mq: fix qapplied --last and qprev documentation (issue3282)
mq: fix qnext when all remaining patches are guarded
mq: make qimport --push push all imported patches (issue3130)
mq: make qprev return the previous applied patch (issue3245)
mq: restore _branchtags() fast path (issue3223)
patch: fix fuzzing of hunks without previous lines (issue3264)
patch: fuzz more aggressively to match patch(1) behaviour
pull: backout change to return code
scmutil: update cached copy when filecached attribute is assigned (issue3263)
setup: handle output from Apple's Xcode 4.3 better (issue3277)
subrepo: fix for merge inconsistencies
update: delete bookmarks.current when explicitly updating to a rev (issue3276)
update: don't move the active bookmark if a rev is specified with -r
Mercurial 2.1 (2012-02-01)
This is a regularly-scheduled feature release. See UpgradeNotes for some minor compatibility notes.
1.1. Major features
* Changesets now have a phase attribute, which tracks what changesets are safe to modify (see Phases)
1.2. Core changes
* annotate: support diff whitespace filtering flags (issue3030)
* bookmarks: automatically advance bookmark on bare update (BC) (issue2894)
* bookmarks: shadow divergent bookmarks of foo with foo@n
* copies: improved copy detection for diff and status
* hooks: new priority specifier to control ordering
* id: add command line options for handling ssh and https urls
* push: propagate --new-branch and --ssh options when pushing subrepos
* revset: add remote() predicate to lookup remote revisions
* subrepo: support explicit add and forget of files in subrepos
1.3. Extension changes
* bugzilla: make XMLRPC interface support http and https access
* largefiles: add --normal option to hg add (issue3061)
* notify: add option for writing to mbox
* rebase: add a "D" short option for detach
* rebase: allow --detach when --rev is used
* win32mbcs: allow win32mbcs extension to be enabled on cygwin platform
* mq: add secret phase setting
1.4. Bug fixes
* hgcia: fix diffstat support
* largefiles: add error checking to tags conversion (issue3092)
* largefiles: add tests for uncovered codepaths (issue3092)
* largefiles: check if largefile could be found when archiving (issue3193)
* largefiles: correctly download new largefiles when merging
* largefiles: correctly handle dirstate status when rebasing
* largefiles: correctly handle newly added largefile on other side of merge
* largefiles: display remote errors from putlfile (issue3123) (issue3149)
* largefiles: don't reference uninitialized variable (issue3092)
* largefiles: fix caching largefiles from an aliased repo (issue3212)
* largefiles: fix confusion upon removal of added largefile (issue3176)
* largefiles: fix inappropriate locking (issue3182)
* largefiles: fix output of hg summary (issue3060)
* largefiles: cache new largefiles for new heads when pulling
* largefiles: implement addremove (issue3064)
* largefiles: optimize performance of status on largefiles repos (issue3136)
* largefiles: optimize status when files are specified (issue3144)
* largefiles: remove empty directories upon update (issue3202)
* largefiles: fix addremove when no largefiles are specified
* largefiles: fix revert on missing largefile (issue3217)
* largefiles: fix transplant for all cases (issue3192)
* mail: use quoted-printable for mime encoding to avoid too long lines (issue3075)
* merge: give a special message for internal:merge failure (issue3105)
* rebase: reinstate old-style rev spec support for the source and base (issue3181)
* ssh: quote remote paths (issue2983)
* sslutil: abort properly if no certificate received for https connection
* sslutil: show fingerprint when cacerts validation fails
* status: support revsets with --change
* subrepo: avoid syncing bookmarks twice on clone (issue3191)
* tag: invalidate tag cache immediately after adding new tag (issue3210)
* util: don't encode ':' in url paths
* bundlerepo: try to find containing repo on creation (issue1812)
* convert: subversion convert abort on revision not found (issue3205)
* discovery: fix regression when checking heads for pre 1.4 client (issue3218)
* merge: defer symlink flag merging to filemerge (issue3200)
* patch: a little bit more robust line counting on diff --stat (issue3183)
* push: return 1 if no changes found (issue3228)
* qpush: avoid trying to manage existing history (issue2218)
* revsets: include the correct first ancestor change for follow(file)
* revsets: filesets now work correctly inside of revsets
This is a regularly-scheduled bug-fix release.
alias: shortcut command matching so shadowing works properly (issue3104)
branch: warn on branching
changelog: handle decoding of NULs in extra more carefully (issue3156)
convert: improve exception reporting for SVN logstream
diff: don't crash when diffing a revision with a deleted subrepo (issue3153)
fetch: fix unneeded commit when no merge attempted (issue2847)
fetch: patch cornercase in children calculation (issue2773)
largefiles: copy files in binary mode (issue3164)
largefiles: don't require a user cache (issue3088) (issue3155)
largefiles: fix 'hg status' abort after merge
largefiles: handle merges between normal files and largefiles (issue3084)
merge: check filename case collision between changesets for branch merging
pathauditor: switch normcase logic according to case sensitivity of filesystem
progress: check for ui.quiet and ui.debugflag before we write
rollback: always call destroyed() (regression from 1.9)
util: fix url.str() for windows file URLs
windows: use upper() instead of lower() or os.path.normcase()
This is a regularly-scheduled bug-fix release.
alias: shortcut command matching show shadowing works properly (issue3104)
bundlerepo: don't write branch cache to disk
clone: don't save user's password in .hg/hgrc (issue3122)
convert/bzr: correctly handle divergent nested renames (issue3089)
convert/bzr: fix test of divergent nested renames for bzr 1.x
convert/svn: fix URL quoting issue with svn 1.7
convert: handle trailing slashes in filemap better (issue3124)
diff: '\ No newline at end of file' is also not part of the header
diff: --ignore-blank-lines was too enthusiastic
dirstate: fix case-folding identity for traditional Unix
graft: disallow grafting grafted csets in specific situations (issue3091)
graft: preserve original source in subsequent grafts
hook: flush stdout before redirecting to stderr
import: fix parent selection when importing merges
largefiles: ensure destination directory exists before findfile links to there
largefiles: file storage should be relative to repo, not relative to cwd
largefiles: fix 'hg clone . ../foo' OSError abort
largefiles: fix rename (issue3093)
largefiles: treat status of cache missed largefiles as "missing" correctly
largefiles: use "ui.configlist()" to get largefiles.patterns configuration
largefiles: write .hg/largefiles/ files atomically
makedate: wrong timezone offset if DST rules changed this year (issue2511)
mdiff/patch: fix bad hunk handling for unified diffs with zero context
posix: add extended support for OS X path folding
posix: fix findexe() to check for file type and access
rebase: ensure target is not taken as external (issue3085)
rebase: treat nullmerge as a special case in rebasestate (issue3046)
revset: balance %l or-expressions (issue3129)
revset: follow(nosuchfile) should give an empty set (issue3114)
subrepo: fix git status false positive (issue3109)
subrepo: use correct paths for subrepos with ..-relative paths on windows
update: don't clobber untracked files with wrong casing
url: handle file://localhost/c:/foo "correctly"
1.1. Major features
New core graft command (similar to transplant extension)
New largefiles extension
1.2. Core changes
commit: abort when there are uncommitted subrepos, use the -S option to recurse
help: most commands now have usage examples with help -v
import: add --edit switch
revset: add more keywords for bisection
revert: introduce short option -C for --no-backup
log: add new 'bisect' style that prints the bisection status
hgweb: add a "web/logoimg" setting to customize the web logo image
subrepo: pull revisions on demand when archiving hg subrepos
1.3. Extension changes
color: add styles for tags
convert: added bookmarks support in filemap
eol: add new eol.fix-trailing-newline setting
eol: eol.only-consistent can now be specified in .hgeol
export: add %m to file format string (first line of the commit message)
mq: make qqueue print current queue name
rebase: add --edit switch
rebase: add --rev option to rebase
rebase: allow rebase on ancestor
share: introduce unshare command
transplant: add --edit option
1.4. Bug fixes
alias: don't shadow commands that we only partially matched (issue2993) (BC)
commit: suppress spurious new head message for duplicate commit (issue2893)
contrib: some support for named branches in zsh_completion (issue2988)
progress: add a changedelay to prevent parallel topics from flapping (issue2698)
rebase: allow rebase to ancestor (issue3010)
rollback: avoid unsafe rollback when not at tip (issue2998)
subrepo: fix git branch tracking logic (issue2920)
subrepo: fix repo relative path calculation for root directories (issue3033)
summary: show bookmarks separate from tags and note active mark (issue2892)
util: wrap lines with multi-byte characters correctly (issue2943)
verify: filter messages about missing null manifests (issue2900)
wireproto: do not call pushkey module directly (issue3041)
auth: fix realm handling with Python < 2.4.3 (issue2739)
diffstat: be more picky when marking file as 'binary' (issue2816)
dirstate: don't fail when dropping a not-tracked file (issue3080)
grep: correct handling of matching lines without line ending (issue3050)
hgweb: fix dynamic date calculation not working under Safari
mq: avoid data loss upon qfold + qmv (issue3058)
setup: set whole env for running hg even if .hg doesn't exist (issue3073)
This is a regular bugfix release.
setup: build inotify for sys.platform='linux*'
bundlerepo: add argument check before unlink
hgweb: properly check for bookmarks when drawing graph
http: handle push of bundles > 2 GB again (issue3017)
keyword: preserve file mode when overwriting
osutil: avoid accidentally destroying the True object in isgui (issue2937)
patch: correctly handle non-tabular Subject: line
patch: handle 'gitpatches' being empty, but not none
record: use command wrapper properly for qnew/qrefresh (issue3001)
setdiscovery: fix hang when #heads>200 (issue2971)
ui: also swap sys.stdout with self.fout in _readline
ui: write traceback to self.ferr
url: Remove the proxy env variables only when needed (issue2451)
url: parse fragments first (issue2997)
util: fix crash converting an invalid future date to string
util: wrap lines with multi-byte characters correctly (issue2943)
This is a regular bugfix release (slightly early due to travel plans).
commands: clarify that 'hg heads foo' shows heads on branch foo
dispatch: don't rewrap aliases that have the same definition
graphlog: attempt to fix index overrun (issue2912)
http: pass user to readauthforuri() (fix 4a43e23b8c55)
http: strip credentials from urllib2 manager URIs (issue2885)
parsers: avoid pointer aliasing
subrepo: fix cloning of repos from urls without slash after host (issue2970)
ui: pass ' ' to raw_input when prompting
url: really handle urls of the form file:///c:/foo/bar/ correctly
Mercurial 1.9.1 (2011-08-01)
This is a regular bugfix release. It fixes several regressions
introduced in 1.9. The hgweb server now disables MIME type guessing
by default to avoid a potential cross-site scripting issue when
hosting untrusted repositories (issue2923). See UpgradeNotes for
more info.
dispatch: make sure global options on the command line take precedence
eol: ignore IOError from deleted files in commitctx
hgcia: set default value of strip to -1 (issue2891)
hgweb: do not ignore [auth] if url has a username (issue2822)
hgweb: handle 'baseurl' configurations with leading slash (issue2934)
hgweb: raw file mimetype guessing configurable, off by default (BC) (issue2923)
httpclient: import ca33b88d143c from py-nonblocking-http (issue2932)
patch: fix parsing patch files containing CRs not followed by LFs
rebase: block collapse with keepbranches on multiple named branches (issue2112)
rebase: reset bookmarks (issue2265 and issue2873)
revert: restore check for uncommitted merge (issue2915) (BC)
revsets: catch type error on tip^p1(tip) (issue2884)
revsets: do the right thing with x^:y (issue2884)
subrepo: handle adding svn subrepo with a svn:external file in it (issue2931)
subrepo: use working copy of .hgsub to filter status (issue2901)
url: store and assume the query part of an url is in escaped form (issue2921)
util: rename the util.localpath that uses url to urllocalpath (issue2875)
verify: filter messages about missing null manifests (issue2900)
web: output a correct date in short format (issue2902)
1.1. Major features
New fileset file matching support
Improved remote changeset discovery
New command server mode to improve application integration
Experimental generaldelta storage scheme
Experimental new http client library
1.2. Command changes
HGPLAIN: allow exceptions to plain mode, like i18n, via HGPLAINEXCEPT
manifest: add new option --all
aliases: add positional arguments to non-shell aliases
add: introduce a warning message for non-portable filenames (issue2756)
add: notify when adding a file that would cause a case-folding collision
bisect: new command to extend the bisect range (issue2690)
bookmarks: allow deactivating current bookmark with -i
bundle: update current bookmark to most recent revision on current branch
diff: make diff -c aware of revision sets
help: add -c/--command flag to only show command help (issue2799)
help: add -e/--extension switch to display extension help text
help: move hgignore man page into built-in help (issue2769)
http: correctly handle redirects from http to https
identify: list bookmarks for remote repositories
import: add --bypass option
paths: Add support for -q/--quiet
pushkey: add hooks for pushkey/listkeys
revset: add aliases
revset: add ^ and ~ operators from parentrevspec extension
revset: add a revset command to get bisect state
revset: add desc(string) to search in commit messages
revset: add follow(filename) to follow a filename's history across copies
revset: introduce filelog() to emulate log's fast path
revset: add a last() function
1.3. Web changes
add bookmarks listing to raw style and summary pages
support alternate logo url
add base link to file log for paper and coal styles (issue2452)
paper, coal: display diffstat on the changeset page
elapsed time calculation dynamic (javascript)
provide diffstat and summary on the changeset page
1.4. Extension changes
hgcia: handle URL like in notify (issue2406)
rebase: add -m/--message to rebase --collapse (issue2389)
Updating hgext.extdiff to use revsets
bash_completion: enable alias auto-complete
bugzilla: add XMLRPC interface
color: add support for terminfo-based attributes and color
convert/mtn: add support for using monotone's "automate stdio" when available
convert/svn: stop using svn bindings when pushing to svn
convert: add bookmark support for hg and git backends
convert: add svnrev, svnpath and svnuuid template keywords
extdiff: add repository root as a variable
graphlog: support more log command features with revsets
keyword: convert a verbatim block to a field list
keyword: offer additional datefilters when the extension is enabled
mq: add a 'mq()' revset predicate that returns applied mq csets
notify: send changesets on 'outgoing' hook, updated doc
progress: add speed format
rebase: add --tool argument for specifying merge tool
rebase: allow for rebasing descendants onto ancestors on different named branches
record: add an option to backup all wc modifications
record: add qrefresh -i/--interactive
record: add white space diff options
record: alias qrecord to qnew -i/--interactive
1.5. Bug fixes
bookmarks: allow create/move bookmark without making it current (issue2788)
bookmarks: do not forward merged bookmark (issue1877)
changegroup: do not count closed new heads (issue2697)
config: handle comment lines in continuations (issue2854)
dispatch: propagate ui command options to the local ui (issue2523)
eol: make the hook check all new heads, not only tip (issue2666)
grep: don't print data from binary files for matches (issue2614)
http: report unexpected unparsable push responses (issue2777)
httprepo: handle large lengths by bypassing the len() operator
httprepo: long arguments support (issue2126)
httprepo: proper handling of invalid responses without content-type (issue2019)
httprepo: send URL redirection notices to stderr (issue2828)
localrepo: don't add deleted files to list of modified/added files (issue2761)
localrepo: ignore tags to unknown nodes (issue2750)
merge: drop resolve state for mergers with identical contents (issue2680)
patch: do not patch unknown files (issue752)
path_auditor: check filenames for basic platform validity (issue2755)
rebase: don't mark file as removed if missing in parent's manifest (issue2725)
rebase: preserve mq series order after rebasing (issue2849)
rebase: restore mq guards after rebasing (issue2107)
revset: report a parse error if a revset is not parsed completely (issue2654)
scmutil: improve path calculation for install-relative RC files (issue2841)
set NOT_CONTENT_INDEXED on .hg dir (issue2694)
sslutil: fall back to commonName when no dNSName in subjectAltName (issue2798)
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)
subrepo: make stdin for svn a pipe for non-interactive use (issue2759)
subrepo: svn abort now depends on exit code (issue2833)
subrepo: be smarter about what's an absolute path (issue2808)
svn subrepo: attempt work around obstructed checkouts (issue2752)
svn subrepos: work around checkout obstructions (issue2752)
tags: catch more corruption during cache parsing (issue2779)
util: add Mac-specific check whether we're in a GUI session (issue2553)
This is a regular time-based bugfix release.
* bookmarks: do not forward merged bookmark (issue1877)
* changelog: convert user and desc from local encoding early
* fix bookmarks rollback behavior
* hgrc.5: document shell aliases
* httprepo: proper handling of invalid responses without content-type (issue2019)
* httprepo: send URL redirection notices to stderr (issue2828)
* localrepo: don't add deleted files to list of modified/added files (issue2761)
* localrepo: ignore tags to unknown nodes (issue2750)
* mq: strip extra whitespace from node ids in header (issue2790)
* rebase: restore mq guards after rebasing (issue2107)
* revset: expand help for contains predicate
* revset: note case-insensitive matches in keyword and user
* revset: note case-sensitive match in grep
* revset: report a parse error if a revset is not parsed completely (issue2654)
* revset: the name is optional for the tag predicate
* simplemerge: do not allow binary files to abort an entire merge
* strip: make it clear that --force discards changes (issue310)
* subrepo: don't crash when git .hgsubstate is empty (issue2716)
* subrepo: make stdin for svn a pipe for non-interactive use (issue2759)
* subrepo: respect non-default path for incoming/outgoing
* subrepo: svn abort now depends on exit code (issue2833)
* subrepo: use code from 71ea5b only if Python needs it (issue2795)
* tags: catch more corruption during cache parsing (issue2779)
This is a regular time-based bugfix release.
convert: make filemap prune useless branch closing revs (issue2774)
encoding: avoid localstr when a string can be encoded losslessly (issue2763)
extdiff: fix broken symlinks handling (issue1909)
help config: explain that config files do not exist by default
hgweb: add bookmark labels to gitweb theme
hgweb: add missing bookmarks definition to coal/map
hgweb: add missing bookmarks templates to atom/rss styles
hgweb: add separate bookmarks listing to gitweb theme
hgweb: add separate bookmarks listing to monoblue theme
hgweb: detect change based on changelog size too
hgweb: fix inconsistant display of graphlog (issue1706)
hgweb: fix typo and inactive link in page_nav and page_header of gitweb's help
hgweb: fix typo in page-header of monoblue's help template
hgweb: format page_nav of gitweb/error.tmpl and add missing links
rebase: don't mark file as removed if missing in parent's manifest (issue2725)
subrepo: handle svn tracked/unknown directory collisions
subrepo: prevent url normalization from removing // in ssh paths (issue2556)
subrepo: tell Subversion when we are non-interactive (issue2759)
url: use a regex to hide unsupported ssh passwords (issue2754)
zeroconf: notify the Zeroconf threads when hg exits