FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 21 Dec 2015 22:31:16 +0900] rev 27461
fileset: use decorator to mark a predicate as "status caller"
Before this patch, predicates calling 'matchctx.status()' are listed
up by immediate list value in 'getfileset()'.
This prevents 3rd party extensions from adding specific predicate
calling 'matchctx.status()'.
This uses decorator to mark a predicate as "status caller".
This can also localize changes for adding (or removing) a "status
caller" predicate function in source code.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 21 Dec 2015 22:31:16 +0900] rev 27460
fileset: use decorator to mark a function as fileset predicate
Using decorator can localize changes for adding (or removing) a
fileset predicate function in source code.
It is also useful to pick predicates up for specific purpose. For
example, subsequent patches marks predicates as "call status" or "use
existing" via decorator.
To avoid (1) redundancy between "predicate name" and (the beginning
of) help document, and (2) accidental typo of help document, this
patch also makes decorator put predicate declration into the beginning
of help.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 21 Dec 2015 22:31:16 +0900] rev 27459
fileset: treat encoding and eol as the predicate calling _existing
Before this patch, predicate function 'encoding' and 'eol' aren't
listed up in '_existingcallers', even though they invoke 'existing()'.
This causes unexpected failure of these predicate, if there is a
(manually) deleted file in the working directory.
8a0513bf030a and 3ce3f2b059a1 seem to overlook putting already
existing 'encoding' or newly introduced 'eol' into '_existingcallers'.
This patch also changes order of fileset "eol(unix)" output in test,
because "existing caller" predicates show "A(dded)" files before
"C(lean)" ones.
timeless <timeless@mozdev.org> [Fri, 18 Dec 2015 18:32:15 +0000] rev 27458
rebase: mention conflict in documentation instead of merge
timeless <timeless@mozdev.org> [Fri, 18 Dec 2015 18:31:45 +0000] rev 27457
rebase: simplify documentation about heads
timeless <timeless@mozdev.org> [Fri, 18 Dec 2015 18:22:03 +0000] rev 27456
rebase: simplify documentation about --keep
Also include a warning about bookmarks
timeless <timeless@mozdev.org> [Fri, 18 Dec 2015 18:24:41 +0000] rev 27455
rebase: simplify documentation about selecting commits to rebase
timeless <timeless@mozdev.org> [Fri, 18 Dec 2015 18:06:43 +0000] rev 27454
rebase: simplify documentation about public commits
add reference to graft
Matt Mackall <mpm@selenic.com> [Sun, 20 Dec 2015 16:33:44 -0600] rev 27453
verify: clean up weird error/warning lists
Nested functions in Python are not able to assign to variables in the
outer scope without something like the list trick because assignments
refer to the inner scope. So, we formerly used a list to give an
object to assign into.
Now that error and warning are object members, the [0] hack is no
longer needed.
timeless <timeless@mozdev.org> [Fri, 18 Dec 2015 18:52:25 +0000] rev 27452
diff: clarify comparison as first parent
timeless <timeless@mozdev.org> [Fri, 18 Dec 2015 06:19:22 +0000] rev 27451
histedit: add progress support
Yuya Nishihara <yuya@tcha.org> [Sun, 20 Dec 2015 18:38:21 +0900] rev 27450
verify: remove unreachable code to reraise KeyboardInterrupt
KeyboardInterrupt should never be caught as it doesn't inherit Exception in
Python 2.5 or later. And if it was, "interrupted" would be printed twice.
https://docs.python.org/2.7/library/exceptions.html#exception-hierarchy
Matt Mackall <mpm@selenic.com> [Sun, 20 Dec 2015 16:34:54 -0600] rev 27449
merge with stable
Durham Goode <durham@fb.com> [Fri, 18 Dec 2015 16:42:39 -0800] rev 27448
verify: move exc() function onto class
This is part of an effort to make verify more modular so extensions can hook
into it.
Durham Goode <durham@fb.com> [Fri, 18 Dec 2015 16:42:39 -0800] rev 27447
verify: move err() to be a class function
This is part of an effort to make it easier for extensions to hook into verify.
Durham Goode <durham@fb.com> [Fri, 18 Dec 2015 16:42:39 -0800] rev 27446
verify: move warn() to a class level function
This is part of the effort to make verify more modular so extensions can hook
into it more easily.
Durham Goode <durham@fb.com> [Fri, 18 Dec 2015 16:42:39 -0800] rev 27445
verify: move fncachewarned up to a class variable
This is part of making verify more modular so hooks can extend it.
Durham Goode <durham@fb.com> [Fri, 18 Dec 2015 16:42:39 -0800] rev 27444
verify: move widely used variables into class members
This will allow us to start moving some of the nested functions inside verify()
out onto the class.
This will allow extensions to hook into verify more easily.
Durham Goode <durham@fb.com> [Fri, 18 Dec 2015 16:42:39 -0800] rev 27443
verify: move verify logic into a class
In order to allow extensions to hook into the verification logic more easily, we
need to refactor it into multiple functions. The first step is to move it to a
class so the shared state can be more easily accessed.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 17 Dec 2015 21:18:02 -0500] rev 27442
test-install: perform the wix checking on wdir() instead of "."
This allows catching problems before they are committed.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Dec 2015 20:54:41 -0800] rev 27441
revlog: fix bad indentation (replace tab by space)
Laurent Charignon <lcharignon@fb.com> [Fri, 18 Dec 2015 12:54:45 -0800] rev 27440
log: speed up hg log <file|folder>
This patch makes hg log <file|folder> faster by using changelog.readfiles
instead of changelog.read.
On our large repos for hg log <file|folder> -l5 operations that were taking:
- ~8s I see a 25% improvement
- ~15s, I see a 35% improvement
For recently modified folder/file, the difference is negligible as we don't
have to consider many revisions.
Laurent Charignon <lcharignon@fb.com> [Fri, 18 Dec 2015 13:45:55 -0800] rev 27439
changelog: add a new method to get files modified by a changeset
This patch adds a new method "readfiles" to get the files modified by a
changeset. It extracts some logic from "read" to only return the files modified
by a changeset as efficiently as possible. This is used in the next patch to
speed up hg log <file|folder>
Matt Harbison <matt_harbison@yahoo.com> [Wed, 16 Dec 2015 17:22:37 -0500] rev 27438
tests: convert directory separators to '/' for MSYS in test-check-py-compat
This is the same fix as 8c1d7a0e737b.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 16 Dec 2015 17:17:36 -0500] rev 27437
tests: make `pwd` URL compatible on Windows in test-default-push
Without this, the test fails with:
$ hg -q commit -A -m 'add pushurl'
abort: file:// URLs can only refer to localhost
$ hg push
abort: file:// URLs can only refer to localhost
The variable $PWD causes check-code to complain, so avoid that.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 16 Dec 2015 13:33:43 -0500] rev 27436
windows: correct the import of win32
This module is relative, and was overlooked when converting to absolute_import
in 6daa795ed32f.
Pascal Quantin <pascal.quantin@gmail.com> [Thu, 17 Dec 2015 19:33:44 +0100] rev 27435
win32: add internals help topics to Inno Setup installer
Augie Fackler <augie@google.com> [Fri, 18 Dec 2015 09:57:35 -0500] rev 27434
changegroups: add documentation for cg3
Mike Edgar <adgar@google.com> [Mon, 14 Dec 2015 15:55:12 -0500] rev 27433
changegroup: add flags field to cg3 delta header
This lets revlog flags be transmitted over the wire. Right now this is
useful for censored nodes and for narrowhg's ellipsis nodes.
Augie Fackler <augie@google.com> [Fri, 11 Dec 2015 11:23:49 -0500] rev 27432
changegroup: introduce cg3, which has support for exchanging treemanifests
I'm not entirely happy with using a trailing / on a "file" entry for
transferring a treemanifest. We've discussed putting some flags on
each file header[0], but I'm unconvinced that's actually any better:
if we were going to add another feature to the cg format we'd still be
doing a version bump anyway to cg4, so I'm inclined to not spend time
coming up with a more sophisticated format until we actually know what
the next feature we want to stuff in a changegroup will be.
Test changes outside test-treemanifest.t are only due to the new CG3
bundlecap showing up in the wire protocol.
Many thanks to adgar@google.com and martinvonz@google.com for helping
me with various odd corners of the changegroup and treemanifest API.
0: It's not hard refactoring, nor is it a lot of work. I'm just
disinclined to do speculative work when it's not clear what the
customer would actually be.