Yuya Nishihara <yuya@tcha.org> [Tue, 12 Jun 2018 22:01:59 +0900] rev 38581
match: remove ctx argument from code path down to _buildmatch()
'ctx' was there only for filesets.
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Jun 2018 16:08:58 +0900] rev 38580
match: compose 'set:' pattern as matcher
Baby step towards porting fileset to matcher composition.
We can't use the exactmatcher since it would provide a computed set as exact
paths. That's why we use the predicatematcher with fset.__contains__. This
will be cleaned up later.
The test change in test-glog.t means that the "set:copied()" pattern is no
longer be processed as a slow path. That's because the fset is empty. This
will also change in future patches.
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Jun 2018 15:52:27 +0900] rev 38579
match: resolve 'set:' patterns first in _buildmatch()
This just makes the next patch less complicated. The order of 'set:' and
'subinclude:' expansion doesn't matter.
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Jun 2018 15:47:58 +0900] rev 38578
match: explode if unsupported pattern passed down to _regex() builder
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Jun 2018 21:13:24 +0900] rev 38577
match: add basic wrapper for boolean function
This serves as a generic wrapper for fileset predicates. In future patches,
a fileset expression will be mapped to a tree of matchers for a better support
of match attributes such as visitdir(). For example,
$ hg debugwalk -v 'set:contrib/** and binary()'
* matcher:
<intersectionmatcher
m1=<patternmatcher patterns='(?:contrib/.*$)'>,
m2=<predicatematcher pred=binary>>
...
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Jun 2018 17:19:31 +0900] rev 38576
stringutil: move _formatsetrepr() from smartset
I'll add a matcher subclass wrapping a boolean function, which will use
buildrepr() to provide debugging information in a similar way to
smartset.filteredset.
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Jun 2018 17:07:29 +0900] rev 38575
pycompat: move rapply() from util
I want to use rapply() in utils.* modules, but that would introduce a
reference cycle util -> utils.* -> util. Moving rapply() to pycompat
should be okay since it mostly serves as a compatibility helper.
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 05 Jul 2018 09:53:00 +0530] rev 38574
strip: improve help text for --no-backup option
Help text is modified to clearly define the meaning of
--no-backup option.
Differential Revision: https://phab.mercurial-scm.org/D3886
Matt Harbison <matt_harbison@yahoo.com> [Thu, 05 Jul 2018 15:07:29 -0400] rev 38573
test-convert: demonstrate an unstable hash issue for bzr -> hg -> hg
It looks like the manifest value changing is the only difference, but I'm not
sure why it's happening. I've got a similar divergence in a production repo
that was also converted from bzr and has an octopus merge[1]. Unlike here, the
manifest values for the destination merge commits reflect the initial merge
only, instead of all four merges agreeing like this test.
$ hg -R src_repo manifest -r 310 --debug | grep file # octopus fixup merge
2d8775bc2481bd28ac87038ecdf33e1dbddc80e9 644 file1
6adb9353a55bb8be76e71382efc724ec3ccf7ed5 644 file2
$ hg -R src_repo manifest -r 309 --debug | grep file # first merge
362e7cb5163153c4989daad1a834871ae849f205 644 file1
2c65d947191938c3ea616b7ceb7648ff3843261f 644 file2
$ hg -R dst_repo manifest -r 273 --debug | grep file # octopus fixup merge
362e7cb5163153c4989daad1a834871ae849f205 644 file1
2c65d947191938c3ea616b7ceb7648ff3843261f 644 file2
$ hg -R dst_repo manifest -r 272 --debug | grep file # first merge
362e7cb5163153c4989daad1a834871ae849f205 644 file1
2c65d947191938c3ea616b7ceb7648ff3843261f 644 file2
This divergence is espcially annoying because unlike changelog differences, I
haven't figured out a way to fix this in code. The only way I found to work
around it is to convert up to the point of divergence, `hg bundle` the bad
revision in the source, apply it to the destination, add a line to the shamap,
and fire off the conversion again.
But I suspect that there's more to it than just the octopus merge because
I also have a commit in the same repo, done in Mercurial (well after the
conversion) that is exhibiting a similar issue (and it's not a merge commit).
I'm almost positive that it was created with 4.4 or later. Any ideas?
[1] https://www.mercurial-scm.org/pipermail/mercurial/2018-June/050924.html
Matt Harbison <matt_harbison@yahoo.com> [Thu, 05 Jul 2018 15:07:29 -0400] rev 38572
convert: add a config knob for not saving the bzr revision
Now that the timestamp is fixed, the log of the Mercurial repo is still
unstable with --debug, because the bzr commit ID keeps changing. Both hg and
git implement `convert.*.saverev`, so do the same here.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 05 Jul 2018 15:07:29 -0400] rev 38571
test-bzr: use a fixed commit time
This will help stabilize the hashes when converting to a Mercurial repo.
Boris Feld <boris.feld@octobus.net> [Wed, 23 May 2018 15:31:44 +0200] rev 38570
diff: use `context.diff` to produce diff
We want to make sure `context.diff` if full featured. Using it in the main
diff code path is a good way to do so.
The end goal is to be able to easily compute diff between in-memory context.
Boris Feld <boris.feld@octobus.net> [Sat, 23 Jun 2018 15:03:05 +0200] rev 38569
context: no longer accept diff options as dictionnary
Since we already broke the API earlier in this stack, there are no point to
introducing a new deprecation warning.
Boris Feld <boris.feld@octobus.net> [Sat, 23 Jun 2018 15:00:16 +0200] rev 38568
obsutil: pass a diffopts object to context.diff
Boris Feld <boris.feld@octobus.net> [Sat, 23 Jun 2018 14:46:28 +0200] rev 38567
synthrepo: pass a diffopts object to context.diff
Boris Feld <boris.feld@octobus.net> [Sat, 23 Jun 2018 14:42:58 +0200] rev 38566
webutil: pass a diffopts object to context.diff
Boris Feld <boris.feld@octobus.net> [Sat, 23 Jun 2018 14:37:10 +0200] rev 38565
revset: pass an explicit `diffopts` objet to context.diff
Boris Feld <boris.feld@octobus.net> [Sat, 23 Jun 2018 14:30:31 +0200] rev 38564
template: directly instantiate diff options for diffstat
Boris Feld <boris.feld@octobus.net> [Sat, 23 Jun 2018 13:26:23 +0100] rev 38563
tests: update test-context.py to use diffopts as diff argument
Boris Feld <boris.feld@octobus.net> [Thu, 28 Jun 2018 16:11:13 +0200] rev 38562
diffutil: extract diff options code into a dedicated util-module
We want to be able to create and use diffoptions in more places. Currently the
official function to instantiate diffoptions live into `mercurial.patch`. A
module too high level to be easily imported in some places.
So we extract the diff options related function in their own utility module.
Augie Fackler <augie@google.com> [Thu, 05 Jul 2018 01:04:32 -0400] rev 38561
packaging: add fedora 28
Differential Revision: https://phab.mercurial-scm.org/D3892
Augie Fackler <augie@google.com> [Thu, 05 Jul 2018 02:11:06 -0400] rev 38560
packaging: add missing path segments in cp statements in fedora build
Differential Revision: https://phab.mercurial-scm.org/D3891
Augie Fackler <augie@google.com> [Thu, 05 Jul 2018 01:07:00 -0400] rev 38559
packaging: fix misplaced ( in docker-fedora rule definition
Differential Revision: https://phab.mercurial-scm.org/D3890
Augie Fackler <augie@google.com> [Thu, 05 Jul 2018 01:04:22 -0400] rev 38558
packaging: make help output correct for fedora and centos targets
Differential Revision: https://phab.mercurial-scm.org/D3889
Augie Fackler <augie@google.com> [Thu, 05 Jul 2018 01:02:59 -0400] rev 38557
packaging: remove stray = that confuses make(1) on my Mac
Differential Revision: https://phab.mercurial-scm.org/D3888
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 01 Jul 2018 14:25:44 -0700] rev 38556
manifest: define and implement addgroup() on manifestlog
Changegroup code was bypassing our manifest interface and calling a
method on the private revlog attribute.
This commit formalizes the interface for adding a group of
revisions from deltas and changes the changegroup code to use it.
This enables alternate manifest storage to work with changegroup
application operations (like `hg unbundle` and `hg pull`).
Differential Revision: https://phab.mercurial-scm.org/D3883
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Jul 2018 12:12:49 -0700] rev 38555
manifest: define and implement rev() on manifestlog
Various code is accessing repo.manifestlog._revlog - a private
attribute. This bypasses our interface and makes it difficult to
implement non-revlog manifest storage.
This commit adds a rev() method to the manifestlog interface and
class and teaches callers to use it.
Ideally this method wouldn't exist, as very few consumers should
need to resolve the revision number of a manifest. Again, the
primary goal of interface work is to establish and use interfaces
first and to improve them later.
Differential Revision: https://phab.mercurial-scm.org/D3882
Martin von Zweigbergk <martinvonz@google.com> [Mon, 02 Jul 2018 11:14:13 -0700] rev 38554
tests: don't allow reodering of glob/re lines across non-glob/re lines
As shown in the test case added in the previous patch, it can be
really hard to interpret diffs from the test runner if there are
multiple lines that would match a given glob or regular expression. It
looks like this has been the case since
1ad0ddf8cccc (run-tests: teach
_processoutput to handle multiple lines of churn, 2016-03-17). It
seems like the point of that was to preserve the "(glob)" annotation
on lines even if they got moved. This patch tries to preserve that but
only allows the lines to be moved past other glob/re lines.
Differential Revision: https://phab.mercurial-scm.org/D3881
Martin von Zweigbergk <martinvonz@google.com> [Fri, 29 Jun 2018 11:29:03 -0700] rev 38553
tests: add test showing puzzling test output with (glob) lines
When using multiple (glob) lines, the test runner often moves the
lines around in the output on failure. I have run into this problem
many times. The added test shows one example of this. Note that it
doesn't show the mismatching lines and instead shows diff hunks that
appear to replace a literal by a glob, and other hunks that should
clearly match.
Differential Revision: https://phab.mercurial-scm.org/D3880
Martin von Zweigbergk <martinvonz@google.com> [Tue, 03 Jul 2018 15:30:22 -0700] rev 38552
tests: move handling of None "el" out of linematch()
It just seems odd for linematch() to know what None means.
Differential Revision: https://phab.mercurial-scm.org/D3879
Martin von Zweigbergk <martinvonz@google.com> [Mon, 02 Jul 2018 00:05:54 -0700] rev 38551
tests: remove some redundant code in run-tests
These two lines also happen below if "r" is truthy, which it is in
this case since it's equal to "retry".
Differential Revision: https://phab.mercurial-scm.org/D3878
Martin von Zweigbergk <martinvonz@google.com> [Mon, 02 Jul 2018 00:02:31 -0700] rev 38550
tests: don't reimplement enumerate() in run-tests
Differential Revision: https://phab.mercurial-scm.org/D3877
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 05 Jul 2018 09:47:11 +0530] rev 38549
histedit: improve help text for --no-backup option
Improved help text for --no-backup option to clearly
define it's meaning.
Differential Revision: https://phab.mercurial-scm.org/D3885
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 22 Jun 2018 23:53:43 +0530] rev 38548
histedit: add --no-backup option (
issue5825)
This option provides a functionality to not store a backup
while aborting histedit in between. Also added tests for the
same.
Differential Revision: https://phab.mercurial-scm.org/D3872
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 30 Jun 2018 18:55:04 -0700] rev 38547
tests: use interfaceutil in simplestorerepo
Without it, we crash at module import time.
This has likely been busted since
856f381ad74b.
Differential Revision: https://phab.mercurial-scm.org/D3884
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 29 Jun 2018 01:35:09 +0530] rev 38546
rebase: improve output of --dry-run
Improved output when in dryrun, for user to make sure that
no change will be written to repository.
Differential Revision: https://phab.mercurial-scm.org/D3764
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Jul 2018 22:18:46 +0900] rev 38545
status: add support for log-like template keywords and functions
It's bound to ctx2 since "hg status" can be considered to show the status
of the files at ctx2 given ctx1 as the base.
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Jul 2018 22:11:23 +0900] rev 38544
resolve: add support for log-like template keywords and functions
It uses wctx as the associated revision since "hg resolve" is the command
to manipulate the working directory files.
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Jul 2018 22:06:53 +0900] rev 38543
manifest: add support for log-like template keywords and functions
"hg manifest --all" isn't supported since it has no single associated
revision.
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Jul 2018 22:01:20 +0900] rev 38542
files: add support for log-like template keywords and functions
Note that the ctx does not point to the revision where the file was
last changed, but the revision specified by -rREV option.
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Jul 2018 21:55:37 +0900] rev 38541
files: automatically populate fields referenced from template
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Jul 2018 22:02:53 +0900] rev 38540
grep: add support for log-like template keywords and functions
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Jul 2018 21:47:43 +0900] rev 38539
cat: add support for log-like template keywords and functions
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Jul 2018 22:22:07 +0900] rev 38538
bookmarks: add support for log-like template keywords and functions
This is basically the same as
5d9b765dbe15 "tags: unblock log-like template
keywords and functions."
Danny Hooper <hooper@google.com> [Tue, 26 Jun 2018 16:29:55 -0700] rev 38537
fix: add progress bar for number of file revisions processed
This ensures responsiveness when the configured tools are slow or numerous.
Differential Revision: https://phab.mercurial-scm.org/D3848
Danny Hooper <hooper@google.com> [Tue, 26 Jun 2018 15:30:49 -0700] rev 38536
fix: use a worker pool to parallelize running tools
This is important for usability when tools are slow or numerous.
Differential Revision: https://phab.mercurial-scm.org/D3846
Danny Hooper <hooper@google.com> [Tue, 26 Jun 2018 15:27:29 -0700] rev 38535
worker: support more return types in posix worker
This allows us to return things that aren't tuple(int, str) from worker
functions. I wanted to use marshal instead of pickle, but it seems to read from
the pipe in non-blocking mode, which means it stops before it sees the results.
The windows worker already supports arbitrary return values without
serialization, because it uses threads instead of subprocesses.
Differential Revision: https://phab.mercurial-scm.org/D3845
Boris Feld <boris.feld@octobus.net> [Tue, 19 Jun 2018 19:18:31 +0100] rev 38534
debug: process --debug flag earlier
This allow the verbosity level to be set correctly during extension
initialization.