Matt Harbison <matt_harbison@yahoo.com> [Thu, 05 Jul 2018 15:07:29 -0400] rev 38574
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 38573
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 38572
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 38571
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 38570
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 38569
obsutil: pass a diffopts object to context.diff
Boris Feld <boris.feld@octobus.net> [Sat, 23 Jun 2018 14:46:28 +0200] rev 38568
synthrepo: pass a diffopts object to context.diff
Boris Feld <boris.feld@octobus.net> [Sat, 23 Jun 2018 14:42:58 +0200] rev 38567
webutil: pass a diffopts object to context.diff
Boris Feld <boris.feld@octobus.net> [Sat, 23 Jun 2018 14:37:10 +0200] rev 38566
revset: pass an explicit `diffopts` objet to context.diff
Boris Feld <boris.feld@octobus.net> [Sat, 23 Jun 2018 14:30:31 +0200] rev 38565
template: directly instantiate diff options for diffstat
Boris Feld <boris.feld@octobus.net> [Sat, 23 Jun 2018 13:26:23 +0100] rev 38564
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 38563
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 38562
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 38561
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 38560
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 38559
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 38558
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 38557
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 38556
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 38555
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 38554
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 38553
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 38552
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 38551
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 38550
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 38549
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 38548
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 38547
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