Brodie Rao <brodie@sf.io> [Sun, 13 May 2012 13:17:27 +0200] rev 16702
check-code: promote 80+ character line warning to an error
Patrick Mezard <patrick@mezard.eu> [Sun, 13 May 2012 13:19:46 +0200] rev 16701
cmdutil: use filectx.cmp() in amend()
Na'Tosha Bard <natosha@unity3d.com> [Sat, 12 May 2012 15:41:27 +0200] rev 16700
largefiles: optimize performance when updating (
issue3440)
Previously, when updating, cachelfiles was called blindly on all largefiles
in the repository at the revision being updated to, despite the fact that
a list of which largefiles needs to be updated has already been collected. This
optimization constrains the cachelfiles call to only the largefiles that need
to be updated.
On a repository with about 80 largefiles, updating between two revisions that
only change one largefile goes from approximately 6.7 seconds to 3.3 seconds.
Matt Mackall <mpm@selenic.com> [Sun, 13 May 2012 12:52:24 +0200] rev 16699
merge with stable
Bryan O'Sullivan <bryano@fb.com> [Sun, 13 May 2012 11:47:55 +0200] rev 16698
tests: make test-convert-darcs.t happier with darcs 2.8.0
Levi Bard <levi@unity3d.com> [Sat, 12 May 2012 17:00:01 +0200] rev 16697
bookmarks: pull new bookmarks from remote by default (BC)
Patrick Mezard <patrick@mezard.eu> [Thu, 03 May 2012 15:14:58 +0200] rev 16696
rebase: allow collapsing branches in place (
issue3111)
We allow rebase plus collapse, but not collapse only? I imagine people would
rebase first then collapse once they are sure the rebase is correct and it is
the right time to finish it.
I was reluctant to submit this patch for reasons detailed below, but it
improves rebase --collapse usefulness so much it is worth the ugliness.
The fix is ugly because we should be fixing the collapse code path rather than
the merge. Collapsing by merging changesets repeatedly is inefficient compared
to what commit --amend does: commitctx(), update, strip. The problem with the
latter is, to generate the synthetic changeset, copy records are gathered with
copies.pathcopies(). copies.pathcopies() is still implemented with merging in
mind and discards information like file replaced by the copy of another,
criss-cross copies and so forth. I believe this information should not be lost,
even if we decide not to interpret it fully later, at merge time.
The second issue with improving rebase --collapse is the option should not be
there to begin with. Rebasing and collapsing are orthogonal and a dedicated
command would probably enable a better, simpler ui. We should avoid advertizing
rebase --collapse, but with this fix it becomes the best shipped solution to
collapse changesets.
And for the record, available techniques are:
- revert + commit + strip: lose copies
- mq/qfold: repeated patching() (mostly correct, fragile)
- rebase: repeated merges (mostly correct, fragile)
- collapse: revert + tag rewriting wizardry, lose copies
- histedit: repeated patching() (mostly correct, fragile)
- amend: copies.pathcopies() + commitctx() + update + strip
Adrian Buehlmann <adrian@cadifra.com> [Sat, 12 May 2012 14:00:51 +0200] rev 16695
diffhelpers: use Py_ssize_t in testhunk()
Eliminates
mercurial/diffhelpers.c(143) : warning C4244: '=' : conversion from
'Py_ssize_t' to 'int', possible loss of data
mercurial/diffhelpers.c(144) : warning C4244: '=' : conversion from
'Py_ssize_t' to 'int', possible loss of data
when compiling for Windows x64 target using the Microsoft compiler.
Adrian Buehlmann <adrian@cadifra.com> [Sat, 12 May 2012 13:21:08 +0200] rev 16694
diffhelpers: use Py_ssize_t in addlines()
Eliminates
mercurial/diffhelpers.c(81) : warning C4244: '=' : conversion from
'Py_ssize_t' to 'int', possible loss of data
mercurial/diffhelpers.c(82) : warning C4244: '=' : conversion from
'Py_ssize_t' to 'int', possible loss of data
when compiling for Windows x64 target using the Microsoft compiler.
Adrian Buehlmann <adrian@cadifra.com> [Sat, 12 May 2012 12:07:18 +0200] rev 16693
diffhelpers: use Py_ssize_t in _fix_newline()
Eliminates
mercurial/diffhelpers.c(23) : warning C4244: 'initializing' : conversion from
'Py_ssize_t' to 'int', possible loss of data
mercurial/diffhelpers.c(26) : warning C4244: 'initializing' : conversion from
'Py_ssize_t' to 'int', possible loss of data
mercurial/diffhelpers.c(27) : warning C4244: 'initializing' : conversion from
'Py_ssize_t' to 'int', possible loss of data
mercurial/diffhelpers.c(30) : warning C4244: 'initializing' : conversion from
'Py_ssize_t' to 'int', possible loss of data
when compiling for Windows x64 target using the Microsoft compiler.
Na'Tosha Bard <natosha@unity3d.com> [Sat, 12 May 2012 11:45:22 +0200] rev 16692
largefiles: add --all-largefiles flag to pull
Na'Tosha Bard <natosha@unity3d.com> [Sat, 12 May 2012 09:59:01 +0200] rev 16691
largefiles: refactor downloading of all largefiles to generic function
Mads Kiilerich <mads@kiilerich.com> [Sat, 12 May 2012 20:06:04 +0200] rev 16690
unbundle: move bookmark update outside the lock
d16c99f16f00 introduced updatecurrentbookmark after unbundle, but that path
might end up taking a wlock after lock when writing the bookmarks.
Brodie Rao <brodie@sf.io> [Sat, 12 May 2012 16:02:46 +0200] rev 16689
cleanup: replace naked excepts with except Exception: ...
Brodie Rao <brodie@sf.io> [Sat, 12 May 2012 16:02:45 +0200] rev 16688
cleanup: replace naked excepts with more specific ones
Brodie Rao <brodie@sf.io> [Sat, 12 May 2012 16:00:58 +0200] rev 16687
cleanup: "raise SomeException()" -> "raise SomeException"
Brodie Rao <brodie@sf.io> [Sat, 12 May 2012 16:00:57 +0200] rev 16686
cleanup: "not x in y" -> "x not in y"
Brodie Rao <brodie@sf.io> [Sat, 12 May 2012 16:00:53 +0200] rev 16685
cleanup: replace hasattr() usage with getattr() in hghave
Brodie Rao <brodie@sf.io> [Sat, 12 May 2012 15:56:23 +0200] rev 16684
cleanup: "x != None" -> "x is not None"
Brodie Rao <brodie@sf.io> [Sat, 12 May 2012 15:54:54 +0200] rev 16683
cleanup: eradicate long lines
Matt Mackall <mpm@selenic.com> [Sun, 13 May 2012 11:19:48 +0200] rev 16682
merge with i18n
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 30 Jan 2012 17:37:45 +0100] rev 16681
mq: qimport need wlock for --push - do that after releasing lock
qimport locking was introduced for phases in
29ea059be33c.
Mads Kiilerich <mads@kiilerich.com> [Sat, 12 May 2012 20:06:02 +0200] rev 16680
tag: run commit hook when lock is released (
issue3344)
Bryan O'Sullivan <bryano@fb.com> [Sat, 12 May 2012 20:25:33 +0200] rev 16679
parsers: strictly check for 20-byte hashes where they're required
Martin Geisler <martin@geisler.net> [Sat, 12 May 2012 22:12:54 +0200] rev 16678
templater: handle SyntaxError when parsing ui.logtemplate
Before, Mercurial would crash with a traceback ending with
SyntaxError: unmatched quotes
if you configured
[ui]
logtemplate = {rev}\n
The SyntaxError is now catched and the string is re-parsed without
requiring quotes.
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 08 May 2012 15:31:14 -0300] rev 16677
i18n-pt_BR: synchronized with
95ca6c8b38da
Martin Geisler <mg@lazybytes.net> [Fri, 11 May 2012 18:41:04 +0200] rev 16676
progress: fix indentation
Martin Geisler <mg@lazybytes.net> [Fri, 11 May 2012 15:13:13 +0200] rev 16675
test-progress: fix whitespace typo
Matt Mackall <mpm@selenic.com> [Sat, 12 May 2012 13:20:26 +0200] rev 16674
merge with stable
Mads Kiilerich <mads@kiilerich.com> [Wed, 25 Apr 2012 01:35:39 +0200] rev 16673
tests: unify the last sh tests
This requires a slightly smarter check-code check for sed output filtering.
Mads Kiilerich <mads@kiilerich.com> [Wed, 25 Apr 2012 01:35:39 +0200] rev 16672
tests: run most check-code sh checks on continued lines too
Some false errors are degraded to warnings and whitelisted.
Martin Geisler <mg@lazybytes.net> [Fri, 11 May 2012 15:09:06 +0200] rev 16671
merge with main
Martin Geisler <mg@lazybytes.net> [Fri, 11 May 2012 13:42:37 +0200] rev 16670
children: use hg reST role for example
Augie Fackler <raf@durin42.com> [Fri, 11 May 2012 04:42:29 -0500] rev 16669
fetch: mark extension as deprecated
Augie Fackler <raf@durin42.com> [Fri, 11 May 2012 06:15:46 -0500] rev 16668
children: mark extension as deprecated
Martin Geisler <mg@lazybytes.net> [Fri, 11 May 2012 14:00:51 +0200] rev 16667
extensions: don't suggest commands from deprecated extensions
Augie Fackler <raf@durin42.com> [Fri, 11 May 2012 04:33:33 -0500] rev 16666
extensions: fix documentation of disabledcmd return value
Bryan O'Sullivan <bryano@fb.com> [Sat, 12 May 2012 10:55:08 +0200] rev 16665
revlog: speed up prefix matching against nodes
The radix tree already contains all the information we need to
determine whether a short string is an unambiguous node identifier.
We now make use of this information.
In a kernel tree, this improves the performance of
"hg log -q -r
24bf01de75" from 0.27 seconds to 0.06.
Bryan O'Sullivan <bryano@fb.com> [Sat, 12 May 2012 10:55:08 +0200] rev 16664
parsers: ensure that nullid is always present in the radix tree
Bryan O'Sullivan <bryano@fb.com> [Sat, 12 May 2012 10:55:07 +0200] rev 16663
parsers: allow hex keys
Matt Mackall <mpm@selenic.com> [Sat, 12 May 2012 12:23:49 +0200] rev 16662
merge with stable
Henrik Stuart <hg@hstuart.dk> [Sat, 12 May 2012 10:20:57 +0200] rev 16661
revset: add function for matching extra data (
issue2767)
Levi Bard <levi@unity3d.com> [Fri, 11 May 2012 18:51:35 +0200] rev 16660
graft: implement --log (
issue3438)
Patrick Mezard <patrick@mezard.eu> [Sat, 12 May 2012 00:24:07 +0200] rev 16659
phase: make if abort on nullid for the good reason
The good reason being you cannot call retractboundary() on nullid, not
revset.set() cannot resolve '-1'.
Patrick Mezard <patrick@mezard.eu> [Sat, 12 May 2012 00:24:07 +0200] rev 16658
phases: make advance/retractboundary() atomic
Before this, if advanceboundary() failed after updating some roots but
before calling retractboundary(), the phase cache would be left in an
invalid state, marked dirty, and written as such. This patch approach is
to turn advance/retractboundary() into phasecache methods, then operate
on copies and merge them back on success.
With the same technique, we can ensure the atomicity of combinations of
advance/retractboundary() calls, like those performed in changegroup
handling code.
Patrick Mezard <patrick@mezard.eu> [Sat, 12 May 2012 00:24:07 +0200] rev 16657
phases: introduce phasecache
The original motivation was changectx.phase() had special logic to
correctly lookup in repo._phaserev, including invalidating it when
necessary. And at other places, repo._phaserev was accessed directly.
This led to the discovery that phases state including _phaseroots,
_phaserev and _dirtyphase was manipulated in localrepository.py,
phases.py, repair.py, etc. phasecache helps encapsulating that.
This patch replaces all phase state in localrepo with phasecache and
adjust related code except for advance/retractboundary() in phases.
These still access to phasecache internals directly. This will be
addressed in a followup.
Patrick Mezard <patrick@mezard.eu> [Sat, 12 May 2012 00:19:30 +0200] rev 16656
mq: introduce mq.check setting
When:
[mq]
check = True
is set, qpush, qpop and qgoto behave as if -c/--check were passed. If
incompatible options like -f/--force or --exact are set, this setting is
ignored.
This setting enables what many users expect mq default behaviour to be.
Patrick Mezard <patrick@mezard.eu> [Sat, 12 May 2012 00:19:30 +0200] rev 16655
mq: introduce qgoto --check
Patrick Mezard <patrick@mezard.eu> [Sat, 12 May 2012 00:19:30 +0200] rev 16654
mq: introduce qpush --check
qpush --check let you qpush with uncommitted files not overlapping
patched files.
Patrick Mezard <patrick@mezard.eu> [Sat, 12 May 2012 00:19:30 +0200] rev 16653
mq: introduce qpop --check
qpop --check let you qpop with uncommitted files if they do not
intersect with files touched by the popped patches.
David Soria Parra <dsp@php.net> [Sat, 12 May 2012 09:43:12 +0200] rev 16652
pager: check if signal.SIGPIPE exists
We have to check for signal.SIGPIPE before we attempt
to set it.
Matt Mackall <mpm@selenic.com> [Sat, 12 May 2012 10:02:47 +0200] rev 16651
diffhelpers: harden testhunk
Yuya Nishihara <yuya@tcha.org> [Sat, 12 May 2012 16:10:01 +0900] rev 16650
patch: fix segfault against unified diffs which start line is zero
Since
2b1ec74c961f, if a chunk starts with "@@ -0,1", oldstart turns into
a negative value. Because diffhelpers.testhunk() doesn't expect negative bstart,
it bypasses "alen > blen - bstart" condition and segfaults at
"PyList_GET_ITEM(b, i + bstart)".
Steven Stallion <sstallion@gmail.com> [Fri, 11 May 2012 22:48:19 -0700] rev 16649
bugzilla: fix transport initialization on python 2.4
Bryan O'Sullivan <bryano@fb.com> [Tue, 08 May 2012 15:31:00 -0700] rev 16648
bisect: set HG_NODE when runing a command
When running a command, set the environment variable HG_NODE to
tell the command which changeset is being visited.
Bryan O'Sullivan <bryano@fb.com> [Tue, 08 May 2012 15:29:09 -0700] rev 16647
bisect: track the current changeset (
issue3382)
Introduce a new revset feature, bisect(current), that identifies
the changeset currently being bisected.
Jesse Glick <jesse.glick@oracle.com> [Fri, 04 May 2012 15:56:45 -0400] rev 16646
localrepo: optimize internode status calls using withflags
Introduce manifestdict.withflags() to get a set of all files which have any
flags set, since these are likely to be a minority. Otherwise checking .flags()
for every file is a lot of dictionary lookups and is quite slow.
Jesse Glick <jesse.glick@oracle.com> [Fri, 04 May 2012 15:54:55 -0400] rev 16645
localrepo: optimize internode status calls using match.always
Introduce match.always() to check if a match object always says yes, i.e.
None was passed in. If so, mfmatches should not bother iterating every file in
the repository.
Na'Tosha Bard <natosha@unity3d.com> [Fri, 11 May 2012 23:11:43 +0200] rev 16644
largefiles: add --all-largefiles flag to clone (
issue3188)
Augie Fackler <raf@durin42.com> [Fri, 04 May 2012 16:00:33 -0500] rev 16643
httpclient: update to revision
892730fe7f46 of httpplus
Matt Mackall <mpm@selenic.com> [Sat, 12 May 2012 00:06:11 +0200] rev 16642
merge with stable
Bryan O'Sullivan <bryano@fb.com> [Tue, 08 May 2012 14:46:04 -0700] rev 16641
parsers: use the correct maximum radix tree depth
Previously, we would not use more than half of a SHA-1 hash when
constructing and searching the tree.
Patrick Mezard <patrick@mezard.eu> [Wed, 09 May 2012 18:45:14 +0200] rev 16640
revset: make matching() preserve input revision order
Jesse Glick <jesse.glick@oracle.com> [Thu, 10 May 2012 14:17:05 -0400] rev 16639
revset: documentation typo "metatadata"