Yuya Nishihara <yuya@tcha.org> [Sun, 26 Apr 2015 18:27:32 +0900] rev 25307
revset: comment that we can't swap 'or' operands by weight
Though the original code did nothing, it tried to optimize the calculation
order by weight. But we can't simply swap 'ta' and 'tb' because it would
change the order of revisions.
For future reference, this patch keeps the modified version of the original
code as comment.
Yuya Nishihara <yuya@tcha.org> [Sun, 26 Apr 2015 18:05:23 +0900] rev 25306
parser: add helper to reduce nesting of chained infix operations
This will be used to avoid stack overflow caused by chained 'or' operations
in revset.
Matt Mackall <mpm@selenic.com> [Wed, 27 May 2015 14:28:29 -0500] rev 25305
convert: properly pass null ids through .hgtags (
issue4678)
Mercurial uses tags of null to mark deletions, but convert was
silently discarding these because it had no mapping for them. Thus, it
was resurrecting deleted tags.
Matt Mackall <mpm@selenic.com> [Wed, 27 May 2015 17:28:55 -0500] rev 25304
commit: improve --close-branch documentation
The confusion about whether this flag closes a whole branch or just a
head comes up regularly on IRC, so add some clarification.
Laurent Charignon <lcharignon@fb.com> [Fri, 22 May 2015 13:06:45 -0700] rev 25303
patch: add 'extra' argument to makememctx
The uncommit command in evolve needs to create memory context with given
extra parameters. This patch allows us to do that instead of always giving them
an empty value and having to override it afterwards.
Matt Mackall <mpm@selenic.com> [Wed, 27 May 2015 17:41:42 -0500] rev 25302
merge with stable
Matt Harbison <matt_harbison@yahoo.com> [Wed, 27 May 2015 13:28:16 -0400] rev 25301
match: normpath the ignore source when expanding the 'subinclude' kind
Windows was previously getting this test failure:
--- e:/Projects/hg/tests/test-hgignore.t
+++ e:/Projects/hg/tests/test-hgignore.t.err
@@ -230,6 +230,7 @@
$ hg status
? dir1/file2
+ ? dir1/subdir/subfile3
? dir1/subdir/subfile4
? dir2/file1
@@ -241,4 +242,4 @@
$ echo "glob:file*2" > dir1/.hgignoretwo
$ hg status | grep file2
- [1]
+ ? dir1/file2
The problem was 'source' would be in the form "F:\test-hgignore.t\.hgignore", so
when pathutil.dirname() split on '/', 'sourceroot' was empty. Therefore, 'path'
ended up being relative instead of absolute.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 23 May 2015 21:18:47 -0700] rev 25300
repair: forbid strip from inside a transaction
Stripping inside a transaction will (at best) crash or (at worst)
result in very unexpected results. We explicitly forbid it early.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 27 May 2015 12:14:10 -0400] rev 25299
test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com> [Wed, 27 May 2015 12:11:13 -0400] rev 25298
test-revert-interactive: don't escape the $ for $TESTTMP
Otherwise, sh tries to exec the literal path '${TESTTMP}/editor.sh' on Windows.
The test runs clean on OS X both with and without this change.
Laurent Charignon <lcharignon@fb.com> [Tue, 26 May 2015 12:09:04 -0700] rev 25297
changelog: fix bug in heads computation
This patch refactors the native computation of heads. It fixes a bug where
filtered heads in the pending index could be returned by the native code
despite their filtering.
Laurent Charignon <lcharignon@fb.com> [Tue, 26 May 2015 12:08:50 -0700] rev 25296
changelog: change input type of index_get_parents
We were wrongfully using int instead of Py_ssize_t for the revision number.
Matt Mackall <mpm@selenic.com> [Fri, 22 May 2015 17:08:59 -0500] rev 25295
branch: don't warn about branches if repository has multiple branches already
This warning exists to prevent git users from prematurely polluting
their namespace when trying out Mercurial. But for repos that already
have multiple branches, understanding what branches are is not
optional so we should just shut up.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 26 May 2015 13:02:28 -0700] rev 25294
transaction: really fix _addbackupentry key usage (
issue4684)
The fix in
fd905b2bea59 is actually wrong. We now use the filename to match what
'_addentry'. This whole untested code is quite suspicious. This seems to point
that no one is ever running 'tr.find' for a backup file.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 May 2015 13:08:21 -0700] rev 25293
largefiles: avoid match.files() in conditions
See
9789b4a7c595 (match: introduce boolean prefix() method,
2014-10-28) for reasons to avoid match.files() in conditions.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 26 May 2015 11:06:43 -0700] rev 25292
largefiles: pass in whole matcher to getstandinmatcher()
The choice between the "always" case and the other case is done in
getstandinmatcher() and the next patch will change how it's determined
based on the matcher, so let's prepare by passing in the matcher, not
just the matcher's files.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 26 May 2015 09:46:48 -0700] rev 25291
largefiles: drop unused 'pats' parameter from getstandinmatcher()
The parameter wasn't used even when it was imported from elsewhere in
cfccd3bee7b3 (hgext: add largefiles extension, 2011-09-24).
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 26 May 2015 14:14:36 -0700] rev 25290
devel: rename 'all' to 'all-warnings' (BC)
We have started to isolate extra usecases for developer-only output
that is not a warning. As the section has the fairly generic name
'devel' it makes sense to tuck them there. As a result, 'all' becomes
a bit misleading so we rename it to 'all-warnings'. This will break
some developer setups but the tests are still fine and developers will
likely spot this change.
Matt Mackall <mpm@selenic.com> [Tue, 26 May 2015 14:52:47 -0500] rev 25289
merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Fri, 22 May 2015 14:02:04 -0700] rev 25288
copies: document hack for adding '' to set of dirs
The root directory is not normally added to 'dirs' instances (although
I think it should be). In copies.mergecopies, we call dirname() to get
the directory of a path and then check for containment in the 'dirs'
instances ('d1' and 'd2'). In order to easily handle files in the root
directory, '/' is added to d1/d2. This results in the empty string
being added to the sets, since what comes before the slash in '/' is
an empty string. This seems less than obvious, so let's document it.
Yuya Nishihara <yuya@tcha.org> [Tue, 26 May 2015 23:14:50 +0900] rev 25287
test-revset: update test that isn't broken on default branch
"X or wdir()" just works because the default branch includes
40a2cf1c765b.
Augie Fackler <augie@google.com> [Tue, 26 May 2015 14:41:00 -0400] rev 25286
pathutil: demote two local functions to just be forwards
We retain the forwards because it helps code be more ignorant of
implementation details, but use forwards instead of our own method
definitions since we don't need any truly custom behavior for now.
Augie Fackler <augie@google.com> [Tue, 26 May 2015 14:30:48 -0400] rev 25285
pathutil: restate dirname and join as forwards to posixpath
I've done this as its own step so that it's easy to see that the
posixpath implementations pass the doctests in this package. In a
future patch I'll just make these pure forwards of the methods so that
things using pathutil can be oblivious to the posix nature of these
functions.
Durham Goode <durham@fb.com> [Wed, 20 May 2015 14:54:09 -0700] rev 25284
help: add documentation on include: and subinclude:
Adds some help text about the new include: and subinclude: match syntax.
Durham Goode <durham@fb.com> [Sat, 16 May 2015 16:25:05 -0700] rev 25283
match: enable 'subinclude:' syntax
This adds a new rule syntax that allows the user to include a pattern file, but
only have those patterns match against files underneath the subdirectory of the
pattern file.
This is useful when you have nested projects in a repository and the inner
projects wants to set up ignore rules that won't affect other projects in the
repository. It is also useful in high commit rate repositories for removing the
root .hgignore as a point of contention.
Durham Goode <durham@fb.com> [Fri, 22 May 2015 12:58:27 -0700] rev 25282
copies: switch to using pathutil.dirname
copies had it's own dirname implementation. Now that pathutils has a common one,
let's use that instead.
Durham Goode <durham@fb.com> [Fri, 22 May 2015 12:47:18 -0700] rev 25281
pathutil: add dirname and join functions
This adds dirname and join functions to pathutil which are explicitly for
handling '/' delimited paths. The implementations are basically copy paste from
python's posix os.path.dirname and os.path.join functions.
Laurent Charignon <lcharignon@fb.com> [Thu, 21 May 2015 15:44:38 -0700] rev 25280
changelog: move index_get_parents function up
index_get_parents can be used in index_headrevs, to do so it needs to be moved
up in the compilation unit.
Matt Mackall <mpm@selenic.com> [Tue, 26 May 2015 06:45:18 -0500] rev 25279
mergecopies: avoid slowdown from linkrev adjustment (
issue4680)
checkcopies was using fctx.rev() which it was expecting would be
equivalent to linkrev() but was triggering the new _adjustlinkrev path.
This was making grafts and merges with large sets of potential copies
very expensive.
Anton Shestakov <engored@ya.ru> [Tue, 26 May 2015 22:58:30 +0800] rev 25278
hgweb: remove an extra call to nodebranchnodefault() in changesetentry()
showbranch variable already contains the result of nodebranchnodefault(ctx), so
it can be reused.
Matt Mackall <mpm@selenic.com> [Fri, 22 May 2015 12:14:23 -0500] rev 25277
profile: disable nested report in lsprof by default
The nesting makes profiles harder to read and often pushes important
data off the end of the report.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 May 2015 11:16:20 -0700] rev 25276
manifest: use match.prefix() instead of 'not match.anypats()'
It seems clearer to check for what it is than what it isn't.