Anton Shestakov <engored@ya.ru> [Fri, 15 May 2015 11:52:39 +0800] rev 25124
hgweb: show changeset branches/tags/bookmarks in file log (style=monoblue)
As for the gitweb style, this line for filelogentry template is copied from
shortlogentry. No change to python code is needed. Tests are unaffected.
Anton Shestakov <engored@ya.ru> [Fri, 15 May 2015 11:42:09 +0800] rev 25123
hgweb: show changeset branches/tags/bookmarks in file log (style=gitweb)
This line for filelogentry template is copied from shortlogentry. The
information is already displayed in paper style, so no change to python code is
needed. Tests are unaffected.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 16 May 2015 00:36:35 -0400] rev 25122
match: resolve filesets in subrepos for commands given the '-S' argument
This will work for any command that creates its matcher via scmutil.match(), but
only the files command is tested here (both workingctx and basectx based tests).
The previous behavior was to completely ignore the files in the subrepo, even
though -S was given.
My first attempt was to teach context.walk() to optionally recurse, but once
that was in place and the complete file list was built up, the predicate test
would fail with 'path in nested repo' when a file in a subrepo was accessed
through the parent context.
There are two slightly surprising behaviors with this functionality. First, any
path provided inside the fileset isn't narrowed when it is passed to the
subrepo. I dont see any clean way to do that in the matcher. Fortunately, the
'subrepo()' fileset is the only one to take a path.
The second surprise is that status predicates are resolved against the subrepo,
not the parent like 'hg status -S' is. I don't see any way to fix that either,
given the path auditor error mentioned above.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 15 May 2015 23:13:05 -0400] rev 25121
subrepo: introduce getfileset()
This will be used in the next patch to help matchers resolve filesets in
subrepos. The default implementation returns an empty set (for git and svn).
Gilles Moris <gilles.moris@free.fr> [Fri, 15 May 2015 09:46:21 +0200] rev 25120
phase: default to current revision if no rev is provided (
issue4666)
Martin von Zweigbergk <martinvonz@google.com> [Sun, 12 Apr 2015 23:51:06 -0700] rev 25119
treemanifest: add --dir option to debug{revlog,data,index}
It should be possible to debug the submanifest revlogs without having
to know where they are stored (in .hg/store/meta/), so let's add a
--dir option for this purpose.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 10 May 2015 06:48:08 -0700] rev 25118
obsolete: sort obsmarkers during exchange
Because bundle2 allows a more precise exchange of obsmarkers during pull, it
sends them in a different order (previously unstable because of sets.) As
a result, they are added to the repository in a different order. To stabilize
the order and ensure tests are unchanged when moving from bundle1 to bundle2 we
sort markers when exchanging them.
In the long run, the obsstore will probably not use a linear storage.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 21 Apr 2015 12:01:34 +0200] rev 25117
test-discovery-legacy: disable bundle2 for legacy test
We need to disable the "bundle2" capability to ensure we stay on legacy
capability.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 21 Apr 2015 11:18:47 +0200] rev 25116
test-discovery: disable bundle2 for legacy test (
issue4610)
We need to disable the "bundle2" capability to ensure we stay on legacy
capability.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 15 May 2015 00:25:43 -0700] rev 25115
revset: fix iteration over ordered addset composed of non-ordered operands
Before this change, doing ordered iteration over an 'addset' object composed of
operands without fastasc or fastdesc method could result in duplicated entries.
This was the result of applying '_iterordered' on an unordered set.
We fix it by ensuring we iterate over the set in a sorted order. Using the fast
iterator when it exists on any operand. We kill the '_iterator' method in the
process because it did not make a lot of sense independently.
Thanks goes to Yuya Nishihara for reporting the issue and analysing the cause.
Drew Gottlieb <drgott@google.com> [Fri, 15 May 2015 15:43:26 -0700] rev 25114
match: add match.ispartial()
match.ispartial() will return the opposite of match.always() in core, but this
function will be extensible by extensions to produce another result even
if match.always() will be untouched.
This will be useful for narrowhg, where ispartial() will return False even if
the match won't always match. This would happen in the case where the only
time the match function is False is when the path is outside of the narrow
spec.
Martin von Zweigbergk <martinvonz@google.com> [Sat, 16 May 2015 11:28:04 -0700] rev 25113
util: drop alias for collections.deque
Now that util.deque is just an alias for collections.deque, let's just
remove it.
Adrian Buehlmann <adrian@cadifra.com> [Sat, 16 May 2015 09:03:21 +0200] rev 25112
util: kill Python 2.4 deque.remove hack
Gilles Moris <gilles.moris@free.fr> [Thu, 14 May 2015 17:38:38 +0200] rev 25111
summary: add a phase line (draft, secret) to the output
The number of draft and secret changesets are currently not summarized.
This is an important information because the number of drafts give some rough
idea of the number of outgoing changesets in typical workflows, without needing
to probe a remote repository. And a non-zero number of secrets means that
those changeset will not be pushed.
If the repository is "dirty" - some draft or secret changesets exists - then
summary will display a line like:
phases: X draft, Y secret (public)
The phase in parenthesis corresponds to the highest phase of the parents of
the working directory, i.e. the current phase.
By default, the line is not printed if the repository is "clean" - all
changesets are public - but if verbose is activated, it will display:
phases: (public)
On the other hand, nothing will be printed if quiet is in action.
A few tests have been added in test-phases.t to cover the -v and -q cases.
Anton Shestakov <engored@ya.ru> [Fri, 15 May 2015 12:19:51 +0800] rev 25110
hgweb: also display changeset bookmarks in file log (style=paper)
There already are branches and tags in file log, now let's add what's been
missing: bookmarks.
Also, since coal borrows this template from paper, this change is effective for
coal as well.
Anton Shestakov <engored@ya.ru> [Fri, 15 May 2015 13:30:34 +0800] rev 25109
tests: test branch/tag/bookmark display in test-hgweb-filelog.t
Displaying branches, tags and bookmarks is an obviously important feature of
hgweb and should be tested a bit more than not at all, so let's add a branch, a
tag and a bookmark to the test.
With this change it's evident that the default style (paper) doesn't show
bookmarks in filelog. Future patch will fix this.
Anton Shestakov <engored@ya.ru> [Fri, 15 May 2015 02:07:43 +0800] rev 25108
hgweb: split some long lines in paper, gitweb and monoblue styles
This will ease future patches for the templates.
As a result of this patch, paper style has one visual change in
log/shortlog/file log view: the spacing between commit message and the first
tag (or branch name, or bookmark) is now roughly who spaces wide instead of one
space wide. This spacing is consistent with the one between branch
names/tags/bookmarks themselves, so it looks better.
In gitweb style, the change from non-breakable space to regular space is
consistent with other elements.
In monoblue the change is not noticeable.
Augie Fackler <augie@google.com> [Wed, 13 May 2015 11:22:06 -0700] rev 25107
run-tests: add a --profile-runner option
While in the throes of a recent run-tests adventure, I found it useful
to have profiler output for the testrunner itself. Adding it was
simple enough and seems worth keeping around.
Gilles Moris <gilles.moris@free.fr> [Fri, 15 May 2015 10:24:59 +0200] rev 25106
test-http: drop compatibility check on Python >= 2.4.3
This is obsolete now that Python < 2.6 is no more supported.
This is thus a backout of
c499fff76440.
Yuya Nishihara <yuya@tcha.org> [Fri, 15 May 2015 22:38:24 +0900] rev 25105
revset: remove unused 'only' from methods table
The infix 'only' operator is mapped to 'only()' function by optimize(), so
it won't be looked up as a method. The test shows it.
Tony Tung <tonytung@fb.com> [Tue, 14 Apr 2015 16:23:54 -0400] rev 25104
shelve: allow --patch and --stat without --list for a single shelf
It's annoying having to specify --list and --patch/--stat when all you
really want to do is to dump a patch. This creates an explicit
--patch/--stat command that is executed if --list is not specified. It
ensures that 1) there is only one shelf name specified and 2) that the
shelf exists. Then it redirects to the original listcmd code.
Tony Tung <tonytung@fb.com> [Tue, 14 Apr 2015 16:23:07 -0400] rev 25103
shelve: refactor allowables to specify sets of valid operations
This will allow us to have --patch and --stat as standalone operations that
don't require --list, as well as pairing them with --list.
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 11:52:09 -0500] rev 25102
merge with stable
Tony Tung <tonytung@fb.com> [Thu, 14 May 2015 21:35:06 -0700] rev 25101
rebase: check that the bookmark is still valid when restoring (
issue4669)
After a rebase --abort, we attempt to restore the previously active
bookmark. We need to ensure that the bookmark still exists.
Ryan McElroy <rmcelroy@fb.com> [Tue, 14 Apr 2015 12:53:48 -0700] rev 25100
bookmarks: rename current to active in variables and comments
Today, the terms 'active' and 'current' are interchangeably used throughout the
codebase in reference to the active bookmark (the bookmark that will be updated
with the next commit). This leads to confusion among developers and users.
This patch is part of a series to standardize the usage to 'active' throughout
the mercurial codebase and user interface.
Tony Tung <tonytung@fb.com> [Thu, 14 May 2015 21:34:46 -0700] rev 25099
rebase: remove extraneous blank at the end of file
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 07 May 2015 23:40:29 -0700] rev 25098
run-tests: include 'start' and 'end' in --time output
This is useful information to understand what is taking time in tests. Both are
included because I can see myself sorting this output using shell script. Having
both data makes it much easier than extracting 'start'+'real'.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 07 May 2015 23:34:58 -0700] rev 25097
run-tests: track start and end time of tests
We currently have information about how long each test took, but we have no data
about their actual scheduling. So we now track when a test started and stopped
(in the referential of the whole tests run) to expose this information.
The data is currently in the json only because the json output is meant to be
extensible. Later changeset will includes this data in the text output and we
will be happy to bikeshed its formating there.
Yes, "end" is actually just "start" + "time", but computing it an including it
in the output is simple, cheap and convenient.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Fri, 15 May 2015 09:07:27 -0400] rev 25096
templater: look for mapfiles in template paths
This will allow %include statements to search the default template
paths in addition to the directory where the %including file is.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Fri, 15 May 2015 09:04:32 -0400] rev 25095
config: give it an includepaths option for looking for config files
It is desirable to "derive" templates from the provided templates. A
simple way to do this is e.g.
%include map-cmdline.default
in your own mapfile. Then you only have to redefine a few templates
instead of copying over the whole thing. This %include mechanism
already works for the built-in templates because by default it *only*
looks for files that are in the same directory as the including
mapfile.
With this changeset, config grows an option to add more include paths
for config files.
Yuya Nishihara <yuya@tcha.org> [Fri, 15 May 2015 22:32:31 +0900] rev 25094
revset: map postfix '%' to only() to optimize operand recursively (
issue4670)
Instead of keeping 'onlypost' as a method, this patch rewrites it to 'only'
function. This way, 'x%' always has the same weight as 'only(x)'.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 May 2015 14:13:12 -0700] rev 25093
dirs.c: pass C string, not Python string, to _finddir()
The callers already have the C string, and although the
PyString_AS_STRING() macro is probably free, this simplifies the code.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 May 2015 14:11:00 -0700] rev 25092
dirs.c: extract 'cpath' variable in _delpath() to match _addpath()
The PyString_AS_STRING() macro is probably free, but this makes
_delpath() more similar to _addpath() and simplifies the next patch.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 13 Apr 2015 23:21:02 -0700] rev 25091
treemanifest: store submanifest revlog per directory
With this change, when tree manifests are enabled (in .hg/requires),
commits will be written with one manifest revlog per directory. The
manifest revlogs are stored in
.hg/store/meta/$dir/00manifest.[id].
Flat manifests can still be read and interacted with as usual (they
are also read into treemanifest instances). The functionality for
writing treemanifest as a flat manifest to disk is still left in the
code; tests still pass with '_treeinmem=True' hardcoded.
Exchange is not yet implemented.
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 10:29:39 -0500] rev 25090
hghave: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 10:00:46 -0500] rev 25089
setup: use try/except/finally
This will raise a syntax error for people who attempt to use Py2.4,
but that's already going to fail and we have no way to keep other
2.6isms from creeping in since we've removed the check-code rules and
the buildbot.
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:58:21 -0500] rev 25088
util: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:58:02 -0500] rev 25087
tags: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:57:44 -0500] rev 25086
repoview: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:57:02 -0500] rev 25085
httppeer: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:56:43 -0500] rev 25084
hooks: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:56:27 -0500] rev 25083
hgweb: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:56:05 -0500] rev 25082
commands: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:55:47 -0500] rev 25081
bookmarks: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:55:31 -0500] rev 25080
shelve: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:55:15 -0500] rev 25079
largefiles: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:54:56 -0500] rev 25078
factotum: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:54:35 -0500] rev 25077
check-code: drop try/except/finally check
Adrian Buehlmann <adrian@cadifra.com> [Thu, 14 May 2015 09:04:48 +0200] rev 25076
util.h: kill no longer needed definitions for Python < 2.6
see
e1fb276d4619
Matt Mackall <mpm@selenic.com> [Thu, 14 May 2015 16:28:28 -0500] rev 25075
merge with stable
Adrian Buehlmann <adrian@cadifra.com> [Thu, 14 May 2015 11:04:36 +0200] rev 25074
setup: integrate osutil C extension into extmodules initialization
Adrian Buehlmann <adrian@cadifra.com> [Thu, 14 May 2015 11:04:35 +0200] rev 25073
setup: move osutil_ldflags logic to before extmodules definition
Adrian Buehlmann <adrian@cadifra.com> [Thu, 14 May 2015 11:04:31 +0200] rev 25072
setup: kill pure hack for osutil on Windows for Python 2.4
see
e1fb276d4619
Adrian Buehlmann <adrian@cadifra.com> [Thu, 14 May 2015 11:37:36 +0200] rev 25071
windows: add comment in normcase()
see also
3c5e818ac679
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 10 May 2015 10:57:24 -0400] rev 25070
rebase: clear merge when aborting before any rebasing (
issue4661)
The check of the inrebase function was not correct, and it failed to
consider the situation in which nothing has been rebased yet, *and*
the working dir had been updated away from the initial revision.
But this is easy to fix. Given the rebase state, we know exactly where
we should be standing: on the first unrebased commit. We check that
instead. I also took the liberty to rename the function, as "inrebase"
doesn't really describe the situation: we could still be in a rebase
state yet the user somehow forcibly updated to a different revision.
We also check that we're in a merge state, since an interrupted merge
is the only "safe" way to interrupt a rebase. If the rebase got
interrupted by power loss or whatever (so there's no merge state),
it's still safer to not blow away the working directory.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 10 May 2015 10:02:15 -0400] rev 25069
test-rebase-abort: add test from
issue4009
The fix for
issue4009, namely
fe78eb7bcca0, introduced
issue4661.
Let's make sure that the fix for
issue4661 will not reintroduce
issue4009.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 May 2015 15:00:07 -0700] rev 25068
run-test.py: greatly increase the priority of 'check-code' tests
As check-code is actually quite long to run for its file size, this prevent them
to be scheduled too late during the test run.
This reduces my typical test run from 107 seconds to 90 seconds
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 May 2015 00:04:07 -0700] rev 25067
run-tests: allow different extra weight for slow tests
The 'test-check-code-hg.t' file is not big enough to be prioritized properly.
As a result my tests run often spend about 15 seconds running only it at the
end of its tests run. We make the "slow" mechanism a bit smarter to adjust the
extra weight of each category independently in a future patch.
Durham Goode <durham@fb.com> [Thu, 07 May 2015 21:00:46 -0700] rev 25066
ignore: refactor syntax concatenation
This refactors the syntax+rule concatenation logic to be more separated. It
determines the syntax and the rule separately and then puts them back together.
This will help in a later patch when we want to process just the rule before it
gets concatenated.
Durham Goode <durham@fb.com> [Thu, 07 May 2015 20:57:37 -0700] rev 25065
ignore: refactor file read into a function
This refactors the ignore file reading code into a function so that in a future
patch we can make it recursive.