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
This is regular time-based bugfix release.
* bookmarks: discard current bookmark if absent from the
bookmarks (issue2692)
* bookmarks: fix update of the current bookmark during rename
* color: port to using ctypes (issue2687)
* convert/svn: fix _iterfiles() output in root dir case (issue2647)
* eol: do not abort when win32text is found, only warn
* eol: use dirstate methods to clear dirstate
* fix compiling of extensions for OS X and XCode 4.0
* hgweb: add display of bookmarks for changelog and changeset
* hgweb: add separate page with bookmarks listing
* merge: avoid unlinking destination of merge when case changes
(issue2715)
* mq: do not let qrefresh write bad patch
* pager: don't page stderr if it's being redirected (issue2541)
* push/outgoing: print remote target path even if there's an
error (issue2561)
* subrepo: recognize scp-style paths as git URLs
* templates: widen the graph canvas (issue2683)
1.1. Core
* Bookmarks are now a core feature (see UpgradeNotes)
* New listfile: pattern-matching (patterns)
* Revset syntax supported by most commands
* Performance improvements for reading large repository indexes
* Certificate validation for HTTPS proxies
1.2. Subrepos
* New support for git subrepos
* Various improvements to merge, update, and commit logic
1.3. Windows
* Numerous robustness improvements for quirks in Windows file handling
* Now uses the native ctypes module rather than PyWin32
1.4. Extensions
* eol: filter aliases for compatibility with win32text
* mq: --exact option for qpush
* mq: various robustness improvements
* progress: remaining time estimates
1.7.5 (2011-02-01)
This is a quick bugfix release to include some fixes accidentally
dropped from 1.7.4.
subrepo: fix update -C with svn subrepos when cwd != repo.root
subrepo: make update -C clean the working directory for svn subrepos
url: add --insecure option to bypass verification of ssl certificates
win32mbcs: Fix typo in documentation
1.7.4 (2011-02-01)
This is a scheduled bugfix release that smooths out some of the
rough edged introduced with 1.7.3's HTTPS certificate verification.
bookmarks: always write undo file
bookmarks: respect rollbacks dryrun parameter
hgrc.5: mention that web.cacerts are run through util.expandpath
opener: force copy on 'a'ppend if nlinks() returns 0 (issue1922)
subrepo: compare svn subrepo state to last committed revision
subrepo: do not report known files inside repositories as unknown
url: 'ssh known host'-like checking of fingerprints of HTTPS certificates (see CACertificates)
url: check subjectAltName when verifying ssl certificate
url: expand path for web.cacerts
url: fix UnicodeDecodeError on certificate verification error
win32: add cacert.pem file to Inno Setup installer
win32: win32console.GetStdHandle() can return None
1.7.3:
* archive: don't set gzip filename header when there's no filename
* checknlink: use two testfiles (issue2543)
* churn: ignore trailing and leading spaces (issue2546)
* date: fix matching of underspecified date ranges
* eol: improve help on whether EOLs are changed in working copy or repository
* fncachestore: copy dh directory before the manifest
* hgweb: abort if config file isn't found
* hook: assume relative path to hook is given from repo root
* hook: fix import path handling for repo=None
* https: use web.cacerts configuration from local repo to validate remote repo
* https: warn when server certificate isn't verified
* keyword: copy: when copied source is a symlink, follow it
* patch: write .rej files without rewriting EOLs
* strip: typo bugfix related to '--nobackup -> --no-backup' rename (issue2377)
* tag: abort if not at a branch head (issue2552)
* tag: don't check .hgtags status if --local passed
* tag: fix uncommitted merge check and error message (issue2542)
* util: fix ellipsis() not to break multi-byte sequence (issue2564)
* util: work around behavior change in Python 2.7.1
* windows.rename: eliminate temp name race (issue2571)
* wix: add an ssl certificate file to the WiX installers
This is a scheduled bugfix release.
* checknlink: return False if .hgtmp file preexists (issue2517)
* commit: search both parents for missing copy revision (issue2484)
* context: walk both parents for workingctx.ancestors()
* convert/svn: fix changed files list upon directory replacements
* hgwebdir: fix incorrect index generation for invalid paths (issue2023)
* keyword: copy: when copied source is a symlink, follow it
* mq: ignore subrepos (issue2499)
* rebase: support --detach when null is common ancestor
* subrepo: fix removing read-only svn files on Windows
* subrepo: handle missing subrepo spec file as removed
* subrepo: prune empty directories when removing svn subrepo
* subrepo: use subprocess directly to avoid python 2.6 bug
* util: do not crash on revisions with negative timestamp (issue2513)
* util: do not recurse in makedirs if name is '' (issue2528)
* win32mbcs: use extsetup() to wrap functions only once
* wix: add support for x64 native MSI packages
This is an unscheduled bugfix release. 1.7 clients broke support
for pushing bookmarks with HTTP.
* alias: fall back to normal error handling for ambigious commands (issue2475)
* bundlerepository: get rid of temporary bundle files (issue2478)
* bundlerepository: test self.tempfile field, not tempfile module
* eol: exclude .hgtags file from eol translation (issue2493)
* log: fix log -rREV FILE when REV isnt the last filerev (issue2492)
* opener: check hardlink count reporting (issue1866)
* pushkey: force HTTP POST on push and add tests (issue2489)
* revlog: fix descendants() if nullrev is in revs
* subrepo: test & fix svn subrepo removal
* win32: remove try-catch block of GetModuleFileNameEx (issue2480)
1.7 (2010-11-01)
1.1. Core
* filelog: improve cmp performances (issue2273)
* patch: don't strip '#' lines from patch descriptions (issue2417)
* patch: when native patching fails (ui.patch is not set), don't retry with an external tool
* setup/hg: always load Mercurial from where it was installed.
* setup: user-friendly error message if Python headers are missing
* store: new unsupported and experimental parentdelta format (see UpgradeNotes)
* store: encode first period or space in filenames (issue1713)
* url: expand environment variables in [auth] settings (issue2328)
* url: check validity (notBefore/notAfter) using OpenSSL (issue2407)
1.2. Commands
* addremove: use similarity 100 by default
* alias: add support for shell command aliases starting with '!' (see [alias] in hgrc(5))
* backout: add --tool argument for specifying merge tool
* backout: backout linearly by default instead of branching and merging (use --merge to get the former behaviour)
* dispatch: properly handle relative path aliases used with -R (issue2376)
* init: expand destination url as a configured paths
* log: do not --follow file that is deleted and recreated later (issue732)
* merge: don't detect copies as "divergent renames", make error message more helpful
* merge: add --tool argument to merge and resolve
* merge: handle no file parent in backwards merge (issue2364)
* tags: do not fail if tags.cache is corrupted (issue2444)
* templater: add "hex" filter and "children" keywords (see hg help templating)
1.3. Subrepos
* support remapping of subrepository source paths (see [subpaths] in hgrc(5))
* make add, diff, incoming, outgoing and status commands recurse into subrepos with --subrepos/-S
* subrepo: add support for 'hg archive'
* subrepo: fix status check on SVN subrepos (issue2445)
1.4. Revsets
* add id() and rev() to allow explicit references to changes by hash or rev (see hg help revsets)
* add min() function to complement max()
* add present() function to avoid lookup errors on possibly missing changesets
* rename tagged() to tag() and allow it to take an optional tag name
* strip: add revsets support
* add revsets support to bisect and update (issue1993)
* bookmarks: add a bookmark([name]) revset for referencing bookmarks
* transplant: add a transplanted(set) revset to get transplanted revisions
1.5. hgweb
* add a help view for accessing the built-in documentation (see help link in hg serve)
* let HTTPS serve use more compatible but less secure encryption
* support very simple caching model (issue1845)
1.6. Extensions
* color: better support for branches and mq guards
* convert: handle closed branch heads in hg-hg conversion (issue2185)
* convert: support darcs changelogs with bytes 0x7F-0xFF (issue2411)
* convert: deprecate --authors in preference for --authormap
* graphlog: support header and footer templates when using styles (issue2395)
* keyword: do not expand at all during diff
* keyword: support copy and rename
* mq: extend support for the --mq argument to extension commands
* mq: save qrefresh message for easy recovery in case it fails (issue2062)
* mq: support hg qimport --existing --name renametothis thatexistingpatch, fix --force case on Windows
* mq/qqueue: support renaming of active queue
* mq/qqueue: add --purge option to delete a queue and its patches
* pager: add global --pager=<auto/boolean> option
* patchbomb: add --confirm option to show series details and ask for confirmation
* patchbomb: let diffstat prompt only once with complete summary
* progress: support rebase and patchbomb
* rebase: re-add patches to mq repo after rebase
* strip: add --keep flag to avoid modifying working directory during strip
* strip: rename --nobackup option to --no-backup (issue2377)
* strip: support stripping multiple revisions
1.7. contrib
* mergetools.hgrc: add vimdiff
* zsh completion: support bookmarks and patchbomb extensions
* zsh completion: add qpush --move option
pkg-vulnerabilities.
Changes since 1.6.3:
This is a monthly bugfix release.
* archive: set date to 1980 for very old zip files
* bookmarks: fix _bookmarks/lookup() reentrancy issue (issue2016)
* color: add win32 support for non-black background
* context: fix filectx.undelete() (issue2388)
* convert/darcs: handle non-ASCII metadata in darcs changelog (issue2354)
* convert/svn: fix broken symlink renames in svn sink
* core: use lexists() instead of exists() where appropriate
* hgweb: Fix memory leak when using hg commands over http repositories
* hgweb: correct Content-Type header values for archive downloads
* log: include unmodified-in-merge files in log diff/stat (issue2383)
* mq: always require --force when pushing patches (issue2363)
* patch: do not overwrite broken untracked symlinks
* patch: fix rename text to binary file (issue2400)
* patch: fix target when patching broken symlinks (issue2368)
* patch: upgrade to git patch when removing binary file
* rename: do not overwrite existing broken symlinks
* url: verify correctness of https server certificates (issue2407)
* util: avoid using hashlib on Python < 2.5 (issue2278)
* verify: fix "missing revlog!" errors for revlog format v0 and add test
* win32: add Emacs scripts to Inno Setup installer
* win32: add hgweb scripts to Inno Setup installer
1.6.3 (2010-08-26)
This is a monthly bugfix release. It includes several significant
fixes, including a fix for a long-standing hardlink corruption
issue on Windows.
alias: make shadowing behavior more consistent (issue2054)
bisect: better message for unrelated starting revisions
bookmarks: Check if the bookmark to delete exists on the remote
bookmarks: guard against listing bookmarks on unsupported repos
chunkbuffer: use += rather than cStringIO to reduce memory footprint
convert: Using --dest-type svn crashed, if the source repo used tags.
convert: properly set encoding for gnuarch converter
convert: use encoding.encoding instead of locale.getpreferredencoding()
encoding: improve handling of buggy getpreferredencoding() on Mac OS X
graphlog: mark --branch as incompatible with --graph
http basic auth: reset redirect counter on new requests (issue2255)
httprepo: decompress stream incrementally to reduce memory usage
log: fix the bug 'hg log --stat -p == hg log --stat'
mercurial.spec: gettext is a build requirement for getting
proper localization
merge: drop reference to file contents after write
merge: move reverse-merge logic out of filemerge (issue2342)
merge: fix detection of conflict markers with checkconflicts enabled
mq: don't inherit default and default-push paths with --mq (issue2333)
resolve: updated help documentation for improved clarity
revlog: drop cache after use to save memory footprint
templatefilters: unnest uescape()
templates: add filenolink to raw style (issue2332)
url: expand vars in all [auth] settings (issue2328)
url: limit expansion to safe auth keys (Issue2328)
util: avoid using hashlib on Python < 2.5 (issue2278)
verify: initialize rp variable in case we hit out of memory
verify: reduce memory footprint when unpacking files
verify: report exceptions that don't have a str() method
win32: correctly break hardlinks on network drives (issue761)
1.6.2 (2010-08-02)
This release addresses a regression in the color extension.
* color: pass write/write_err to win32print correctly (issue2312)
* convert/progress: use plural and avoid retrieving
* color: call correct superclass method in write_err
1.6.1 (2010-08-01)
This is a scheduled monthly minor bugfix release.
* alias: ensure checksignature() is applied directly to the command (issue2286)
* bash/zsh completion: use HGPLAIN when invoking hg (issue2297)
* bookmarks: don't allow name to contain whitespaces only
* bookmarks: ensure current bookmark is updated when specified with -r .
* bundle: lookup revisions after addbranchrevs
* color/progress: subclass ui instead of using wrapfunction (issue2096)
* commit: only warn when reopening the workdir's branch
* dispatch: give better error message when cwd doesn't exist (issue2293)
* doc: make sure we use our own code for generating man pages
* filelog: cmp: don't read data if hashes are identical (issue2273)
* filelog: test behaviour for data starting with "\1\n"
* hg.clone: fix branch value when passing a repo object (issue2267)
* hgweb.wsgi: add a URL to the corresponding wiki documentation
* hgwebdir: allow pure relative globs in paths
* hgwebdir: use template paths configured in the hgrc (issue2281)
* init: create target directory recursively
* inotify: check all components of filenames against hgignore (issue884)
* keyword: move collecting of [keyword] patterns to reposetup (issue2303)
* log: fix missing diff output for hg log -p in subdirectory
* log: follow filenames through renames (issue647)
* mail: ensure that Python2.4 to 2.7 use the same header format
*
mercurial.spec: rename docutils to python-docutils in BuildRequires
* mq: clarify the fact that qimport is trying to read a file
* mq: cleanup status if applied mq is stripped (issue1881)
* mq: fixed ENOENT when qrename to new/directory.patch
* mq: reset self.added after the mq transaction instead of inside qimport
* qpush --move: move the right patch even with comment lines
* rebase: re-add patches to mq repo after rebase
* revert: rename original to .orig instead of copying (issue2282)
* revset: fix ancestor subset handling (issue2298)
* runrst: try to be more helpful if docutils is not installed
* tag: do not allow tag names to consist solely of whitespace (issue2307)
* transplant: crash if repo.commit() finds nothing to commit
1.6 (2010-07-01)
(This release makes a couple small behavior changes, be sure to read UpgradeNotes!)
Core
* addremove: optimize addremove -s100 by matching files by their SHA1 hashes
* archive: auto-detect archive type by extension (issue2058)
* commit: more friendly handling of new and closed named branches
* hooks: provide pre- and post- hooks with parsed command line arguments
* log: add --branch for filtering on named branch
* log: add --stat for diffstat output
* push: add --new-branch option to allow initial push of new branches
* push: break infinite http recursion bug with Python 2.6.5 (issue2179)
* rollback: add -n/--dry-run flag, report what's being rolled back
* subrepo: various fixes
* summary: report copies and renames and add subrepo status
* tag: add -e/--edit option for modifying the commit message
* revsets: introduce a powerful query language for specifying revisions, see the manpage or hg help revsets
Hgweb
* unify and simplify hgweb.cgi and hgwebdir.cgi scripts
* fix race in refreshing repo list (issue2188)
* simplify hgweb.cgi, add help pointer
* deliver shell hook output to client
* allow --port=0 to specify "choose free port number automatically"
* improved templater performance
Help
* add new hgweb, glossary, and revsets topics
* numerous improvements to help text
Extensions
* acl: support for access control base on branches and user-defined or OS-level groups
* acl: added support for pretxncommit, so that one can call the ACL hook at (?)
* bookmarks: add support for pushing and pulling bookmarks
* churn: add possibility to include/exclude paths
* color: add support for Windows consoles
* color: colorize based on output labels instead of parsing output
* extdiff: add labels, read diff arguments from [merge-tools]
* keyword: offer svn-like default keywordmaps
* keyword: support (q)record
* mq: add a line to hg summary
* mq: qpush --move, reorder patch series and apply only the patch
* progress: progress support for many more commands
* rebase: add option to not commit after a collapsing