timeless <timeless@mozdev.org> [Wed, 30 Mar 2016 04:50:19 +0000] rev 28702
py3: use absolute_import in import-checker
timeless <timeless@mozdev.org> [Wed, 30 Mar 2016 09:13:47 +0000] rev 28701
run-tests: make _processoutput picky about optional globs
1ad0ddf8cccc enabled lines that were not matched to be found later in cases of jitter.
Unfortunately, in this model an optional line would always jitter to the end when
it is not present. That is not ideal.
It would be possible to do better, by queuing all writes until the end in case
an optional line jitters, but for now, it is simpler to assume optional lines
have a fixed place in the stream.
timeless <timeless@mozdev.org> [Wed, 30 Mar 2016 07:24:51 +0000] rev 28700
py24: remove check-code py24 notation
We require python2.6+
timeless <timeless@mozdev.org> [Wed, 30 Mar 2016 08:02:34 +0000] rev 28699
py3: convert hghave output to text
Before this, Python3 generated:
b'skipped: unknown feature: not-py3k\n'
timeless <timeless@mozdev.org> [Wed, 30 Mar 2016 05:26:51 +0000] rev 28698
py3: convert prereq bytes to string in run-tests
Without this, run-tests would generate:
WARNING: Did not find prerequisite tool: b'python3.5'
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 28 Mar 2016 12:50:56 -0700] rev 28697
record: deprecate the extension
The feature has been moved into core behind the -i flag. We can safely
deprecated the extension and point people at the --interactive flag in core.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 30 Mar 2016 02:10:44 +0900] rev 28696
templater: use templatefunc to mark a function as template function
Using decorator can localize changes for adding (or removing) a
template function in source code.
This patch also removes leading ":FUNC(ARG...):" part in help document
of each function, because using templatefunc makes it useless.
This patch uses not 'func' but 'templatefunc' as a decorator name,
because the former is too generic one, even though the latter is a
little redundant in 'templater.py'.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 30 Mar 2016 02:10:44 +0900] rev 28695
registrar: add templatefunc to mark a function as template function (API)
This patch also adds loadfunction() to templater, because this
combination helps to figure out how they cooperate with each other.
Listing up loadfunction() in dispatch.extraloaders causes implicit
loading template function at loading (3rd party) extension.
This patch explicitly tests whether templatefunc decorator works as
expected, because there is no bundled extension, which defines
template function.
This change requires that "templatefunc" attribute of (3rd party)
extension is registrar.templatefunc or so.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 30 Mar 2016 02:10:44 +0900] rev 28694
keyword: use templatefilter to mark a function as template filter
This patch also adds test for filter 'svnisodate' and 'svnutcdate' for
safety, because there is no test using them, yet.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 30 Mar 2016 02:10:44 +0900] rev 28693
templatefilters: use templatefilter to mark a function as template filter
Using decorator can localize changes for adding (or removing) a
template filter function in source code.
This patch also removes leading ":FILTER:" part in help document of
each filters, because using templatefilter makes it useless.
This patch uses not 'filter' but 'templatefilter' as a decorator name,
because the former name hides Python built-in one, even though the
latter is a little redundant in 'templatefilters.py'.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 30 Mar 2016 02:10:44 +0900] rev 28692
registrar: add templatefilter to mark a function as template filter (API)
This patch also adds loadfilter() to templatefilters, because this
combination helps to figure out how they cooperate with each other.
Listing up loadfilter() in dispatch.extraloaders causes implicit
loading template filter functions at loading (3rd party) extension.
This change requires that "templatefilter" attribute of (3rd party)
extension is registrar.templatefilter or so.
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 20:43:30 +0900] rev 28691
revset: inline _getaliasarg() function
This function is now much simpler than before. Inlining small functions helps
to extract a reusable alias processor.
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 20:27:08 +0900] rev 28690
revset: drop redundant check for unknown alias arguments
Since _parsealiasdefn() rejects unknown alias arguments, _checkaliasarg() is
unnecessary. New test is added to make sure unknown '$n' symbols are rejected.
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 19:48:33 +0900] rev 28689
revset: move tagging of alias arguments from tokenization to parsing phase
In short, this patch moves the hack from tokenizedefn() to _relabelaliasargs(),
which is called after parsing. This change aims to eliminate tight dependency
on the revset tokenizer.
Before this patch, we had to rewrite an alias argument to a pseudo function:
"$1" -> "_aliasarg('$1')"
('symbol', '$1') -> ('function', ('symbol', '_aliasarg'), ('string', '$1'))
This was because the tokenizer must generate tokens that are syntactically
valid. By moving the process to the parsing phase, we can assign a unique tag
to an alias argument.
('symbol', '$1') -> ('_aliasarg', '$1')
Since new _aliasarg node never be generated from a user input, we no longer
have to verify a user input at findaliases(). The test for _aliasarg("$1") is
removed as it is syntactically valid and should pass the parsing phase.
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 21:46:50 +0900] rev 28688
revset: add test that should fail if '_aliasarg' tag is removed
I'm going to refactor the alias processing functions. We need '_aliasarg' tag
to limit the scope of the alias expansion, but it wasn't covered by the test.
This patch adds the test that should fail if '_aliasarg' were 'symbol'.
This is the first half of the second part of the "template alias" series. The
whole series will consist of the following parts:
1. make parsed template tree to be compatible with parser functions
(
1d461ee26e1b and
73d01cba5810)
2. refactor alias processing to be less dependent on revset module
(1/2 in this series)
3. extract reusable component to parser module
4. clean up it
5. extend it to support template syntax
6. add debugging/testing functions of template aliases
7. add alias expansion routine to templater
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Mar 2016 17:42:19 +0900] rev 28687
templater: do not strip non-quote characters from template config
Before this patch, the first and last characters were stripped from
ui.logtemplate and template.* if they were the same. It could lead to a
strange result as quotes are optional. See the test for example.
Laurent Charignon <lcharignon@fb.com> [Tue, 29 Mar 2016 11:50:41 -0700] rev 28686
rebase: fix crash when rebase aborts while rebasing obsolete revisions
Before this patch, rebase --continue would crash when trying to resume a rebase
of obsolete revisions whose successors were in the destination.
This patch adds logic to recompute the mapping when rebase is resumed. This
patch also adds a test that showcased the crash before the code change.
Laurent Charignon <lcharignon@fb.com> [Tue, 29 Mar 2016 11:49:45 -0700] rev 28685
rebase: refactor of error handling code path for rebaseskipobsolete
This patch extracts the error handling code path to go in a separate function.
In the next patch we will able to reuse this logic and avoid duplicated code.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 29 Mar 2016 23:59:32 +0900] rev 28684
destutil: show message and hint at updating to the closed head as warning
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 29 Mar 2016 23:59:32 +0900] rev 28683
destutil: make messages at updating to the closed head usual form
This patch makes messages at updating to the closed head usual form
for Mercurial as below:
one line description of the problem with no period
(a suggestion about how to move forward or get more info)
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Mar 2016 16:41:32 +0530] rev 28682
py3: make test-ui-color use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Mar 2016 16:38:27 +0530] rev 28681
py3: make test-ui-config use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Mar 2016 16:33:09 +0530] rev 28680
py3: make test-ui-config use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Mar 2016 16:29:21 +0530] rev 28679
py3: make test-ui-verbosity use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Mar 2016 16:27:01 +0530] rev 28678
py3: make test-ui-verbosity use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Mar 2016 16:23:40 +0530] rev 28677
py3: make test-url use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Mar 2016 16:21:31 +0530] rev 28676
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Mar 2016 16:14:58 +0530] rev 28675
py3: make test-wireproto use print_function
timeless <timeless@mozdev.org> [Tue, 29 Mar 2016 17:22:08 +0000] rev 28674
py3: handle ugettext + unicode in i18n
timeless <timeless@mozdev.org> [Mon, 28 Mar 2016 22:30:23 +0000] rev 28673
py3: glob line numbers in test-check-py3-compat
Martin von Zweigbergk <martinvonz@google.com> [Tue, 29 Mar 2016 10:21:05 -0700] rev 28672
bundle: remove obsolete (and duplicate) comment
Change
1e28ec9744bf (changegroup: move chunk extraction into a
getchunks method of unbundle10, 2014-04-10) extracted some code to a
getchunks() method and copied a comment about the changegroup format
to the new method. The copy that remains in the old place, doesn't
make much sense there, so let's remove it.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 29 Mar 2016 10:49:33 -0700] rev 28671
convert: delete unused imports in git.py
As reported by pyflakes
Matt Mackall <mpm@selenic.com> [Tue, 29 Mar 2016 12:29:00 -0500] rev 28670
merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Fri, 25 Mar 2016 23:05:32 -0700] rev 28669
bundle: avoid crash when no good changegroup version found
When using treemanifests, only changegroup3 bundles can be
created. However, there is currently no way of requesting a
changegroup3 bundle, so we run into an assertion in
changegroup.getbundler() when trying to get a changroup2
bundler. Let's avoid the traceback and print a short error message
instead.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 25 Mar 2016 16:13:28 -0700] rev 28668
exchange: make _pushb2ctx() look more like _getbundlechangegrouppart()
The functions already have a lot in common, but were structured a
little differently.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 25 Mar 2016 16:01:40 -0700] rev 28667
exchange: get rid of "getcgkwargs" variable
This also makes the "version" argument explicit (never relies on
getlocalchangegroupraw()'s default), which I think is a good thing.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 28 Mar 2016 14:41:29 -0700] rev 28666
bundle: move writebundle() from changegroup.py to bundle2.py (API)
writebundle() writes a bundle2 bundle or a plain changegroup1. Imagine
away the "2" in "bundle2.py" for a moment and this change should makes
sense. The bundle wraps the changegroup, so it makes sense that it
knows about it. Another sign that this is correct is that the delayed
import of bundle2 in changegroup goes away.
I'll leave it for another time to remove the "2" in "bundle2.py"
(alternatively, extract a new bundle.py from it).
Matt Mackall <mpm@selenic.com> [Tue, 29 Mar 2016 11:54:46 -0500] rev 28665
Added signature for changeset
ae279d4a19e9
Matt Mackall <mpm@selenic.com> [Tue, 29 Mar 2016 11:54:45 -0500] rev 28664
Added tag 3.7.3 for changeset
ae279d4a19e9
Mateusz Kwapich <mitrandir@fb.com> [Tue, 22 Mar 2016 17:27:27 -0700] rev 28663
convert: test for shell injection in git calls (SEC)
CVE-2016-3069 (5/5)
Before recent refactoring we were not escaping calls to git at all
which made such injections possible. Let's have a test for that to
avoid this problem in the future. Reported by Blake Burkhart.
Mateusz Kwapich <mitrandir@fb.com> [Tue, 22 Mar 2016 17:05:11 -0700] rev 28662
convert: rewrite gitpipe to use common.commandline (SEC)
CVE-2016-3069 (4/5)
Mateusz Kwapich <mitrandir@fb.com> [Tue, 22 Mar 2016 17:05:11 -0700] rev 28661
convert: dead code removal - old git calling functions (SEC)
CVE-2016-3069 (3/5)
Mateusz Kwapich <mitrandir@fb.com> [Tue, 22 Mar 2016 17:05:11 -0700] rev 28660
convert: rewrite calls to Git to use the new shelling mechanism (SEC)
CVE-2016-3069 (2/5)
One test output changed because we were ignoring git return code in numcommits
before.
Mateusz Kwapich <mitrandir@fb.com> [Tue, 22 Mar 2016 17:05:11 -0700] rev 28659
convert: add new, non-clowny interface for shelling out to git (SEC)
CVE-2016-3069 (1/5)
To avoid shell injection and for the sake of simplicity let's use the
common.commandline for calling git.
Mateusz Kwapich <mitrandir@fb.com> [Sun, 20 Mar 2016 21:52:21 -0700] rev 28658
subrepo: set GIT_ALLOW_PROTOCOL to limit git clone protocols (SEC)
CVE-2016-3068 (1/1)
Git's git-remote-ext remote helper provides an ext:: URL scheme that
allows running arbitrary shell commands. This feature allows
implementing simple git smart transports with a single shell shell
command. However, git submodules could clone arbitrary URLs specified
in the .gitmodules file. This was reported as CVE-2015-7545 and fixed
in git v2.6.1.
However, if a user directly clones a malicious ext URL, the git client
will still run arbitrary shell commands.
Mercurial is similarly effected. Mercurial allows specifying git
repositories as subrepositories. Git ext:: URLs can be specified as
Mercurial subrepositories allowing arbitrary shell commands to be run
on `hg clone ...`.
The Mercurial community would like to thank Blake Burkhart for
reporting this issue. The description of the issue is copied from
Blake's report.
This commit changes submodules to pass the GIT_ALLOW_PROTOCOL env
variable to git commands with the same list of allowed protocols that
git submodule is using.
When the GIT_ALLOW_PROTOCOL env variable is already set, we just pass it
to git without modifications.
Matt Mackall <mpm@selenic.com> [Wed, 16 Mar 2016 17:30:26 -0700] rev 28657
parsers: detect short records (SEC)
CVE-2016-3630 (2/2)
This addresses part of a vulnerability in binary delta application.
Matt Mackall <mpm@selenic.com> [Wed, 16 Mar 2016 17:29:29 -0700] rev 28656
parsers: fix list sizing rounding error (SEC)
CVE-2016-3630 (1/2)
This addresses part of a vulnerability in application of binary
deltas.
Matt Mackall <mpm@selenic.com> [Mon, 28 Mar 2016 17:16:00 -0500] rev 28655
merge with stable
liscju <piotr.listkiewicz@gmail.com> [Mon, 28 Mar 2016 09:12:03 +0200] rev 28654
debugsetparents: remove redundant invocations of begin/endparentchange
Method localrepo.setparents invokes begin/endparentchange internally,
so there is no need to invoke it explicitly in debugsetparents.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 13:13:19 -0700] rev 28653
sslutil: add docstring to wrapsocket()
Security should not be opaque.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 11:39:39 -0700] rev 28652
sslutil: remove indentation in wrapsocket declaration
It is no longer needed because we have a single code path.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 14:18:32 -0700] rev 28651
sslutil: always use SSLContext
Now that we have a fake SSLContext instance, we can unify the code
paths for wrapping sockets to always use the SSLContext APIs.
Because this is security code, I've retained the try..except to
make the diff easier to read. It will be removed in the next patch.
I took the liberty of updating the inline docs about supported
protocols and how the constants work because this stuff is important
and needs to be explicitly documented.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 14:08:52 -0700] rev 28650
sslutil: move _canloaddefaultcerts logic
We now have a newer block accessing SSLContext. Let's move this
code to make subsequent refactorings of the former block easier.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 13:50:34 -0700] rev 28649
sslutil: implement SSLContext class
Python <2.7.9 doesn't have a ssl.SSLContext class. In this patch,
we implement the interface to the class so we can have a unified
code path for all supported versions of Python.
This is similar to the approach that urllib3 takes.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 10:47:24 -0700] rev 28648
sslutil: store OP_NO_SSL* constants in module scope
An upcoming patch will introduce a global SSLContext type so we
have a single function used to wrap sockets. Prepare for that by
introducing module level constants for disabling SSLv2 and SSLv3.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 14:07:06 -0700] rev 28647
sslutil: better document state of security/ssl module
Pythons older than 2.7.9 are lacking the modern ssl module
and have horrible security. Let's document this explicitly.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 28 Mar 2016 01:57:44 +0530] rev 28646
tests: make tinyproxy.py use print_function
timeless <timeless@mozdev.org> [Mon, 28 Mar 2016 04:02:07 +0000] rev 28645
run-tests: use canonpath for with-python3
timeless <timeless@mozdev.org> [Mon, 28 Mar 2016 04:01:21 +0000] rev 28644
run-tests: add canonpath function
consistently use realpath+expanduser
timeless <timeless@mozdev.org> [Mon, 28 Mar 2016 03:40:30 +0000] rev 28643
tests: glob py3 line numbers
Since not everyone is running py3.5 and code changes periodically,
avoid pinning line numbers for invalid syntax errors.
timeless <timeless@mozdev.org> [Mon, 28 Mar 2016 03:35:08 +0000] rev 28642
tests: update py3.5 output
6d7da0901a28 removed one item...
timeless <timeless@mozdev.org> [Thu, 17 Mar 2016 14:50:29 +0000] rev 28641
summary: move mergemod before parents to give access to ms
timeless <timeless@mozdev.org> [Thu, 17 Mar 2016 00:36:01 +0000] rev 28640
filemerge: use revset notation for p1/p2 of local/other descriptions
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 26 Mar 2016 12:55:52 +0900] rev 28639
tests: fix for failure of test-convert-p4-filetypes.t
Before this patch, test-convert-p4-filetypes.t fails (at least with
2015.2/1366233 version of p4/p4d), because some files below are
omitted in expected output for revision 1.
- file_tempobj
- file_xtempobj
These files are:
- add-ed at revision 0, and
- edit-ed at revision 1
According to perforce command reference below, file type 'tempobj' and
'xtempobj' imply '+S' modifier, which indicates that "Only the head
revision is stored". This means that these files should appear only in
the most recent revision (= revision 1).
https://www.perforce.com/perforce/doc.current/manuals/cmdref/file.types.html
BTW, test-convert-p4-filetypes.t with 2015.2/1366233 version of p4/p4d
fails similarly also at recent revisions for hgext/convert/p4.py in
2015. Therefore, this patch should be reviewed by perforce guru, to
examine whether this failure depends on version (and/or configuration)
of p4/p4d or not.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 20 Mar 2016 21:08:17 -0400] rev 28638
crecord: re-enable reviewing a patch before comitting it
The "r" option for this feature was copied into Mercurial from
crecord, but the actual implementation never made it into hg until
now. It's a moderately useful feature that allows the user to edit the
patch in a text editor before comitting it for good.
This requires a test, so we must also enable a corresponding testing
'R' option that skips the confirmation dialogue. In addition, we also
need a help text for the editor when reviewing the final patch.
As for why this is a useful feature if we can already edit hunks in an
editor, I would like to offer the following points:
* editing hunks does not show the entire patch all at once
** furthermore, the hunk "tree" in the TUI has no root that could be
selected for edition
* it is helpful to be able to see the entire final patch for
confirmation
** within this view, the unselected hunks are hidden, which is
visusally cleaner
** this works as a final review of the complete result, which is
a bit more difficult to do conceptually via hunk editing
* this feature was already in crecord, so it was an oversight to
not bring it to core
* it works and is consistent with editing hunks
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 20 Mar 2016 18:24:59 -0400] rev 28637
crecord: break out the help message for editing hunks
This help message can be useful for other situations, such as for the
review extension. It's also easier to write it at the top-level
indentation with triple-quoted strings instead of inserting comment
characters and newlines programmatically.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 20 Mar 2016 20:59:05 -0400] rev 28636
crecord: refactor hunk edit action to use ui.edit
The previous version of this code did a lot of dancing around a
temporary edit file that ui.edit already handles.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 20 Mar 2016 13:55:41 -0400] rev 28635
edit: allow to configure the suffix of the temporary filename
Sometimes, we can pick a more appropriate default suffix than ".txt",
for example, diffs could have a ".diff" suffix.
Simon Farnsworth <simonfar@fb.com> [Sat, 19 Mar 2016 18:37:10 -0700] rev 28634
merge: save merge part labels for later reuse
We permit the caller of merge operations to supply labels for the merge
parts ("local", "other", and optionally "base"). These labels are used in
conflict markers to reduce confusion; however, the labels were not
persistent, so 'hg resolve' would lose the labels.
Store the labels in the mergestate.
timeless <timeless@mozdev.org> [Fri, 25 Mar 2016 21:51:00 +0000] rev 28633
ui: add prompt argument to write (
issue5154) (API)
When code like filemerge._iprompt calls ui.prompt, it expects
the user to see the output in addition to getting the prompt.
Other code such as histedit may call ui.pushbuffer, but its
goal is not to interfere with prompts, so this commit adds
an optional prompt flag to ui.write and has _readline
include that argument.
ui.promptchoice calls ui.prompt which calls ui._readline.
This commit also updates hgext.color.write.
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 25 Mar 2016 10:47:49 -0700] rev 28632
hg: perform update after pulling during clone with share (
issue5103)
This is a graft of
60adda1a0188 and
a4692267bc2d from the default
branch. Combined, they address a bug with pooled shared storage where
an update may not update to the most recent revision when performing
a `hg clone`.
The patches should have been written against the stable branch in
the beginning. I screwed up.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 26 Mar 2016 10:53:31 +0900] rev 28631
tests: fix failure of test-convert-mtn.t
This is follow up for
3f9e25a42e69, which overlooked this test.
Yuya Nishihara <yuya@tcha.org> [Sat, 26 Mar 2016 18:12:12 +0900] rev 28630
templater: relax unquotestring() to fall back to bare string
This is convenient for our use case where quotes are optional except in
a map file.
Yuya Nishihara <yuya@tcha.org> [Sat, 26 Mar 2016 19:01:12 +0900] rev 28629
debugrevspec: show expanded/concatenated states before printing trees
The debugrevspec command prints at most 4 parsed trees. It wasn't easy to
tell which tree belongs to which state.
Yuya Nishihara <yuya@tcha.org> [Sat, 26 Mar 2016 18:01:04 +0900] rev 28628
templater: do not abuse SyntaxError to report errors in template map file
SyntaxError is the class representing syntax errors in Python code. We should
use a dedicated exception class for our needs. With this change, unnecessary
re-wrapping of SyntaxError can be eliminated.
Martijn Pieters <mjpieters@fb.com> [Wed, 23 Mar 2016 13:34:47 -0700] rev 28627
graphmod: set default edge styles for ascii graphs (BC)
Leaving regular parent edges set to |, grandparent edges set to : and missing
parent edges set to end early. A sample graph:
o changeset: 32:
d06dffa21a31
|\ parent: 27:
886ed638191b
| : parent: 31:
621d83e11f67
| :
o : changeset: 31:
621d83e11f67
|\: parent: 21:
d42a756af44d
| : parent: 30:
6e11cd4b648f
| :
o : changeset: 30:
6e11cd4b648f
|\ \ parent: 28:
44ecd0b9ae99
| ~ : parent: 29:
cd9bb2be7593
| /
o : changeset: 28:
44ecd0b9ae99
|\ \ parent: 1:
6db2ef61d156
| ~ : parent: 26:
7f25b6c2f0b9
| /
o : changeset: 26:
7f25b6c2f0b9
|\ \ parent: 18:
1aa84d96232a
| | : parent: 25:
91da8ed57247
| | :
| o : changeset: 25:
91da8ed57247
| |\: parent: 21:
d42a756af44d
| | : parent: 24:
a9c19a3d96b7
| | :
| o : changeset: 24:
a9c19a3d96b7
| |\ \ parent: 0:
e6eb3150255d
| | ~ : parent: 23:
a01cddf0766d
| | /
| o : changeset: 23:
a01cddf0766d
| |\ \ parent: 1:
6db2ef61d156
| | ~ : parent: 22:
e0d9cccacb5d
| | /
| o : changeset: 22:
e0d9cccacb5d
|/:/ parent: 18:
1aa84d96232a
| : parent: 21:
d42a756af44d
| :
| o changeset: 21:
d42a756af44d
| |\ parent: 19:
31ddc2c1573b
| | | parent: 20:
d30ed6450e32
| | |
+---o changeset: 20:
d30ed6450e32
| | | parent: 0:
e6eb3150255d
| | ~ parent: 18:
1aa84d96232a
| |
| o changeset: 19:
31ddc2c1573b
| |\ parent: 15:
1dda3f72782d
| ~ ~ parent: 17:
44765d7c06e0
|
o changeset: 18:
1aa84d96232a
parent: 1:
6db2ef61d156
parent: 15:
1dda3f72782d
Sean Farley <sean@farley.io> [Thu, 24 Mar 2016 16:35:24 -0700] rev 28626
tests: python executable should always be globbed
Similar to
4d93d73b8aec, the python executable could be python2.X, Python,
pypy, or maybe something futuristic like pyston or nuitka.
Sean Farley <sean@farley.io> [Tue, 22 Mar 2016 16:08:02 -0700] rev 28625
setup: add missing hgext.fsmonitor
Before this patch, fsmonitor was not installed along with other extensions. It
did correctly build the C files needed but forgot to copy over the python
files. This patch fixes it by adding fsmonitor and fsmonitor.pywatchman to the
correct install variable.
Matt Mackall <mpm@selenic.com> [Fri, 25 Mar 2016 16:23:23 -0500] rev 28624
merge with stable
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Jan 2016 22:46:26 +0900] rev 28623
dispatch: show deprecation warning if command has no attributes (
issue5137)
norepo/optionalrepo/inferrepo were removed by
aa73d6a5d9ea, which would be
significant API change. This patch tries to avoid crash even if ancient
third-party extensions are enabled.
Yuya Nishihara <yuya@tcha.org> [Mon, 14 Mar 2016 00:14:43 +0900] rev 28622
dispatch: extract function that tests command attributes
This function will host the compatibility layer for old third-party commands.
See the next patch for details.
Yuya Nishihara <yuya@tcha.org> [Mon, 14 Mar 2016 00:06:52 +0900] rev 28621
dispatch: make cmdalias forward command attributes to function
This delays resolution of command attributes so that missing attributes
can be warned only when necessary.
Jun Wu <quark@fb.com> [Sun, 20 Mar 2016 17:18:06 -0700] rev 28620
run-tests: use different chg socket directories for different tests
Before this patch, if --chg or --with-chg is specified, all tests are using
the same chgserver socket. Since the chg client holds a lock when it starts a
new server, and every test needs at least a new chg server due to different
HGRCPATH affecting the confighash, the result is a lot of tests will be
timed out if -j is large (for example, 50 or 100).
This patch solves the issue by using different chg socket directories for
different tests.
timeless <timeless@mozdev.org> [Mon, 21 Mar 2016 20:56:46 +0000] rev 28619
tests: ensure run-tests handles multiple lines of churn
1ad0ddf8cccc added the ability to remember lines (including their flags, like glob)
and tolerate them even if the output order varies.
This test ensures that the code will continue to work in the future.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 24 Mar 2016 09:38:11 -0700] rev 28618
subrepo: adapt to git's recent renames-by-default
Git turned on renames by default in commit 5404c11 (diff: activate
diff.renames by default, 2016-02-25). The change is destined for
release in git 2.8.0. The change breaks test-subrepo-git, which test
specifically that a moved file is reported as a removal and an
addition. Fix by passing --no-renames (available in git since mid
2006) to the diff commands that don't use --quiet (should make no
difference for those).
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 24 Mar 2016 00:09:58 -0700] rev 28617
graphmod: move the graphstyle options to experimental
I let this slip in the [ui] section during the review, as far as I understand we
don't plan to actually support customisation of the output on we are happy with
our choice. The option are just here to help people tests various options so we
can decide which one we'll actually use.
I'm moving the config option in the experimental section to make this clearer
and avoid making them part of the public API by mistake.
timeless <timeless@mozdev.org> [Mon, 21 Mar 2016 21:06:49 +0000] rev 28616
tests: remove obsolete uses of HGTEST_RUN_TESTS_PURE
342ab95a1f4b added arguments to run-tests.py calls to propagate --pure when
--with-hg is not used.
0622d6e134fb unified places to use --with-hg via rt(), which obviated the
need for passing HGTEST_RUN_TESTS_PURE.
Kevin Bullock <kbullock@ringworld.org> [Sun, 20 Mar 2016 17:30:56 -0700] rev 28615
test-debugextensions: passes with byte-compilation disabled (
issue5147)
Anton Shestakov <av6@dwimlabs.net> [Wed, 23 Mar 2016 11:53:11 +0800] rev 28614
rpms: add hgext3rd to mercurial.spec
Otherwise build process fails with somethings like this:
RPM build errors:
Installed (but unpackaged) file(s) found:
/usr/lib64/python2.7/site-packages/hgext3rd/__init__.py
/usr/lib64/python2.7/site-packages/hgext3rd/__init__.pyc
/usr/lib64/python2.7/site-packages/hgext3rd/__init__.pyo
make: *** [docker-fedora20] Error 1
Kostia Balytskyi <ikostia@fb.com> [Wed, 23 Mar 2016 10:50:24 -0700] rev 28613
debugobsolete: add an option to show marker index
A bigger picture is the ability to be delete an arbitrary marker form the
repo's obsstore. This is a useful debug ability and it needs a way to indentify
the marker one wants to delete. Having a marker's index provides such an
ability.
Jun Wu <quark@fb.com> [Tue, 15 Mar 2016 09:51:42 +0000] rev 28612
tests: explicitly flush output streams
Some tests fail while running with chg because they do not flush their output
streams. chgserver will make sure ui.flush is called after dispatch, but not
after {ui,repo}setup. For other non-ui streams, it should be explicitly
flushed since the request handler will use os._exit.
This patch adds explicit flushes in test-bundle2-format.t, test-extension.t
and test-obsolete.t. It will fix most test cases of them when running with chg.
Yuya Nishihara <yuya@tcha.org> [Sun, 20 Mar 2016 15:09:29 -0700] rev 28611
test-hgrc: do not print ui.plain() flag at uisetup()
This makes the test pass with chg. Since uisetup() is run per process,
"hg showconfig" does not always call uisetup().
Yuya Nishihara <yuya@tcha.org> [Sun, 20 Mar 2016 12:25:46 -0700] rev 28610
tests: make config/help tests pass even if chgserver extension is loaded
It isn't important for these tests if "extensions.chgserver=" is set or not.
So let's make them ignore such lines.
Sean Farley <sean@farley.io> [Tue, 22 Mar 2016 16:05:22 -0700] rev 28609
setup: alphabetize hgext packages
timeless <timeless@mozdev.org> [Thu, 17 Mar 2016 21:03:22 +0000] rev 28608
remove: add progress support
timeless <timeless@mozdev.org> [Thu, 17 Mar 2016 18:19:36 +0000] rev 28607
remove: queue warnings until after status messages (
issue5140) (API)
Before this change, warnings were interspersed with (and easily drowned out by)
status messages.
API:
abstractsubrepo.removefiles has an extra argument warnings,
into which callees should append their warnings.
Note: Callees should not assume that there will be items in the list,
today, I'm lazily including any other subrepos warnings, but
that may change.
cmdutil.remove has an extra optional argument warnings,
into which it will place warnings.
If warnings is omitted, warnings will be reported via ui.warn()
as before this change (albeit, after any status messages).