Mercurial 1.9 Lançado!

Mercurial 1.9 Lançado!

Mercurial é mais um “sistema de controle de versão de distribuição open-source, como o Git. Mercurial foi concebido para projetos de maior envergadura, mais provavelmente fora do alcance da web designers e desenvolvedores independentes. Isso não significa que as pequenas equipes desenvolvimento não podem ou não devem usá-lo. Mercurial é extremamente rápido, e com o desempenho como a característica mais importante. O nome “mercurial” é um adjetivo que significa “Relativo a ou que tenham características (eloquência, rapidez, inteligência) atribuído ao deus Mercúrio.”

Para além de ser muito rápido e escalável, Mercurial é um sistema muito mais simples do que Git. Não há por enquanto muitas funções para aprender, e as funções são semelhantes às de outros sistemas CVS. Ele também vem equipado com uma interface Web stand-alone e extensa documentação sobre compreensão Mercurial se você estiver utilizando um outro sistema.

1. Mercurial 1.9 (2011-07-01)

This is a regular feature release. See UpgradeNotes for some minor compatibility notes.

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)

2. Mercurial 1.8.4 (2011-06-01)

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)

3. Mercurial 1.8.3 (2011-05-01)

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

4. Mercurial 1.8.2 (2011-04-01)

This is a 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)

5. Mercurial 1.8.1 (2011-03-10)

This release backs out a behavior change for so-called ‘fast-forward’ merges on named branches.

annotate: rewrite to deal with crossed linkrevs (issue2682)
bookmark: fix invalidation of localrepo._bookmarkcurrent
cacert: improve error report when web.cacert file does not exist
contrib: update tcsh_completion for Mercurial 1.8
hgcia: accept “queued.” xmlrpc return as success
hgweb: fix filelog rss links generation

hgweb: use tip in gitweb/monoblue filelog rss links (issue2677)
merge: back out single-parent fast-forward merge

merge: drop resolve state for mergers with identical contents (issue2680)

merge: improve unresolved conflicts warning (issue2681)
mergetools: add alternate registry keys for 32bit apps on 64bit O/S
mq: forbid commit of merge involving mq patches

subrepo: backout 67fbe566eff1, –force requires svn >= 1.5
subrepo: don’t crash when git repo is missing
subrepo: handle svn tracked/unknown directory collisions

wix: drop bin/ folder from MSI installers (issue2673)

6. Mercurial 1.8 (2011-03-01)

6.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

6.2. Subrepos

New support for git subrepos
Various improvements to merge, update, and commit logic

6.3. Windows

Numerous robustness improvements for quirks in Windows file handling

Now uses the native ctypes module rather than PyWin32

6.4. Extensions

eol: filter aliases for compatibility with win32text

mq: –exact option for qpush
mq: various robustness improvements
progress: remaining time estimates

7. Mercurial 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

8. Mercurial 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

9. Mercurial 1.7.3 (2011-01-01)

This is a scheduled bugfix release.

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 (see CACertificates)
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 (see CACertificates)

10. Mercurial 1.7.2 (2010-12-01)

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

11. Mercurial 1.7.1 (2010-11-15)

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)

12. Mercurial 1.7 (2010-11-01)

12.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)

12.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 diagnostic 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)

12.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)

12.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

12.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)

12.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= 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

12.7. contrib

mergetools.hgrc: add vimdiff
zsh completion: support bookmarks and patchbomb extensions
zsh completion: add qpush –move option

12.8. Windows

64-bit Inno Setup installer

handle spaces in path to Python (issue2074)

Comments are closed.