Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Nov 2019 14:31:08 -0800] rev 4917
obslog: make changeset available to templater
obslog templating currently has very limited support for templating
the precursor changeset (when available). The only available keywords
are {node}, {rev}, and {shortdescription}. This patch makes the entire
changeset available to the templater by passing it to
formatter.context(). That function has been available since Mercurial
4.2.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 16 Oct 2019 11:10:04 -0700] rev 4916
tests: simplify by pruning unwanted changesets a little earlier
The pruned commits are not relevant to the test case, so let's clean
them up at the end of the previous test case instead of part-way
through the next one.
Anton Shestakov <av6@dwimlabs.net> [Fri, 01 Nov 2019 17:54:09 +0700] rev 4915
evolve: use more often seen metavariables in command synopsis strings
Also use ellipsis when multiple options are acceptable.
Anton Shestakov <av6@dwimlabs.net> [Fri, 01 Nov 2019 17:52:43 +0700] rev 4914
topic: add more options to command synopsis string
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 11 Oct 2019 16:53:52 +0200] rev 4913
debian: also build with python3
We build with Python 3 along with Python 2. The binary package will
contain the extension for both python version. This is to ease
transition until the mercurial package in Debian uses Python 3. The
documentation is still built with Python 2 because it needs Mercurial
(which is currently Python 2).
Denis Laxalde <denis@laxalde.org> [Fri, 18 Oct 2019 10:17:53 +0200] rev 4912
debian: update debhelper compat
Level before 9 are deprecated says debhelper 12. Upgrade to 10, which is
available in Debian oldstable and old Ubuntu releases to be conservative
(and since we probably don't need more).
Denis Laxalde <denis@laxalde.org> [Thu, 17 Oct 2019 20:33:02 +0200] rev 4911
debian: make it possible to by-pass doc build
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 15 Oct 2019 11:39:58 +0200] rev 4910
debian: define extend-diff-ignore for dpkg-source
This makes it possible to build the source package from a hg checkout
(and a sdist) by having dpkg-source ignore files not distributed in
sdist.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 11 Oct 2019 17:05:37 +0200] rev 4909
debian: use pybuild and dh_sphinxdoc
Use pybuild because it's kind of standard nowadays.
Use sphinxdoc debhelper to have a Depends: libjs-sphinxdoc and common
files (JS/CSS) symlinked.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 15 Oct 2019 11:41:22 +0200] rev 4908
debian: mark 9.2.1-1 as released
Martin von Zweigbergk <martinvonz@google.com> [Sat, 19 Oct 2019 10:42:09 -0700] rev 4907
obsexchange: delete dead code for old exchange protocol
Dead since 79a926b557f1 (compat: drop support for older exchange
protocol, 2017-10-25).
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 Oct 2019 01:14:42 +0200] rev 4906
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 Oct 2019 01:11:13 +0200] rev 4905
branching: merge the stable branch with the mercurial-5.1 branch
This revert all the test changes to match the expected output for mercurial 5.1.
Anton Shestakov <av6@dwimlabs.net> [Thu, 10 Oct 2019 08:22:41 +0700] rev 4904
tests: add the new "-r" bit to the usual merge hint
CORE-TEST-OUTPUT-UPDATE: 8197b395710e
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 Oct 2019 01:07:58 +0200] rev 4903
test-output: reinstalled test change for 5.2
This effectively reinstall:
* 8345b852cd4f
* e804d5a7c193
* 62b60fc1983d
* 2d85de79ead8
This mean backing out the following backout changeset:
* 2eab4363fc62
* c1cc5b1f813a
* 015cdd3fa469
* 3ba1c9dbf462
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 Oct 2019 00:58:56 +0200] rev 4902
test-compat: opening test compatibility branch for mercurial 5.1
5.2 has a release candidate.
Denis Laxalde <denis@laxalde.org> [Thu, 17 Oct 2019 21:03:19 +0200] rev 4901
py3: encode/decode with going through ui in rst directive
mercurial's ui wants bytes, doctutils wants text.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 11 Oct 2019 16:51:13 +0200] rev 4900
py3: fix setup.py --version
Before:
$ python3 setup.py --version
b'9.3.0.dev'
After:
$ python3 setup.py --version
9.3.0.dev
Manuel Jacob <me@manueljacob.de> [Wed, 16 Oct 2019 18:12:53 +0200] rev 4899
rewind: preserve date
Anton Shestakov <av6@dwimlabs.net> [Wed, 09 Oct 2019 21:22:03 +0700] rev 4898
metaedit: don't change commit date by default (issue5994)
We deliberately unset devel.default-date to allow hg commands to see the real
system date, that demonstrates that metaedit doesn't fall back to system date
for any of these commands.
Anton Shestakov <av6@dwimlabs.net> [Wed, 09 Oct 2019 20:16:38 +0700] rev 4897
tests: simply use testlib/common.sh in test-metaedit.t
Anton Shestakov <av6@dwimlabs.net> [Wed, 09 Oct 2019 20:12:54 +0700] rev 4896
tests: turn glog shell function into an alias in test-metaedit.t
Mostly because we already have an alias and because creating an alias is the
usual way to customize log -G in tests.
Anton Shestakov <av6@dwimlabs.net> [Wed, 09 Oct 2019 20:07:42 +0700] rev 4895
tests: clean up test-metaedit.t
Mostly just artifacts from the times when it was one big test-evolve.t. All
completely unused nowadays.
Rodrigo Damazio <rdamazio@google.com> [Sun, 06 Oct 2019 02:30:12 -0400] rev 4894
help: categorizing evolve and topic commands
This makes them show up under the right categories in 'hg help'.
Differential Revision: https://phab.mercurial-scm.org/D6999
Anton Shestakov <av6@dwimlabs.net> [Thu, 10 Oct 2019 08:22:41 +0700] rev 4893
tests: add the new "-r" bit to the usual merge hint
CORE-TEST-OUTPUT-UPDATE: 8197b395710e
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 14:31:19 -0400] rev 4892
branching: merge back into default
Anton Shestakov <av6@dwimlabs.net> [Mon, 07 Oct 2019 14:38:56 +0700] rev 4891
pick: don't create any successors when there were no changes (issue6093)
For example, when a changeset that user is trying to pick was already grafted
or rebased (and no obsmarkers were created), pick will naturally say that
there's no changes to commit and will not create the new commit. In that case
it should not mark any changeset as a successor of the picked changeset,
because the actual file changes were already there before picking.
Technically, pick could (and did before this patch) mark the wdir commit as a
successor of picked changeset (may be useful in the most trivial cases when
e.g. wdir is a graft of the required change), but there are cases when the
picked change is introduced in an ancestor of wdir, or even in multiple
ancestors piece by piece. Pick definitely shouldn't be trying to guess
something this complicated, so with this patch it always marks the picked
change as pruned if it gave no changes to commit.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 14:26:19 -0400] rev 4890
packaging: mark as development version
This avoid confusion.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 14:22:21 -0400] rev 4889
Added tag 9.2.1 for changeset d989bab720e5
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:50:13 -0400] rev 4888
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:50:11 -0400] rev 4887
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:50:09 -0400] rev 4886
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:50:07 -0400] rev 4885
test-compat: merge mercurial-4.9 into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:50:05 -0400] rev 4884
test-compat: merge mercurial-5.0 into mercurial-4.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:50:03 -0400] rev 4883
test-compat: merge stable into mercurial-5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:48:25 -0400] rev 4882
packaging: prepare version 9.2.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:46:13 -0400] rev 4881
packaging: update changelog
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:56:37 -0400] rev 4880
manifest: exclude the gitlab file
(oops)
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 04 Oct 2019 14:16:52 -0400] rev 4879
branching: merge with stable
Ian Moody <moz-ian@perix.co.uk> [Thu, 03 Oct 2019 23:48:50 +0100] rev 4878
py3: return unicode from setup.py's get_version
py3 expects the version number for eggs to be unicode, so despite 9.2.0 being
the first evolve release with beta py3 support it isn't currently pip
installable since it dies with:
File "*/setuptools/command/egg_info.py", line *, in tagged_version
return safe_version(version + self.vtags)
TypeError: can't concat str to bytes
The `setup.py install` test added in a previous commit should cover this since
it died in a different but similar way before.
Ian Moody <moz-ian@perix.co.uk> [Thu, 03 Oct 2019 23:39:37 +0100] rev 4877
py3: remove smartquotes from README
They break running setup.py with py3 but only in tests, because in the test
environment `locale.getpreferredencoding()` is ANSI_X3.4-1968, so the file is
`open()`ed with that as the encoding. An alternative for fixing this would be
to make the `open()` call with `encoding='utf-8'` under py3, which would be
safe against any future non-ascii in README.
Ian Moody <moz-ian@perix.co.uk> [Thu, 03 Oct 2019 23:20:47 +0100] rev 4876
setup: make runnable from other dirs
Currently it fails when run in that way for two reasons:
- the description is loaded from the README file but with a path relative to
the working directory
- module references have the same issue, which is fixed with package_dir.
Ian Moody <moz-ian@perix.co.uk> [Thu, 03 Oct 2019 23:17:13 +0100] rev 4875
setup: add a test for running setup.py
`python3 -m pip install hg-evolve==9.2.0` currently fails, despite 9.2.0 being
the first beta py3 release, because of unicode issues with the version number.
`setup.py install` is a proxy test for pip install since it also suffers from
similar, however the test currently fails due to running setup.py from a
different directory to the one it is in.
Also add a test for `hg version -v` with evolve enabled since a naive first
solution for the pip issue was to just change `__version__` to a `u''` string,
but that busts version display in `version -v`, which isn't currently picked up
by tests.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 04 Oct 2019 00:15:53 -0400] rev 4874
gitlab-ci: be bold and try to run the full test in them
This is a basic version that should work reasonably well. The setup is a bit
costly and the cleanup is not guaranteed yet.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 03 Oct 2019 22:46:21 -0400] rev 4873
gitlab-ci: basic test with flake8
Let us step into the future.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 28 Sep 2019 13:15:02 +0200] rev 4872
branching: merge back with stable
version 9.2.0 have been released
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 12:50:19 +0200] rev 4871
branching: preserve test change on stable
CORE-TEST-OUTPUT-UPDATE: cdf0e9523de1
CORE-TEST-OUTPUT-UPDATE: d7304434390f
CORE-TEST-OUTPUT-UPDATE: 181ee2118a96
CORE-TEST-OUTPUT-UPDATE: 181ee2118a96
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 28 Sep 2019 13:14:07 +0200] rev 4870
packing: mark as development version
This avoid confusion when installing from source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 28 Sep 2019 13:00:20 +0200] rev 4869
Added tag 9.2.0 for changeset 40795751be1c
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 13:03:22 +0200] rev 4868
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 13:03:20 +0200] rev 4867
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 13:03:18 +0200] rev 4866
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 13:03:16 +0200] rev 4865
test-compat: merge mercurial-4.9 into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 13:03:14 +0200] rev 4864
test-compat: merge mercurial-5.0 into mercurial-4.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 13:03:12 +0200] rev 4863
test-compat: merge stable into mercurial-5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 28 Sep 2019 12:51:03 +0200] rev 4862
changelog: update for coming 9.2.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 12:49:36 +0200] rev 4861
test: backed out test change applied in 2d85de79ead8
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 12:49:15 +0200] rev 4860
test: backed out test change applied in 62b60fc1983d
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 12:48:44 +0200] rev 4859
test: backed out test change applied in e804d5a7c193
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 12:48:28 +0200] rev 4858
test: backed out test change applied in 8345b852cd4f
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 06:55:05 +0200] rev 4857
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Sep 2019 19:43:19 +0200] rev 4856
stable-doc: note about not storing smaller range
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Sep 2019 19:43:02 +0200] rev 4855
stable-doc: small typo
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Sep 2019 19:31:44 +0200] rev 4854
stable-doc: add more advanced examples
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Sep 2019 18:23:37 +0200] rev 4853
stable-doc: add multiples example for the simple cases
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 26 Sep 2019 10:00:51 +0200] rev 4852
test-output: oops
CORE-TEST-OUTPUT-UPDATE: 181ee2118a96
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Sep 2019 03:17:46 +0200] rev 4851
test: update part count in tests
An off by one error got fixed upstream.
CORE-TEST-OUTPUT-UPDATE: 181ee2118a96
Anton Shestakov <av6@dwimlabs.net> [Mon, 09 Sep 2019 09:28:47 +0700] rev 4850
evolve: check that relocating makes sense in _solvedivergent() (issue5958)
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 Oct 2018 19:32:04 +0200] rev 4849
tests: demonstrate content divergence causing "relocate node on top of itself"
Kyle Lippincott <spectral@google.com> [Mon, 16 Sep 2019 12:44:38 -0700] rev 4848
cmdstate: introduce a "saver" contextmanager and use it in place of save()
Previously, the state was only saved in some paths out of these functions. This
can be problematic, if the user ctrl-c's (or `kill -9`'s) the process, or we
exit out of `relocate` for anything besides the "expected" reason, we won't
record that we were in the middle of an evolve.
One of our users has discovered that this leaves hg in a weird state; the user
did something like this:
```
$ hg evolve
<something goes wrong with the merge tool, hits ctrl-c>
<deals with the merge conflicts>
$ hg evolve --continue
abort: no interrupted evolve to continue
$ hg evolve
abort: uncommitted changes
# Note: commands.status.verbose=True is set.
$ hg status
M foo
# The repository is in an unfinished *update* state.
# No unresolved merge conflicts
# To continue: hg update
```
The user did an `hg update`, but it didn't actually do anything besides take it
out of the unfinished update state (the files were still dirty in the working
directory).
Kyle Lippincott <spectral@google.com> [Mon, 16 Sep 2019 12:42:50 -0700] rev 4847
cmdstate: avoid setting a default argument to a mutable object (`{}`)
If there's ever more than one cmdstate for the lifetime of the process, this can
cause surprising behavior where the later cmdstates pick up options from the
earlier ones.
I've not seen any evidence this is actually causing any issues, but it's subtle
enough that it should probably be fixed to help save significant debugging time
later.
Kyle Lippincott <spectral@google.com> [Mon, 16 Sep 2019 12:42:11 -0700] rev 4846
cmdstate: switch to new-style classes
This isn't a huge issue and isn't necessary on Python3, but we're still Python2
compatible and we should be consistent (and strongly prefer new-style classes);
this is the only class that is not deriving from object that I could find.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Sep 2019 12:42:27 +0200] rev 4845
branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Fri, 19 Jul 2019 16:26:48 +0200] rev 4844
docs: add example for the `prune` command
Giving at least one example helps clear up the syntax, especially since most
options will follow a very similar pattern.
Anton Shestakov <av6@dwimlabs.net> [Thu, 19 Sep 2019 11:46:16 +0700] rev 4843
tests: add some more actions to test-issue-6028, describe what's being done
This patch does two things: it explains what's happening in the test file so
it's easier to understand, and also it adds checks that make sure something
like swapping merge parents is not accidentally breaking anything.
The primary reason to touch this test file was that it was broken by a change
in core's merge.graft() that erroneously swapped merge parents. Since only
evolve uses merge.graft() for merge commits and there aren't any tests in core
for it, let's test it here. Plus, this test case is pretty simple and these
additional checks don't make it too complicated.
Valentin Gatien-Baron <vgatien-baron@janestreet.com> [Fri, 13 Sep 2019 16:04:32 +0200] rev 4842
topic: fix some API to make it more robust
The new code can deal with changes in upstream mercurial.
Anton Shestakov <av6@dwimlabs.net> [Tue, 10 Sep 2019 15:43:20 +0700] rev 4841
rewriteutil: move allowdivergence check to foldcheck()
foldcheck() calls precheck() first and then performs more fold-specific checks.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 12 Sep 2019 12:35:42 +0200] rev 4840
test: change to output around transaction timing
CORE-TEST-OUTPUT-UPDATE: d7304434390f
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Sep 2019 07:38:46 +0200] rev 4839
branching: merge with stable
There have been multiple fix on stable.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 08 Sep 2019 21:24:45 +0200] rev 4838
stablerange: add some data from field testing
This show that in number of stable range to track stay reasonable.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 08 Sep 2019 17:50:48 +0200] rev 4837
stablerange: add a debugstablerangecache command
The command display get some data about stable range in a repository.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 08 Sep 2019 17:49:26 +0200] rev 4836
stablerange: add some documentation about the general concept
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 08 Sep 2019 17:47:37 +0200] rev 4835
stablesort: add some field data about stable sort cache
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 08 Sep 2019 13:31:28 +0200] rev 4834
stablesort: introduce a small debugstablesortcache command
This give a small insight on the cache content.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 08 Sep 2019 11:56:11 +0200] rev 4833
stablesort: add some documentation for stablesort
This should help people to understand what is going on here.
Anton Shestakov <av6@dwimlabs.net> [Sat, 07 Sep 2019 13:03:29 +0700] rev 4832
fold: check allowdivergence before folding obsolete changesets (issue5817)
Anton Shestakov <av6@dwimlabs.net> [Wed, 28 Aug 2019 18:30:58 +0700] rev 4831
tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net> [Fri, 06 Sep 2019 13:23:25 +0700] rev 4830
stack: remove unnecessary copying of rdependencies
rdependencies is not modified in any way in this method, so no need to copy it.
Anton Shestakov <av6@dwimlabs.net> [Fri, 06 Sep 2019 12:53:46 +0700] rev 4829
stack: make a deep copy of `dependencies` before modifying its items
The algorithm later on in this method uses .remove() to remove individual
elements from items in dependencies, which before this patch modified the
cached property contents. So for further use that dictionary was in the form of
{1: set([])}, i.e. all sets were empty.
This deep copy block could be way simpler, but the problem is that sometimes we
get lists of _succs() from evolvebits.builddependencies(). Note: this happens
only in topic's stack version of builddependencies() and it looks like a
suboptimal way to handle multiple successors (see evolve's counterpart
function).
stack.builddependencies method is removed, it has served its purpose (see the
previous patch).
Anton Shestakov <av6@dwimlabs.net> [Fri, 06 Sep 2019 12:16:34 +0700] rev 4828
stack: demonstrate that not reusing cached property gives different results
Instead of using self._dependencies, which is a cached property, let's get
fresh deps and rdeps in stack.revs method using a newly introduced
stack.builddependencies method (will be removed in the next patch).
This makes it easier to explain why the next patch is correct.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 03 Sep 2019 12:48:47 +0200] rev 4827
branching: merge with stable
Anton Shestakov <av6@dwimlabs.net> [Tue, 03 Sep 2019 13:02:20 +0700] rev 4826
changelog: add missing entry for 9af212b8565a
Anton Shestakov <av6@dwimlabs.net> [Tue, 03 Sep 2019 13:02:20 +0700] rev 4825
evolve: test that target is not orig in _solveunstable() (issue6097)
`newer` is the result of obsutil.successorssets() and can be [[orig.node()]],
in which case later on in this function evolve will try to rebase orig onto
orig, which is not correct. So let's just check this particular case.
This fix doesn't cover cases when successorssets() result contains orig.node()
not at [0][0]. Such cases need tests.
Anton Shestakov <av6@dwimlabs.net> [Mon, 02 Sep 2019 11:17:23 +0700] rev 4824
tests: demonstrate an orphan changeset cause "relocate node on top of itself"
See issue6097.
Anton Shestakov <av6@dwimlabs.net> [Fri, 30 Aug 2019 11:31:19 +0700] rev 4823
obslog: only indent the first chunk and chunks just after newlines (issue6175)
Anton Shestakov <av6@dwimlabs.net> [Fri, 30 Aug 2019 11:28:02 +0700] rev 4822
tests: demonstrate too many spaces in olog -p output with word-diff
Anton Shestakov <av6@dwimlabs.net> [Thu, 25 Jul 2019 18:37:16 +0800] rev 4821
rewind: add --keep flag that "doesn't modify working directory"
The actual logic is more complicated than the flag description, but it's
sufficiently similar to other --keep flags in action.
Unlike strip (or prune), rewind always needs to modify the working directory to
commit new revisions that "revive" old ones [1], see _revive_revision() (and
rewriteutil.rewrite()). Because of that we don't prevent rewind from modifying
wdir, but instead use hg.updaterepo() to update to the old changeset after the
"revival" process is complete. Then we rebuild the dirstate based on the commit
that rewind would update to without --keep.
Since dirstate.rebuild() doesn't restore status of some files (added, removed,
also copies and renames), we rely on cmdutil.revert(). It's a fairly crude
solution and needs to be removed when implementing the missing copy tracing
between oldctx and newctx (which are related only by obsolescence).
[1] IOW this means that --keep doesn't allow rewinding if wdir is dirty (unlike
e.g. strip).
Anton Shestakov <av6@dwimlabs.net> [Tue, 23 Jul 2019 18:05:40 +0800] rev 4820
tests: separate rewinding of merge commits, temporarily drop an error case
The error case will come back in the following commit, because it organically
fits there without the need of a separate working clone.
Raphaël Gomès <rgomes@octobus.net> [Wed, 07 Aug 2019 15:22:16 +0200] rev 4819
python3: add python3 beta support to the CHANGELOG
Raphaël Gomès <rgomes@octobus.net> [Wed, 07 Aug 2019 15:21:56 +0200] rev 4818
python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net> [Wed, 07 Aug 2019 15:21:17 +0200] rev 4817
python3: add supported python versions to setup.py
Mercurial technically can support Python 3.5 (although no lower, see its
setup.py), but `evolve` probably won't because it represents more work
for an underrepresented Python version. If you happen to *really* need
evolve to work on Python 3 and you're reading this message, send an email
to the mailing list, or contribute patches.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Aug 2019 12:48:58 +0200] rev 4816
test: update output for wider cache warming
CORE-TEST-OUTPUT-UPDATE: cdf0e9523de1
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 06 Aug 2019 19:28:51 +0200] rev 4815
branching: merge with stable
format source worked smoothly :-)
Raphaël Gomès <rgomes@octobus.net> [Tue, 06 Aug 2019 15:06:38 +0200] rev 4814
python3: use format-source to run byteify-strings in .py files
Using the format-source extension smooth out the pain of merging after
auto-formatting.
This change makes all of the Evolve test suite pass under python3 and has
added benefit of being 100% automated using mercurial's `byteify-strings`
script version 1.0 (revision 11498aa91c036c6d70f7ac5ee5af2664a84a1130).
How to benefit from the help of format-source is explained in the README.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 06 Aug 2019 19:27:54 +0200] rev 4813
topic: add a new random attribute
(This is mostly an excuse to test the format-source setup)
Raphaël Gomès <rgomes@octobus.net> [Tue, 06 Aug 2019 15:06:27 +0200] rev 4812
python3: enforce byte prefix for vfs.open()
Changeset ea8da5aa23c6e723d7f0006387a1a20eef58fc9a added raw prefix to open(),
but also to vfs.open(). The latter only handles bytestring arguments.
Raphaël Gomès <rgomes@octobus.net> [Tue, 06 Aug 2019 11:35:09 +0200] rev 4811
python3: add raw prefix to sqlite isolation level
Raphaël Gomès <rgomes@octobus.net> [Tue, 06 Aug 2019 11:34:31 +0200] rev 4810
python3: add ignore block around python 2 compatibility if branch
Raphaël Gomès <rgomes@octobus.net> [Tue, 06 Aug 2019 16:23:57 +0200] rev 4809
flake8: silence F633 error
Raphaël Gomès <rgomes@octobus.net> [Tue, 06 Aug 2019 11:33:53 +0200] rev 4808
python3: add raw prefix to edge-cases kwargs-like objects
Raphaël Gomès <rgomes@octobus.net> [Tue, 06 Aug 2019 11:32:01 +0200] rev 4807
python3: add raw prefix to open()-like functions
Raphaël Gomès <rgomes@octobus.net> [Tue, 06 Aug 2019 11:30:45 +0200] rev 4806
python3: add raw prefix to all array.array() calls
Raphaël Gomès <rgomes@octobus.net> [Tue, 06 Aug 2019 11:29:35 +0200] rev 4805
python3: add raw prefix to "troubles"-related dicts
The `byteify-strings.py` script cannot know that these will be used in a way
that requires to use a system string without some pretty hardcore hardcoding.
Raphaël Gomès <rgomes@octobus.net> [Tue, 06 Aug 2019 11:26:29 +0200] rev 4804
python3: add raw prefix in cases harder to analyze at the token level
The `byteify-strings.py` script would be a lot more complicated if it had to
do backtracking and other more advanced static analysis to figure our those
cases, so we have to add the raw prefix to those cases manually.
Raphaël Gomès <rgomes@octobus.net> [Tue, 06 Aug 2019 11:17:38 +0200] rev 4803
python3: add byte prefix for objects that look like kwargs but aren't
The `byteify-strings.py` script has no way of knowing that those aren't
acutally kwargs since it works purely at the tokenization level, so we
have to add the byte prefix to their keys manually.
Raphaël Gomès <rgomes@octobus.net> [Tue, 06 Aug 2019 11:10:36 +0200] rev 4802
python3: mark all SQL queries as raw strings
Raphaël Gomès <rgomes@octobus.net> [Tue, 06 Aug 2019 11:07:16 +0200] rev 4801
python3: prefix all regex to work with python 2 and 3
Taapas Agrawal <taapas2897@gmail.com> [Tue, 06 Aug 2019 00:16:05 +0200] rev 4800
pick: added support for hg abort
This patch isolates abort logic for `hg pick --abort`
as `abortpick()`. For independent calls via `hg abort`
`hgabortpick()` is created and registered to the state
detection API.
Results are shown as tests.
Taapas Agrawal <taapas2897@gmail.com> [Tue, 06 Aug 2019 00:16:01 +0200] rev 4799
pick: factor our the abort function
This prepare the upcoming support for `hg pick` in `hg abort.
Taapas Agrawal <taapas2897@gmail.com> [Thu, 11 Jul 2019 22:56:46 +0530] rev 4798
abort: added support for evolve to hg abort
This patch adds support of `hg evolve --abort` to `hg abort`
plan.
This involves creating a `hgabortevolve()` function under
`evolvecmd` which ensures abortion of evolve via `hg abort`.
This function is then registered using `addunfinished()` in
`__init__.py`.
Results are shown as tests.
Taapas Agrawal <taapas2897@gmail.com> [Fri, 12 Jul 2019 23:43:25 +0530] rev 4797
evolve: fixed lock acquire before checking state
Before checking the states `repo.lock()` and `repo.wlock()` need
to be acquired. This was not happening in `evolve()` earlier.
This patch creates a seperate `_performevolve()` funtion which
can be then called with locks acquired.
This also removes the redundant lock acuquiring of `abortevolve`
and `continueevolve` as lock is now taken earlier.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 31 Jul 2019 10:52:14 -0700] rev 4796
py3: add back a progress(0) call lost in 8664231b47ac
I don't think it really matters, but it wasn't intentional, so let's
just restore the old behavior.
Kyle Lippincott <spectral@google.com> [Fri, 02 Aug 2019 13:00:11 -0700] rev 4795
prune: adjust 'nothing to prune' to imply user needs to specify revs to prune
Anton Shestakov <av6@dwimlabs.net> [Sat, 20 Jul 2019 17:33:00 +0800] rev 4794
rewind: working directory is the preferred term
Anton Shestakov <av6@dwimlabs.net> [Sat, 20 Jul 2019 16:51:44 +0800] rev 4793
rewind: add command synopsis
Ludovic Chabant <ludovic@chabant.com> [Fri, 28 Jun 2019 21:07:20 +0000] rev 4792
py3: make setup.py py3 compatible
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 Jul 2019 02:55:22 +0200] rev 4791
branching: merge stable back into default
The version has been released.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 Jul 2019 02:55:01 +0200] rev 4790
packaging: mark as development version
This help to avoid confusion when installing version from source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 Jul 2019 02:50:14 +0200] rev 4789
Added tag 9.1.0 for changeset 6f37fdad7ac1
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 16:47:17 +0200] rev 4788
packaging: update version number for 9.1.0 release
We are about to cut a release.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 Jul 2019 02:44:08 +0200] rev 4787
changelog: add missing entry for dfd88e3fa90a
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 16:41:19 +0200] rev 4786
packaging: groom changelog prior to release
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 14:43:20 +0200] rev 4785
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 14:43:17 +0200] rev 4784
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 14:43:15 +0200] rev 4783
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 14:43:12 +0200] rev 4782
test-compat: merge mercurial-4.9 into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 14:43:10 +0200] rev 4781
test-compat: merge mercurial-5.0 into mercurial-4.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 14:42:57 +0200] rev 4780
test-compat: merge stable into mercurial-5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 14:42:49 +0200] rev 4779
branching: merge the two mercurial-5.0 heads
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 13:19:54 +0200] rev 4778
test-compat: reverte output change from 4764e8436b2a (hg-5.1)
These change where applied in evolve's changeset 88c8ef4d703c.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 13:19:48 +0200] rev 4777
test-compat: reverte output change from f802a75da585 (hg-5.1)
These change where applied in evolve's changeset e2c548cc83b5.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 13:17:56 +0200] rev 4776
test-compat: reverte output change from c7d236b55a3e (hg-5.1)
These change where applied in evolve's changeset f162cafc5000.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 14:38:31 +0200] rev 4775
branching: merge default into stable to prepare 9.1.0
Time for a new version!
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 13:54:57 +0200] rev 4774
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 11:40:24 +0200] rev 4773
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 11:40:22 +0200] rev 4772
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 11:40:20 +0200] rev 4771
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 11:40:18 +0200] rev 4770
test-compat: merge mercurial-4.9 into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 11:40:16 +0200] rev 4769
test-compat: merge mercurial-5.0 into mercurial-4.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 11:40:14 +0200] rev 4768
test-compat: merge stable into mercurial-5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Jul 2019 18:29:59 +0200] rev 4767
test-compat: opening test compatibility branch for mercurial 5.0
5.1 has a release candidate.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 12:45:29 +0200] rev 4766
test-compat: close branch for mercurial-4.0
We dropped compatibility in 9.0.0
Kyle Lippincott <spectral@google.com> [Thu, 25 Jul 2019 09:59:41 -0700] rev 4765
prune: fix small grammatical issues in help text
Anton Shestakov <av6@dwimlabs.net> [Fri, 19 Jul 2019 17:40:45 +0800] rev 4764
docs: update evolve-faq.rst with new prune flag and proper vocabulary
Also strip trailing newlines.
Anton Shestakov <av6@dwimlabs.net> [Fri, 19 Jul 2019 17:25:29 +0800] rev 4763
prune: spell --successor flag without any unnecessary shortcuts
If a user wants to spell out -s, it makes sense to allow that. Before this
patch, prune would complain that --successor is not a recognized option.
Obviously people don't usually need to spell --successors by hand thanks to
shell completion (at least for Bash) using debugcomplete to see all available
flags, so this patch doesn't bring any need for more typing.
And thanks to Mercurial understanding shortened forms of command-line flags as
long as they are unambiguous, the old-style `--succ` flags still work normally,
and there are tests that use them. But two tests now use the full form to
demonstrate that both ways work.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 17 Jul 2019 12:47:37 -0700] rev 4762
py3: redefine "troublecategories" in evolve as a dict
We'll want to the keys to be bytes and the values to be unicode on
py3. Having it defined as a dict makes that easier (instead of
converting between the types with e.g. pycompat.sysbytes()). It was
kind of ugly to convert between the forms by stripping '_' from the
string anyway.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 12 Jul 2019 08:11:39 -0700] rev 4761
py3: store to __doc__ as str (unicode on py3)
Martin von Zweigbergk <martinvonz@google.com> [Wed, 17 Jul 2019 12:47:20 -0700] rev 4760
py3: also catch ImportError when relative import fails
Python 3 apparently raises an ImportError where Python 2 raised a
ValueError.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 12 Jul 2019 10:26:41 -0700] rev 4759
py3: convert exceptions to bytes using pycompat.bytestr()
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 16:00:25 -0700] rev 4758
py3: use "%d" for formatting integers
Martin von Zweigbergk <martinvonz@google.com> [Fri, 12 Jul 2019 08:17:25 -0700] rev 4757
py3: avoid "%s" for formatting None
Martin von Zweigbergk <martinvonz@google.com> [Fri, 12 Jul 2019 08:16:30 -0700] rev 4756
py3: use "%f" for formatting floating point number
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 15:30:43 -0700] rev 4755
py3: fix progress() functions to not use "%s" with int
Python3 doesn't support "%s" with int arguments (and not with None
arguments either, which this code was also using).
Martin von Zweigbergk <martinvonz@google.com> [Wed, 17 Jul 2019 11:45:37 -0700] rev 4754
py3: make random topic name generation consistent across py2/py3
random.choice() (and others based on random.randint()) changed between
py2 and py3 without a way to get the py2 behavior. However,
random.random() did not change, so we can re-implement random.choice()
based on that.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 12 Jul 2019 17:02:35 -0700] rev 4753
py3: convert str to bytes before passing to core exception
Martin von Zweigbergk <martinvonz@google.com> [Wed, 17 Jul 2019 11:03:09 -0700] rev 4752
py3: convert opts keys to bytes before passing to core APIs
kevpeng@google.com [Fri, 14 Jun 2019 18:44:43 -0700] rev 4751
evolve: further clarify when update is performed
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 15:30:40 -0700] rev 4750
py3: avoid comparing int and None
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 21:48:37 -0700] rev 4749
py3: avoid "%r" for list of byte strings, which produces b'' on py3
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 21:48:02 -0700] rev 4748
py3: avoid "%r" for byte string, which produces b'' on py3
Replaced by "'%s'", which I think is clearer anyway.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 14:46:17 -0700] rev 4747
py3: replace str(ctx) by bytes(ctx)
These are all for messages to the user and we don't want unicode for
that.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 16:04:17 -0700] rev 4746
py3: use inspect.signature() instead of inspect.getargspec() on py3
Martin von Zweigbergk <martinvonz@google.com> [Tue, 09 Jul 2019 10:56:42 -0700] rev 4745
py3: use array.array.{to,from}bytes() on py3
array.array.{to,from}string() still exists on py3, but they're
deprecated and generate warnings.
I've put the compat function in compat.pt for now. We can move into a
dedicated pycompat.py if we end up with a lot of py3 compat stuff.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 14:31:32 -0700] rev 4744
py3: config values can be bytes, but never unicode
Martin von Zweigbergk <martinvonz@google.com> [Sat, 13 Jul 2019 00:17:03 -0700] rev 4743
py3: call branchmap.items() on py3 and continue to call iteritems() on py2
Mercurial's source transformer also replaces the 'def iteritems(' in
branchmap by 'def items(', so we need to call whichever version is
there.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 12 Jul 2019 23:24:04 -0700] rev 4742
py3: switch from iteritems() to items() in the topics extension
The only remaining iteritems() call is on branchmap. That will be
dealt with in the next patch.
Martin von Zweigbergk <martinvonz@google.com> [Sun, 14 Jul 2019 22:34:36 -0700] rev 4741
py3: filter() now returns a generator, so wrap when we need a list
Martin von Zweigbergk <martinvonz@google.com> [Fri, 12 Jul 2019 23:19:50 -0700] rev 4740
py3: don't depend on map() iterating over its input
map(some_generator()) in py2 returns a list, while in py3 it returns a
generator, so the passed-in generator won't be called unless the
returned one is.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 16:49:01 -0700] rev 4739
py3: implement __bool__ in addition to __nonzero__
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 14:21:23 -0700] rev 4738
py3: replace iter.next() by next(iter)
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 14:16:48 -0700] rev 4737
py3: replace xrange() by range()
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 12:19:49 -0700] rev 4736
py3: read sqlite3 data as bytes
The py2 and py3 docs ([1] and [2]) disagree how to get bytes output,
but it seems obvious that this should be "bytes" to be compatible with
both.
[1] https://docs.python.org/2/library/sqlite3.html#sqlite3.Connection.text_factory
[2] https://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.text_factory
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 12:11:43 -0700] rev 4735
py3: sqlite3.connect() expects str arguments
Martin von Zweigbergk <martinvonz@google.com> [Fri, 12 Jul 2019 23:00:11 -0700] rev 4734
cleanup: remove check only needed for hg versions before 4.4
ui.edit() has had the "action" argument since 6e6452bc441d (editor:
use an unambiguous path suffix for editor files, 2017-08-30), which
was first released in hg version 4.4. Since we support only versions
higher than 4.5, we can drop this check.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 12 Jul 2019 08:20:24 -0700] rev 4733
split: remove an unnecessary (and confusingly typed) fallback revision
`opts.get('rev') or '.'` is either a list of strings or just a
string. It happened to work because `'.'[0] == '.'` on Python 2, but
it won't work on Python 3 (for byte strings). The fallback value
wasn't even needed (it was also set just after), so let's just remove
it.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 22:23:32 -0700] rev 4732
evolve: rename variable "children" to "child" where it's clearly singular
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 16:24:13 -0700] rev 4731
evolve: remove some unused variables
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 09:38:42 -0700] rev 4730
py3: back out 23323092f0a7
D6623 has now been accepted in Mercurial (commit 83666f011679), so
evolve commit 23323092f0a7 (py3: convert _origdoc to sysstr to match
__doc__, 2019-07-09) is not longer needed.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Jul 2019 18:06:14 +0200] rev 4729
branching: merge with stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 17 Jul 2019 17:58:44 +0200] rev 4728
touch: fix the inconsistent behavior of divergence catching logic (issue6107)
When touching a node, the way we check if it can lead to divergence
is we look at the successors sets of the rev being touched. And if
there is successor revs exists (excluding the case when that successor
set is (A,) for rev A) that means there will be divergence and we warn
the user.
This works fine but there is still a case (which is not covered by looking
at successor sets) which can lead to divergence.
That case is: when there is already a revision exists which is divergent
to the revision being touched. And performing the touch would revive
that "dead" divergence. (Dead because one of the revision is obsolete which
is the one we are touching)
And to see if there is any rev which is divergent to a particular rev
we already have a function which we can use here
i.e. `evolvecmd.divergentsets(repo, ctx_being_touched)`
Changes in test file demonstrate the fixed behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 29 Jun 2019 14:28:35 +0530] rev 4727
touch: add test which shows touch can fail to warn about divergence
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 17 Jul 2019 17:58:40 +0200] rev 4726
touch: clarify some inline documentation
Martin von Zweigbergk <martinvonz@google.com> [Mon, 15 Jul 2019 16:53:07 -0700] rev 4725
tests: update output for new branch cache messsages from Mercurial
This makes tests pass again after Mercurial commit c7d236b55a3e (py3:
fix formatting of branchmap log messages with repo.filtername=None,
2019-07-14).
CORE-TEST-OUTPUT-UPDATE: c7d236b55a3e
Anton Shestakov <av6@dwimlabs.net> [Sat, 13 Jul 2019 18:22:34 +0800] rev 4724
metaedit: allow operations on merge commits with some conditions
As with fold (see the previous patch), it's allowed to metaedit a merge commit
or a set of commits including merge commits (with --fold) as long as there are
less than 2 parents of the set not included in the said set.
Anton Shestakov <av6@dwimlabs.net> [Thu, 11 Jul 2019 18:07:03 +0800] rev 4723
fold: allow operations on merge commits with some conditions
It's possible to fold revision chains that include a single merge commit: just
fold everything into the merge commit while saving its other parent (so it
continues being a merge commit). It's also possible to fold revisions that
include multiple merge commits, on the condition that they merge with not more
than 2 external changesets (i.e. a changesets that aren't going to be folded).
Anton Shestakov <av6@dwimlabs.net> [Thu, 11 Jul 2019 17:04:08 +0800] rev 4722
rewind: make sure merge commits include files from p1 and p2
Otherwise rewinding a merge commit makes it lose all changes.
This fix populates `updates` argument of rewriteutil.rewrite() with parent
changesets. That argument is normally used for folding multiple changesets, but
in this case it's simply used to include files from p1 and p2. Usually,
rewrite() works fine using ctx.files(), but that function can return an empty
list when ctx is a merge commit.
Anton Shestakov <av6@dwimlabs.net> [Wed, 10 Jul 2019 18:16:38 +0800] rev 4721
touch: make sure merge commits include files from p1 and p2
Otherwise touching a merge commit makes it lose all changes.
This fix populates `updates` argument of rewriteutil.rewrite() with parent
changesets. That argument is normally used for folding multiple changesets, but
in this case it's simply used to include files from p1 and p2. Usually,
rewrite() works fine using ctx.files(), but that function can return an empty
list when ctx is a merge commit.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 09 Jul 2019 10:56:42 -0700] rev 4720
py3: make `import hgext3rd.evolve` work
Martin von Zweigbergk <martinvonz@google.com> [Tue, 09 Jul 2019 10:56:42 -0700] rev 4719
py3: use bytes for template keyword registrations
This makes `import hgext3rd.topic` work.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 09 Jul 2019 10:56:42 -0700] rev 4718
py3: convert _origdoc to sysstr to match __doc__
It's currently stored as bytes by core, so we need to convert it to
match Python's expected type for __doc__. This patch can be dropped if
D6623 gets accepted.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 09 Jul 2019 10:56:42 -0700] rev 4717
py3: use bytes for revset predicate registrations
Martin von Zweigbergk <martinvonz@google.com> [Tue, 09 Jul 2019 10:56:42 -0700] rev 4716
py3: use bytes for wireprotocol command registration
Martin von Zweigbergk <martinvonz@google.com> [Tue, 09 Jul 2019 10:56:42 -0700] rev 4715
py3: use byte strings for @command registrations
Martin von Zweigbergk <martinvonz@google.com> [Wed, 03 Jul 2019 11:13:47 -0700] rev 4714
py3: switch from iteritems() to items()
Martin von Zweigbergk <martinvonz@google.com> [Wed, 03 Jul 2019 11:37:29 -0700] rev 4713
py3: make metadata values be byte strings as Mercurial expects
Martin von Zweigbergk <martinvonz@google.com> [Tue, 09 Jul 2019 21:49:37 -0700] rev 4712
tests: update output for shorted prompts from Mercurial
This makes tests pass again after Mercurial commits f802a75da585 (patch: use a
short, fixed-size message for last line of prompt (issue6158), 2019-06-20).
CORE-TEST-OUTPUT-UPDATE: f802a75da585
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Jul 2019 10:07:39 +0200] rev 4711
tests: update output for shorted prompts from Mercurial
This makes tests pass again after Mercurial commits 4764e8436b2a
(filemerge: make last line of prompts <40 english chars (issue6158),
2019-06-20)
CORE-TEST-OUTPUT-UPDATE: 4764e8436b2a
Anton Shestakov <av6@dwimlabs.net> [Tue, 09 Jul 2019 17:08:34 +0800] rev 4710
rewriteutil: allow rewriting merge commits (issue4561)
This patch simply allows rewriteutil.rewrite() to work with commits with
multiple parents (i.e. merges). That function is used in such commands as fold,
metaedit, touch, rewind.
The issue 4561 is marked as easy, the limitation is called unnecessary, no
tests fail after this change. What can go wrong.
Anton Shestakov <av6@dwimlabs.net> [Tue, 09 Jul 2019 17:02:44 +0800] rev 4709
tests: show what happens when trying to hg touch a merge commit
kevpeng@google.com [Thu, 04 Jul 2019 17:32:58 +0200] rev 4708
evolve: further clarify that update is performed only when requested
Text further modified by Pierre-Yves David and Anton Shestakov.
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 14 Jun 2019 22:46:58 +0530] rev 4707
touch: let's not use util.acceptintervention() as it's not required
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 Jul 2019 16:55:57 +0200] rev 4706
branching: merge with stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 26 Jun 2019 21:11:25 +0530] rev 4705
evolve: use right value for branch name when finding branch heads
subbranch already formatted as "branchname:topicname", again appending it
with ":topicname" doesn't not make sense.
It's a little bit surprising that no tests fails though.
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 25 Jun 2019 21:54:22 +0530] rev 4704
evolve: fix confusion in branch heads checking logic when topic in play
To provide some context, when topics are in play the branchmap cache
we store contains the branch info of a rev as "branch:topic" format IIUC.
Assuming that is right, now in present code we don't actually cover
this part that "when looking for branch heads where we also have active
topic we should look for branch='branch_name:topic' instead".
And we get wrong branch heads as a result.
This patch make sure that we pass right candidate to find branch heads
using branchmap.branchheads() by overriding the localrepo.branchheads()
Changes in test file reflect the fixed behavior.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 14 Apr 2019 12:55:46 +0530] rev 4703
topic: add tests to demonstrate topic confuses the branchhead checking logic
While topics are in play, we store the branchheads (which has a topic)
in "branchname:topicname" format. After digging into it I found that
even in the case when we should have branch heads for "bname:tname"
we get heads for "bname".
The tests output reflect the confusion in branch head checking logic.
Next patch will be fixing the problem.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 01 Jul 2019 19:15:57 +0530] rev 4702
evolve: fix the inconsistent behaviour of prune (issue6137)
Let's not update to any revision when working directory parent
is not related to the revision being pruned.
Changes in test file demonstrate the fixed behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 02 Jul 2019 21:00:46 +0530] rev 4701
prune: add tests to demonstrate issue6137
Here we can see that prune updates off to the parent revision
even when the pruned revision wasn't related with the working
directory parent.
A follow-up patch will fix this.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 30 Jun 2019 23:50:57 +0530] rev 4700
compat: fix `setupevolveunfinished` for upstream
Anton Shestakov <av6@dwimlabs.net> [Sat, 29 Jun 2019 18:21:57 +0800] rev 4699
prune: update to the successor of wdir also with --pair/--biject (issue6142)
When prune is used with --pair flag, we can also update to the successor of
working directory parent.
No need to check len(sucs) or len(precs) here because there's a check for that
earlier in the code (it's a requirement of biject).
The tests are now demonstrate the correct behavior: when rev 14 was pruned with
12 as its successor, the bookmark that was on 14 was moved to 12. That bookmark
was also activated (even before this patch).
Anton Shestakov <av6@dwimlabs.net> [Sat, 22 Jun 2019 18:37:21 +0800] rev 4698
tests: demonstrate prune --pair not moving bookmark correctly
After `mkcommit n2` line the bookmark is on the correct changeset, but when we
prune --pair the two newly created changesets (revs 13 and 14), the bookmark
gets moved to their ancestor (rev 0). Instead, it should've moved to the last
of their successors (rev 12).
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 02 Jul 2019 10:17:42 +0200] rev 4697
oops: backed out changeset 7ac40b4ea24c
Anton requested some changes on it.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 30 Jun 2019 23:50:57 +0530] rev 4696
compat: fix `setupevolveunfinished` for upstream
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 16 Jun 2019 23:39:55 +0530] rev 4695
evolve: fix the code flow pattern of solving obswdir par and troubled revs
Now we will go to _handlenotrouble() (which prints messages about
no revs to solve) only when there is no troubled revs and working
dir parent is not obsolete.
This change also saves us from an issue which was about looking into the
revset (smartset contains troubled revs to solve) when a rev from the revset
gets hidden. This happens in the case when our wdir parent is obsolete. After
resolving obswdir parent we were looking into the revset to check if there is
any troubled revs to solve but we should have performed this check before
performing the obswdir resolution.
Changes in test file reflect this fixed behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 09 Jun 2019 12:07:08 +0530] rev 4694
evolve: refactor for consistent behavior of evolve when wdp is obsolete
This patch make sure that when working directory parent is obsolete
`hg evolve` and `hg evolve --all` don't behave differently.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 15 Jun 2019 17:17:19 +0530] rev 4693
evolve: backout 3027005c42c3 to reintroduce a bug for right fix
This patch backout 3027005c42c3 as it was accepted by mistake
while it was being "in-discussion" state.
Anton Shestakov <av6@dwimlabs.net> [Fri, 14 Jun 2019 18:17:03 +0800] rev 4692
pick: register pickstate as an unfinished state
This way pickstate file will indicate that unfinished pick command needs to be
dealt with (--continue or --abort) before modifying the repo. Otherwise it
would be e.g. possible to commit during an interrupted pick and that's not
expected.
Anton Shestakov <av6@dwimlabs.net> [Fri, 14 Jun 2019 18:14:57 +0800] rev 4691
pick: rename variable for unfinishedstates
Anton Shestakov <av6@dwimlabs.net> [Fri, 14 Jun 2019 18:26:24 +0800] rev 4690
pick: actually delete pickstate if --abort is given
Makes pick to be, uh, actually aborted.
Anton Shestakov <av6@dwimlabs.net> [Tue, 18 Jun 2019 17:17:31 +0800] rev 4689
evolve: orphans that evolve into nothing don't need successors (issue5967)
When continuing to solve an orphan that created no changes (i.e. clean wdir),
_completeorphan() used to create an obsmarker that said that the result of that
orphan evolution is the currently checked out changeset. That's not a correct
obsmarker, because all of the orphan's changes were dropped and so it had no
effect on the currently checked out changeset.
This is an issue that has only existed when --continu'ing evolve, that's why
the fix touches _completeorphan(), but not _solveunstable(). This fix is
adapted from a similar "if node is None" block in _finalizerelocate().
Anton Shestakov <av6@dwimlabs.net> [Sat, 22 Dec 2018 18:31:32 +0800] rev 4688
tests: demonstrate obsmarker creation after discarding conflicting changes
Continued evolve creates an incorrect obsmarker that says 2 is a successor of
1. It's incorrect because 1 was dropped as it created no changes to commit
(after conflict resolution that discarded its changes).
If evolve does the same thing in one go (e.g. just by using --tool :local and
without subsequent need to continue) the obsmarker is correct.
Anton Shestakov <av6@dwimlabs.net> [Fri, 07 Jun 2019 18:14:48 +0800] rev 4687
pick: remove transaction on the whole command (issue6037)
At its core, pick is a pretty straightforward and well-behaving command, it
uses functions already in core hg, it checks that wdir is clean and that
changeset to pick is not public, it checks if there happen to be merge
conflicts and can be --continue'd later, etc.
It is very similar to graft in core (it also uses mergemod.graft function), but
it obsoletes the original changeset. However, graft does not experience this
incorrect behavior from issue 6037.
What happens in the test case for this issue when we pick a revision that
touches both "a" and "b": mergemod.graft() takes the original changeset and
tries to apply it to the wdir, which results in "b" being marked as newly added
and ready to be committed, "a" updated with the new content and being marked as
modified, but "a" also has conflicts. Pick correctly notices this and saves its
state before asking for user intervention. So far so good. However, when the
command raises InterventionRequired to print a user-facing message and exit
while being wrapped in repo.transaction() context manager, the latter partially
undoes what mergemod.graft() did: it unmarks "b" as added. And when user
continues pick, "b" is therefore not tracked and is not included in the
resulting commit.
The transaction is not useful here, because it doesn't touch wdir (it's still
dirty), it doesn't remove pickstate (and other commands will refuse to work
until pick --abort or --continue), it just makes "b" untracked.
The solution is to use repo.transaction() only to wrap code that writes data to
hg store in the final stages of the command after all checks have passed and is
not expected to fail on trivial cases like merge conflicts. For example,
committing the picked changeset. But since pick uses repo.commit() for that,
and because that function already uses a transaction, wrapping it in another
transaction doesn't make sense.
Anton Shestakov <av6@dwimlabs.net> [Sun, 23 Dec 2018 01:02:36 +0800] rev 4686
tests: demonstrate hg pick forgetting files after conflicts
This test currently passes to show that pick is behaving incorrectly.
Anton Shestakov <av6@dwimlabs.net> [Thu, 13 Jun 2019 13:27:26 +0800] rev 4685
packaging: follow hg's supported python version (>= 2.7)
"Mercurial 4.3 and newer require Python 2.7." (From
https://www.mercurial-scm.org/wiki/SupportedPythonVersions)
Also add X- prefix, because that's the correct form, apparently.
This line can also be removed in future, since "When Debian supported multiple
Python versions, X-Python-Version was used, but it is obsolete now as no
supported Debian release supports anything other than python2.7." (From
https://wiki.debian.org/Python/LibraryStyleGuide)
That page also mentions "X-Python3-Version".
Anton Shestakov <av6@dwimlabs.net> [Thu, 13 Jun 2019 13:19:44 +0800] rev 4684
packaging: require hg 4.5 also for usage, not just for building
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 11 Jun 2019 10:04:11 +0200] rev 4683
packaging: require mercurial >= 4.5
Otherwise building the doc package fails with:
(third party extension evolve requires version 4.5 or newer of Mercurial; disabling)
Exception occurred:
File "/usr/lib/python2.7/dist-packages/mercurial/help.py", line 624, in help_
raise error.Abort(msg, hint=hint)
Abort: no such help topic: evolve
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 08 Jun 2019 16:03:05 +0530] rev 4682
evolve: clarify why returning by adding inline doc
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 08 Jun 2019 15:59:31 +0530] rev 4681
evolve: move a code block to have right value in has_some_val
Because of this we were having wrong value of has_some_val and
had some buggy behavior which is being fixed by this patch.
Fixed behavior is reflected by the changes in test file.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 27 Apr 2019 13:09:34 +0530] rev 4680
topic: add tests which demonstrate topicset failure of FilteredRepoLookupError
When topics are used, it fails to find hidden revs mentioned in a revset as
we are not using unfiltered view of repo. Next patch will fix it.
Anton Shestakov <av6@dwimlabs.net> [Sat, 08 Jun 2019 16:57:34 +0800] rev 4679
pick: reduce configoverride() scope
Merge tool is only needed for merge.graft() (it's what graft in core hg does),
so let's make the scope of the ui.configoverride() narrower.
Anton Shestakov <av6@dwimlabs.net> [Sat, 08 Jun 2019 16:09:37 +0800] rev 4678
evolve: correct action verb in a message
Anton Shestakov <av6@dwimlabs.net> [Sat, 08 Jun 2019 16:06:24 +0800] rev 4677
evolve: internationalize a message
This exact message was already wrapped in _() in the same file, just not here.
Anton Shestakov <av6@dwimlabs.net> [Thu, 06 Jun 2019 17:37:42 +0800] rev 4676
evolvecmd: the proper way to deal with conflicts is to resolve them
And it's worth making the suggestion an actual hint.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 05 Jun 2019 17:56:44 +0200] rev 4675
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 05 Jun 2019 17:46:06 +0200] rev 4674
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 05 Jun 2019 17:45:45 +0200] rev 4673
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 05 Jun 2019 17:42:50 +0200] rev 4672
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 05 Jun 2019 17:39:32 +0200] rev 4671
test-compat: merge mercurial-4.9 into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 05 Jun 2019 17:38:32 +0200] rev 4670
test-compat: merge stable into mercurial-4.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 Jun 2019 02:25:02 +0200] rev 4669
branching: merge with 9.0.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 Jun 2019 02:24:08 +0200] rev 4668
branching: merge back with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 Jun 2019 02:22:05 +0200] rev 4667
packaging: mark as development versions
This help to distinct official release from in progress work.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 Jun 2019 02:15:50 +0200] rev 4666
Added tag 9.0.0 for changeset 756db65030c6
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 06 Jun 2019 14:24:19 +0200] rev 4665
packaging: prepare release 9.0.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 06 Jun 2019 14:32:25 +0200] rev 4664
doc: clarify the status of configuration of the obshashrange protocol
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 06 Jun 2019 13:26:44 +0200] rev 4663
changelog: add various missing bits
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 05 Jun 2019 19:45:35 +0200] rev 4662
templatekw: keep compatibility with Mercurial 4.5
This is simple enough to do.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 05 Jun 2019 17:21:45 +0200] rev 4661
test: adjust output to stable branch
We are about to make a release.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 04 Jun 2019 11:08:44 +0200] rev 4660
branching: merge with stable
Joerg Sonnenberger <joerg@bec.de> [Sat, 01 Jun 2019 02:30:14 +0200] rev 4659
templates: don't alias keywords directly
Putting the same function twice in the registry results in duplicate
doc strings and therefore confusing "hg help template" output.
Anton Shestakov <av6@dwimlabs.net> [Tue, 28 May 2019 16:46:18 +0800] rev 4658
stack: remove 'topic.' prefix from colors/labels
Stack is related to topics, sure, but it is also good enough to be recognized
on its own.
Anton Shestakov <av6@dwimlabs.net> [Sat, 18 May 2019 16:56:47 +0800] rev 4657
stack: handle hash sizes when --debug flag is provided
Since showstack() now uses fm.hexfunc() for node hashes, which depends on
ui.debugflag, we should handle situations when hashes are full-sized as well.
Anton Shestakov <av6@dwimlabs.net> [Fri, 17 May 2019 17:50:25 +0800] rev 4656
stack: always provide (full) node hash to non-default --template
Anton Shestakov <av6@dwimlabs.net> [Fri, 17 May 2019 17:42:06 +0800] rev 4655
stack: remove unnecessary prefix from stack output with non-default --template
"index" template keyword already exists (the current iteration of the loop), so
"stack_index" it is. It follows the same convention as other template keywords,
such as "files_added", "line_number", etc.
Anton Shestakov <av6@dwimlabs.net> [Fri, 17 May 2019 17:59:58 +0800] rev 4654
stack: provide context to formatter with non-default --template
This allows using template keywords that we don't explicitly provide to the
formatter, e.g. rev, branch and topic.
Anton Shestakov <av6@dwimlabs.net> [Sat, 11 May 2019 17:14:32 +0800] rev 4653
stack: leverage labelsgen() to produce all needed labels for fm.write()
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 May 2019 16:00:34 +0800] rev 4652
stack: check if stack is empty more pythonically
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 May 2019 15:57:54 +0800] rev 4651
stack: implement __bool__ and __nonzero__
Anton Shestakov <av6@dwimlabs.net> [Sun, 05 May 2019 17:39:46 +0800] rev 4650
stack: get stack data directly from stack and remove stackdata()
stackdata function began its life in 137f8b04901e as a proto-stack: it computed
stack revs on its own and only had one property to return, "changesetcount".
Later it started to prepare and return more properties, but since b933a8068c17
it was computing revs using a getstack function. And then finally in
17749d9d3968 it started to rely on stack class entirely.
It was a good function, but now, when all the logic it provided was factored
into stack class, I'd say it's finally time for it to be put to rest.
Anton Shestakov <av6@dwimlabs.net> [Sun, 05 May 2019 16:14:53 +0800] rev 4649
stack: use stack._revs instead of stack.revs[1:] in external children revset
The revset in question excludes all revs that are part of the stack. Using
stack.revs[1:] works (rev #0 is stack base, which is not a part of the stack),
but using stack._revs is technically more correct, because this variable is
specifically designed to hold only revisions that are part of the stack.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 04 Jun 2019 10:30:56 +0200] rev 4648
test: update output to match the parent changesets
This amend was forgotten.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 May 2019 03:42:35 +0200] rev 4647
topic: add a simple option to reject publishing
The option is pretty basic but it can be used as base to build larger feature.
The main target for going in this direction is to be able to distinct between
user that are "simple contributors" pushing topic for review and the
"maintainers" or "automation" that can publish changesets.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 04 Jun 2019 10:07:08 +0200] rev 4646
compat: adjust `wrapadd` for upstream
Mercurial core updated the API in f385ba70e4af.
Faheem Mitha <faheem@faheem.info> [Sun, 05 May 2019 22:48:41 +0530] rev 4645
debian: override default value for SPHINXBUILD in docs/makefile
This is the recommended Debian approach.
As suggested by Debian Developer Stephen Kitt, use the approach
recommended by Debian for building Sphinx documentation. See
https://wiki.debian.org/Python/LibraryStyleGuide#Sphinx_documentation
Also belated credit to Zash on the #mercurial channel on the Freenode
IRC network, who suggested the Make variable approach in the first
place.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 May 2019 02:19:48 +0200] rev 4644
obshashtree: move obshashtree in its own module
The code no longer serve a core purpose. We just keep it because the command
might be useful. We move it in a dedicated module so that it does not get in the
way of other work.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 May 2019 01:53:36 +0200] rev 4643
obsdiscovery: drop `obshash` discovery protocol (issue6136)
The protocol has been superseeded by stablerange for a long time. It is untested
and more and more buggy. Since this is deprecated experimental code in an
experimental code, we drop it.
We keep the underlying computation and debug command around for now. They might
still be useful to looks at repositories
Martin von Zweigbergk <martinvonz@google.com> [Thu, 09 May 2019 09:42:51 -0700] rev 4642
cmdrewrite: use context manager for some locks and transactions
These were the trivial cases where I didn't even need to extend the
scope of a transaction or change indentation to fix it.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 29 Apr 2019 23:43:16 +0530] rev 4641
evolve: mention that --all is default, in list of options
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 13 May 2019 18:47:58 +0530] rev 4640
touch: use util.acceptintervention() for closing the transaction
It will close the transaction on InterventionRequired.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 13 May 2019 18:45:00 +0530] rev 4639
touch: use context manager for locks
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 13 May 2019 18:39:43 +0530] rev 4638
touch: extract the logic of touching rev's to its own function
This refactoring will also help us in using the context manager for locks
in next patches and also help reducing the nested depth.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 May 2019 02:42:11 +0200] rev 4637
changelog: mention user merging in the changelog
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 05 May 2019 18:24:59 +0530] rev 4636
evolve: consider using three way merge to get the user for div resolution
This patch adds the logic to merge the users from two divergent csets
considering the base (i.e three way merge).
The case when all the three are different, we concatenate the two authors
of divergent csets.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 05 May 2019 18:24:50 +0530] rev 4635
evolve: add tests for the case when div csets has different users
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 May 2019 01:23:12 +0200] rev 4634
branching: merge with stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 26 Apr 2019 01:20:08 +0530] rev 4633
evolve: move status msg to verbose mode in content-divergence resolution
As suggested by Pierre-Yves, lets move these too verbose message for the user
to verbose mode to decrease some noise.
Faheem Mitha <faheem@faheem.info> [Fri, 03 May 2019 03:52:44 +0530] rev 4632
debian: Override default value for SPHINXBUILD in docs/makefile
Sphinx now defaults to Python 3 in Debian Buster, so we need to
explicitly select the Python 2 version of sphinx-build for building
docs.
Faheem Mitha <faheem@faheem.info> [Fri, 03 May 2019 03:44:48 +0530] rev 4631
docs: add SPHINXBUILD make variable
This defaults to sphinx-build. The current use case is for the Evolve
Debian package build.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 27 Apr 2019 20:56:37 +0530] rev 4630
topic: add test to increase code coverage in case of multiple topics
This patch adds a test which cover the part that when we have one topic
on top of other topic, this make sure that when evolving it's boundary
are the current active topic (i.e hg stack)
Anton Shestakov <av6@dwimlabs.net> [Sat, 27 Apr 2019 17:11:12 +0800] rev 4629
changelog: --no-update is the default, recommend --update instead
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 27 Apr 2019 01:18:08 +0300] rev 4628
topic: drop support for accessing csets in branch stack using bxx (issue6119)
When topic extension is enabled and we have some cset whose hash is `b1234`,
topic extension thinks that we are accessing 1234 cset in current branch stack.
However that's not the case generally. Also I am not sure many people use this
bxxx thing.
Since we have a generic sxxx way to access csets, let's drop support for
accessing csets using bxx which leads to bad behavior.
Looking at the tests, we don't show bxxx in hg stack output anymore.
I update the test to use sxxx instead of bxxxx.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 29 Apr 2019 23:16:29 -0400] rev 4627
legacy: drop the check for `obsolete._enabled`
This looks like an ancient version check, and presumably `minimumhgversion` will
do the same thing.
Matt Harbison <matt_harbison@yahoo.com> [Sun, 28 Apr 2019 00:21:28 -0400] rev 4626
docs: drop references to the old temporary commit that was created with amend
The sharing.rst page also mentions amend, but the diagrams aren't showing, so
I'm not sure if they're in some other repo and needing to be updated.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 22:45:16 -0400] rev 4625
templatekw: add `instabilities` alias for `troubles`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 22:59:48 -0400] rev 4624
revset: switch internal uses and tests to `predecessors` from legacy name
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 22:33:16 -0400] rev 4623
revset: add `predecessor` aliases for `precursors` and `allprecursors`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 22:24:30 -0400] rev 4622
revset: add `unstable` alias for `troubled`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary. The old name is still
available (but undocumented) for compatibility. `Orphan` was renamed from
`unstable` in core in 4.4, so this seems safe to do now.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 21:54:52 -0400] rev 4621
docs: change `bumped` references to `phase-divergent`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 21:41:04 -0400] rev 4620
docs: change `divergent` references to `content-divergent`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 21:27:54 -0400] rev 4619
docs: change `troubled` references to `unstable`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 21:24:18 -0400] rev 4618
docs: change `unstable` references to `orphan`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 21:09:47 -0400] rev 4617
doc: correct a typo
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 19:42:42 -0400] rev 4616
docs: change `troubles` references to `instability`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary. There are a couple
instances of 'troublesome' which probably need a word, as deriviatives of
'instability' didn't really fit. At least some of these are in the unlinked
obs-terms.rst page.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 19:32:03 -0400] rev 4615
docs: change `precursors` references to `predecessors`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 14:42:48 -0400] rev 4614
docs: import figure diagrams with inkscape 0.92
No changes to the content here. This simply accepts the default option ("This
file contains digital artwork for screen display") on the prompt when first
opened, which is trying to upgrade from 90DPI to 96DPI.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 25 Apr 2019 15:14:21 -0700] rev 4613
messages: standardize on "working copy is now at" including "is"
It seemed that we mostly used "is", but `hg next` and `hg prune` could
print it without the "is".
Martin von Zweigbergk <martinvonz@google.com> [Thu, 25 Apr 2019 13:58:29 -0700] rev 4612
evolve: move more of the progress-related variables together
Martin von Zweigbergk <martinvonz@google.com> [Thu, 25 Apr 2019 14:02:11 -0700] rev 4611
evolve: delete dead calculation of number of troubled revisions
The "count" variable is recalculated in the regular (no --continue)
code path and it isn't used anywhere else (it used to be set to 1 in
the --continue code path, but that now has its own progress counting).
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 10:23:53 -0700] rev 4610
evolve: drop nested locks and transactions
All callers of _solveone() now take the locks and start the
transactions, so there's no need to do that anymore.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 11:12:00 -0700] rev 4609
next: start transaction before calling _solveone()
All other callers do this, and I'm about to make _solveone() not
create a transaction.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 10:22:25 -0700] rev 4608
evolve: use single transaction also when continuing
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 09:41:39 -0700] rev 4607
evolve: run in a single transaction
This speeds up `hg evolve --all` of a stack of 24 commits in the hg
repo from 11.5s to 3.7s (3x). As can be seen in the tests, it also
avoid some warnings about transiently unstable commits.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 10:01:32 -0700] rev 4606
evolve: extract function for solving one revision, including merges
Will make the next patch simpler.
Anton Shestakov <av6@dwimlabs.net> [Thu, 25 Apr 2019 17:20:32 +0800] rev 4605
evolve: mention that --all is the default behavior now
Anton Shestakov <av6@dwimlabs.net> [Thu, 25 Apr 2019 17:19:41 +0800] rev 4604
evolve: mention that not all successful operations currently update wdir
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 11:07:28 -0700] rev 4603
evolve: add progress support for --continue
The progress starts where it left off when the previous command ran
into merge conflicts.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 10:56:42 -0700] rev 4602
evolve: reduce scope of progress-related variables
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 10:49:47 -0700] rev 4601
evolve: move progress-clearing out of _cleanup()
The progress is only used with --all or --rev, so there's no need to
clean it in any other case. It's therefore easier to clean it
specifically in that case.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 10:52:33 -0700] rev 4600
evolve: stop passing no-op "progresscb" into continueevolve()
The "progresscb" doesn't do anything in the --continue case, so
there's no need to pass it into continueevolve().
This lets us remove the --no-all that was added to the test as a
workaround.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 09:45:45 -0700] rev 4599
evolve: _solveunstable() update progress only once
There's no need to draw it, then possibly write text over it (with
--verbose), and then draw it again.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 09:35:34 -0700] rev 4598
evolve: don't update progress just before clearing it
_cleanup() will clear the progress, so there's little reason to update
it just before (except for progress.debug=yes).
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 09:31:32 -0700] rev 4597
evolve: clean up progress bar also when using -r
It looks like 1fe3da0b4601 (evolve: add --rev option to the evolve
command, 2015-05-05) forgot to update the "showprogress" variable.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 10:20:03 -0700] rev 4596
tests: add some basic testing of progress
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 10:03:39 -0700] rev 4595
evolve: increment progress *after* a whole merge commit is done
The "re-stabilize" step was using the progress that was supposed to be
for the next revision.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 11:02:35 -0700] rev 4594
evolve: use util.acceptintervention() for closing transactions
util.acceptintervention() will close the transaction on
InterventionRequired.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 10:32:32 -0700] rev 4593
evolve: use context manager for transactions
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 10:52:16 -0700] rev 4592
evolve: use consistent message and just re-raise InterventionRequired
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 10:47:12 -0700] rev 4591
evolve: use standard InterventionRequired instead of MergeFailure
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 10:41:56 -0700] rev 4590
evolve: don't use exception for local flow control
The LocalMergeFailure class was added in 3f91654713dd (obsolete Move
merge failure handling into stabilize code, 2012-08-20). I think the
"if compat.hasconflict(r)" check was added later. Now that we have
that check, we should use that for flow control instead.
Note that this means that any unexpected exception from
_relocatecommit() will now just raise (and roll back the
transaction). I think that's an improvement.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 11:02:08 -0700] rev 4589
evolve: reduce indentation with an early return statement
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 11:01:44 -0700] rev 4588
evolve: remove a useless return statement at end of function
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 21 Apr 2019 13:04:40 +0530] rev 4587
test: move a test to an appropriate test file
This patch introduce a new test file test-evolve-orphan-corner-cases.t
for tests which covers corner cases.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 21 Apr 2019 12:07:26 +0530] rev 4586
test: improve the title of a test
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 21 Apr 2019 12:06:31 +0530] rev 4585
test: remove duplicated test
We have the test in test-evolve-orphan-split.t which is covering the same
case this test does. Also this test states that evolve shows some error in
split case, but now this is not the case we update to the top of splitted
csets.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 09 Mar 2019 19:35:45 +0530] rev 4584
evolve: warn user for the metadata being lost in public divergence resolution
This patch print warnings if some "extras" of a divergent changeset that
is possibly important metadata which is being lost during the resolution
of public divergence.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 17 Apr 2019 21:16:17 +0530] rev 4583
evolve: show a status message when merging leads to public cset
I think it would be fine to tell the user that merging the two divergent
csets while resolving public divergence resulted into the public cset
itself.
If you think we don't need to tell the user, then we can include this
in debug-mode for debugging purposes at least.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 Apr 2019 20:32:01 +0200] rev 4582
test: use a shorter test name
This is still long but easier to read.
Anton Shestakov <av6@dwimlabs.net> [Wed, 10 Apr 2019 18:20:33 +0800] rev 4581
stack: rename troubledcount to unstablecount
Anton Shestakov <av6@dwimlabs.net> [Wed, 24 Apr 2019 17:21:21 +0800] rev 4580
evolve: use --all by default (BC)
allopt defaults to None to avoid touching _checkevolveopts(). If it were True
by default, that function would always act like the flag was provided by user,
and so using --abort, --stop, --continue or --rev on their own would never work
(hg evolve will complain that you cannot specify both --rev and --all).
A notable change in tests is "no troubled changesets" line that gets printed
when using `hg evolve` to update to the evolved successor of working directory
parent, but there were no actual instabilities.
Anton Shestakov <av6@dwimlabs.net> [Wed, 24 Apr 2019 17:02:27 +0800] rev 4579
tests: add --rev to hg evolve to reduce test changes for the next patch
Anton Shestakov <av6@dwimlabs.net> [Wed, 24 Apr 2019 16:35:01 +0800] rev 4578
tests: add --no-all to hg evolve to reduce test changes
Anton Shestakov <av6@dwimlabs.net> [Wed, 24 Apr 2019 15:59:02 +0200] rev 4577
evolve: don't update after instability resolution by default (BC)
Anton Shestakov <av6@dwimlabs.net> [Sun, 14 Apr 2019 02:18:19 +0800] rev 4576
tests: add --update to hg evolve to reduce test changes for the next patch
Anton Shestakov <av6@dwimlabs.net> [Wed, 24 Apr 2019 15:57:49 +0200] rev 4575
tests: don't create a nested repo for no reason
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 Apr 2019 14:38:26 +0200] rev 4574
branching: merge with stable
VErsion 8.5.0 got released
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 15:57:04 +0200] rev 4573
Added tag 8.5.1 for changeset 05c9dcf5512e
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 15:30:39 +0200] rev 4572
packaging: prepare version 8.5.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 14:18:12 +0200] rev 4571
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 14:18:11 +0200] rev 4570
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 14:18:10 +0200] rev 4569
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 14:18:08 +0200] rev 4568
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 14:18:06 +0200] rev 4567
test-compat: merge mercurial-4.9 into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 14:18:05 +0200] rev 4566
test-compat: merge stable into mercurial-4.9
Martin von Zweigbergk <martinvonz@google.com> [Mon, 22 Apr 2019 22:14:26 -0700] rev 4565
evolve: fix progress display with hg<4.7
Since d1aab9d82f5b (evolve: adapt for deprecated ui.progress(),
2019-01-14), the "item", "units" and "total" are all set to default
values. The last one is especially bad since it results in a "spinner"
instead of a progress bar.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Apr 2019 05:21:14 +0200] rev 4564
packaging: mark extensions as tested with 5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 13:26:35 +0200] rev 4563
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:29:50 +0200] rev 4562
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:29:48 +0200] rev 4561
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:29:47 +0200] rev 4560
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:29:45 +0200] rev 4559
test-compat: merge mercurial-4.8 into mercurial-4.7
Martin von Zweigbergk <martinvonz@google.com> [Mon, 11 Mar 2019 23:57:12 -0700] rev 4558
evolve: use merge.update() for resolving phase divergence
Iterating over the manifest when tree manifests and narrowness is in
play produces entries for paths outside the narrowspec that represent
trees. For example, if the tests/ directory of the hg repo was not in
the narrowspec (and the hg repo was using tree manifests, which it
doesn't), then there would be a "tests/" entry in the manifest. The
merge code deals with some of these cases. For example, it's valid to
do a merge if only the local side changes directories outside the
narrowspec. That allows rebasing a local commit onto a public commit
that had changes to the excluded paths to work.
However, _resolvephasedivergent() was iterating of the manifests,
which resulted in crashes for some of our users when they tried to
resolve phase-divergent commits (actually content-divergent commits
that became phase-divergent after the intermediate rebase). We can fix
that by relying on merge.update(), since that already handles this
case.
[This re-install a changeset backed out for compatibility reason]
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:29:44 +0200] rev 4557
test-compat: merge mercurial-4.9 into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:24:22 +0200] rev 4556
compat: drop support for Mercurial 4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:29:42 +0200] rev 4555
test-compat: merge stable into mercurial-4.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:20:12 +0200] rev 4554
compat: backed out changeset cfcb7eedc666
That changesets breaks 4.4 compat. We will reinstall it for the next version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:28:32 +0200] rev 4553
test-compat: adapt test output to 4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Apr 2019 03:55:11 +0200] rev 4552
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Apr 2019 03:55:10 +0200] rev 4551
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Apr 2019 03:55:09 +0200] rev 4550
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Apr 2019 03:55:07 +0200] rev 4549
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Apr 2019 03:55:06 +0200] rev 4548
test-compat: merge mercurial-4.9 into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Apr 2019 03:55:04 +0200] rev 4547
test-compat: merge stable into mercurial-4.9
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 19 Apr 2019 10:31:53 +0530] rev 4546
compat: fix a typo in compat patch
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 23:51:13 +0200] rev 4545
changelog: mention extensions isolation (issue6121)
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 13:03:01 +0200] rev 4544
topic: only wrap wireprotocaps for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 13:02:52 +0200] rev 4543
topic: only wrap _pushb2phases for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 13:02:44 +0200] rev 4542
topic: only wrap handlecheckheads for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 13:02:06 +0200] rev 4541
topic: only wrap wireprotobranchmap for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 13:01:39 +0200] rev 4540
topic: only wrap _headssummary for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 12:41:41 +0200] rev 4539
topic: only wrap desthistedit for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 12:40:53 +0200] rev 4538
topic: only wrap _destupdatetopic for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 12:39:41 +0200] rev 4537
topic: only wrap _destmergebranch for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 12:36:11 +0200] rev 4536
topic: only wrap gettopicrepo for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 11:13:49 +0200] rev 4535
topic: only wrap mergeupdate for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 11:13:39 +0200] rev 4534
topic: only wrap committext for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 11:13:24 +0200] rev 4533
topic: only affect `hg commit` behavior for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 11:13:14 +0200] rev 4532
topic: only wrap workingctx.__init__ for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 11:12:58 +0200] rev 4531
topic: introduce a `hastopicext(repo)` function
This function check if a repository has the extension enabled or not.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 17 Apr 2019 00:20:44 +0530] rev 4530
tests: consolidate the public-content-divergent test cases
This commit move the public-content-divergent tests in dedicated
test files.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 17 Apr 2019 12:31:17 +0530] rev 4529
evolve: improve inline documentation for the public divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 14 Apr 2019 20:26:05 +0530] rev 4528
cleanup: remove a duplicated line
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Apr 2019 21:39:28 +0200] rev 4527
changelog: mention topic compatibility
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Apr 2019 20:58:10 +0200] rev 4526
branching: merge stable back into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Apr 2019 20:56:24 +0200] rev 4525
tescompat: revert test change for mercurial-4.9
We should still test against mercurial-4.9 expected output.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Apr 2019 20:54:28 +0200] rev 4524
branching: merge 8.5.0 expected output in stable
Upstream stable is now for mercurial 5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Apr 2019 20:52:15 +0200] rev 4523
testcompat: open a branch dedicated to mercurial 4.9
Upstream merged its default branch into the stable one to prepare for Mercurial
5.0
Anton Shestakov <av6@dwimlabs.net> [Wed, 17 Apr 2019 18:46:41 +0800] rev 4522
topic: add compatibility for writing copy metadata in changelog.add()
As seen in hg 0e41f40b01cc.
Anton Shestakov <av6@dwimlabs.net> [Wed, 17 Apr 2019 16:18:22 +0800] rev 4521
serverminitopic: add compatibility for branchcache that now uses self._entries
A copy of 9b0cde5efbc9.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Apr 2019 02:21:09 +0200] rev 4520
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Apr 2019 02:20:24 +0200] rev 4519
packaging: mark version as development version
Thsi help to reduce confusion for people using evolve from source
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Apr 2019 02:17:03 +0200] rev 4518
Added tag 8.5.0 for changeset 33c617626fd9
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Apr 2019 02:15:24 +0200] rev 4517
packaging: prepare version 8.5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 22:44:53 +0200] rev 4516
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Apr 2019 02:07:53 +0200] rev 4515
branching: merge stable back into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 22:42:14 +0200] rev 4514
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 22:42:13 +0200] rev 4513
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 22:41:41 +0200] rev 4512
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 22:41:25 +0200] rev 4511
test-compat: merge stable into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 22:41:06 +0200] rev 4510
changelog: merge 8.4.1 and 8.5.1 entries
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 21:43:37 +0200] rev 4509
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 21:12:09 +0200] rev 4508
branching: merge default change into stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 22:13:55 +0200] rev 4507
branching: merge default branch in stable to prepare 8.5.0 release
The release is not fully ready, but the merging is non-trivial.
Matt Harbison <matt_harbison@yahoo.com> [Tue, 02 Apr 2019 22:42:01 -0400] rev 4506
uncommit: abort if an explicitly given file cannot be uncommitted (BC)
This corresponds to f4147ca63d39 in the core uncommit extension.
Anton Shestakov <av6@dwimlabs.net> [Thu, 11 Apr 2019 17:45:36 +0800] rev 4505
evolve: store --update flag state in evolvestate file
Part of 9c522bdfc846 that wasn't yet accepted.
Anton Shestakov <av6@dwimlabs.net> [Fri, 12 Apr 2019 02:55:34 +0800] rev 4504
state: implement cmdstate.__contains__()
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 21:19:01 +0200] rev 4503
changelog: mention Martin work on phase-divergence
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 21:09:31 +0200] rev 4502
test: revert update from 5.0 record logic
This revert the test changes from 90f94231db5d.
Anton Shestakov <av6@dwimlabs.net> [Thu, 11 Apr 2019 17:42:48 +0800] rev 4501
tests: remove note about already implemented --confirm with --continue
4544067b831b made --confirm work with --continue, but didn't update/remove this
comment.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 11 Mar 2019 23:57:12 -0700] rev 4500
evolve: use merge.update() for resolving phase divergence
Iterating over the manifest when tree manifests and narrowness is in
play produces entries for paths outside the narrowspec that represent
trees. For example, if the tests/ directory of the hg repo was not in
the narrowspec (and the hg repo was using tree manifests, which it
doesn't), then there would be a "tests/" entry in the manifest. The
merge code deals with some of these cases. For example, it's valid to
do a merge if only the local side changes directories outside the
narrowspec. That allows rebasing a local commit onto a public commit
that had changes to the excluded paths to work.
However, _resolvephasedivergent() was iterating of the manifests,
which resulted in crashes for some of our users when they tried to
resolve phase-divergent commits (actually content-divergent commits
that became phase-divergent after the intermediate rebase). We can fix
that by relying on merge.update(), since that already handles this
case.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 10 Apr 2019 23:19:29 +0530] rev 4499
evolve: compat patch for recordfilter change in mercurial
This patch fix the broken things because of upstream changes in
recordfilter() which is being used to select the hunks interactively.
It fixes the test-uncommit-interactive.t by adding the compat layer.
But for test-split.t I had to fix the tests manually. To make it more
clear: splitting broke at evolve side because after that upstream change
now interactive mode doesn't prompt "examine change to foo" if foo is
mentioned explicitly using cli; and directly jumps to hunks selection
prompt (well, only if there is any changes at hunks level)
And the main issue is when file which is explicitly mentioned has no changes
at hunk level (for e.g copy, rename, mode change, empty new file), because in
that case you don't have any control on selection of that file and it would
be included automatically in first cycle of interactive selection.
And this "no changes at hunks level" was the reason for test-split.t breakage
as now it didn't prompt for those files which are passed on cli.
To fix this I have included some content in those files to make sure that
tests still demonstrate the same behaviour as they were doing before breakage.
Also, I replaced some "n" with "s" as it make more sense to skip all the
changes to that file in one go instead of hitting "n" multiple times
(if there were multiple hunks)
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 21:03:56 +0200] rev 4498
test: add file cancelation scenario for phase-divergence
This improve the test coverage for corner cases.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 20:43:42 +0200] rev 4497
test: introduce a more complete test for phase-divergence
The test the preservation of "change" cancellation in multiple situation.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 20:24:55 +0200] rev 4496
test: rename test about content divergent meta data
The test now use a name in line with the other content divergence test cases.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 20:18:14 +0200] rev 4495
test: cleanup title and doc phase-divergent cases
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 20:03:07 +0200] rev 4494
test: remove remaining duplicated file
This file should have been removed in d02a7c8cdee5.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 17:57:11 +0200] rev 4493
test: add test for content-divergence with file removal
File addition/removal tends to introduce corner case.
The actual test content comes from a Martin von Zweigbergk changesets.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 17:29:40 +0200] rev 4492
test: clarify changeset concent in the first content-divergence test
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 16:59:58 +0200] rev 4491
branching: merge with stable
merge with new changeset on stable.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 16:59:28 +0200] rev 4490
branching: merge with test consolidation
Conflict were simple once isolated.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 16:40:58 +0200] rev 4489
branching: merge with stable
This merge happens before the large test consolidation on stable.
Joerg Sonnenberger <joerg@bec.de> [Sun, 07 Apr 2019 20:00:16 +0200] rev 4488
compat: drop getcachevfs, repo.cachevfs is supported in hg 4.4
Joerg Sonnenberger <joerg@bec.de> [Sun, 07 Apr 2019 19:53:53 +0200] rev 4487
evolve: when using evolve, cache files belong into the master repo
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 16:11:59 +0200] rev 4486
changelog: mention issue6089 fix
Manuel Jacob <me@manueljacob.de> [Sat, 23 Feb 2019 15:17:55 +0100] rev 4485
pick: update working dir branch (issue6089)
Previously the working copy was left in an "inconsistent" state.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 15:47:28 +0200] rev 4484
tests: rename test-grab to test-pick
This match the new command name.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 10 Apr 2019 15:37:29 +0200] rev 4483
evolve: make sure div resolution don't replace the initial author (issue6113)
Before this patch, divergence resolution logic taking the current user who
is running the resolution command as the author of commit that will
be created after merging the two divergent csets.
This patch make sure that we preserve the initial author.
Changes in test file reflect the fixed behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 10 Apr 2019 15:26:41 +0200] rev 4482
evolve: add test which demonstrate issue6113
This patch introducing a new test file which contains the test for issue6113
which is `test-evolve-content-divergent-distributed.t`. This test file
is supposed to contain tests for distributed workflows.
Next patch will fix the bug.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 14:32:00 +0200] rev 4481
test: consolidate the content-divergent test cases
This commit move most of the content divergent related test in dedicated and
thematic test files.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 09 Apr 2019 21:16:49 +0200] rev 4480
changelog: mention the fix to issue6057
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 09 Apr 2019 20:45:36 +0200] rev 4479
extensions: avoid enabling evolve for unrelated repositories (issue6057)
The support for the `experimental.evolve` config have been there forever. So we
can stop using the global variable. This help avoiding evolve to enable itself
of repository that did not explicitly activated it. For example, this is useful
for hgwebdir.
Before this change, evolution feature had to be explicitly disabled or enabled
in every single repository.
Anton Shestakov <av6@dwimlabs.net> [Sat, 06 Apr 2019 15:50:15 +0200] rev 4478
stack: improve set combination logic
Anton Shestakov <av6@dwimlabs.net> [Sat, 06 Apr 2019 15:49:22 +0200] rev 4477
stack: fix phasecache._phasesets check logic
When _phasesets is not None, it's a list, and it contains set()s of revisions
in a specific phase, starting from public, draft, secret and so on. But since
repos are supposed to have the majority of revisions in public phase, the first
element of this list is not a (potentially huge) set, but None.
Previously this code tried to check if there's any element that is None, and
was always finding None at index 0, so the short path was executed every time
and the rest of the function was never used.
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 02 Apr 2019 12:41:57 +0530] rev 4476
evolve: remove todo markers from a test which has been fixed
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Apr 2019 22:28:07 +0200] rev 4475
next: clarify tests related to `commands.update.check` test
This clarify the test and help understand the next changeset.
Anton Shestakov <av6@dwimlabs.net> [Wed, 03 Apr 2019 17:20:34 +0800] rev 4474
stack: simplify phasecache checks in _stackcandidates()
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Apr 2019 17:45:59 +0200] rev 4473
evolve: fix divergence resolution when not merging a descendant
In divergence resolution, when we merge other cset with divergent one
we pass a `mergeancestor` arg to merge.update() and before this patch
we were passing `mergeancestor` as True in every case.
But it should be True only when we are merging a descendant onto an
ancestor.
When mergeancestor is True it does two things:
1) allows the merge if the destination is the same as the parent
of the ctx (so we can use graft to copy commits)
2) informs update that the incoming changes are newer than the
destination so it doesn't prompt about "remote changed foo
which local deleted".
So this patch change it to pass `mergeancestor` as True only when
it is required.
And changes in test file shows that it wasn't prompting either in
those cases when it should (acc. to 2nd point)
Test written by Pierre-Yves David, based the one updated in 5dbaabfe2c59.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 29 Mar 2019 15:15:07 +0100] rev 4472
test: fix a phase divergence test case to actually not contains conflict
The previous test case had a conflict, but that conflict is currently not raise
by phase divergence resolution. This is an independent bug to solve.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Apr 2019 16:31:45 +0200] rev 4471
tests: use current instability names everywhere
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 Apr 2019 12:24:28 +0200] rev 4470
test: apply unstability resolution to `test-unstability-resolution-result.t`
The test cases in this file probably deserved to be dispatched in other more
thematic test file.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 Apr 2019 12:06:33 +0200] rev 4469
test: rename and clarify content of test-unstable-content-divergent.t
The troubles → instabilities renaming was not applied here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 Apr 2019 11:53:05 +0200] rev 4468
test: rename and clarify content of test-unstable-orphan.t
The troubles → instabilities renaming was not applied here.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 03 Apr 2019 01:00:33 +0530] rev 4467
evolve: refactor the code which swap two nodes (in divergence resolution)
I see that we are using the code to swap the "divergent" and "other" node;
and updating the evolvestate accordingly at many places in divergence
resolution. This patch extract that code to a function.
Although I don't have strong opinion on this patch. It's a volunteered
patch to remove some redundancy.
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 02 Apr 2019 18:01:43 +0530] rev 4466
evolve: remove tmpctx arg from _resolvephasedivergent()
Before this patch, in _resolvephasedivergent() function we were passing
an optional argument "tmpctx" which was used to store a rebased version
of bumped if required. But for sake of simplicity we can achieve the
same results even without passing this "tmpctx" into that function.
No changes in test files demonstrate that this patch don't break
anything.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 29 Mar 2019 11:48:36 +0100] rev 4465
doc: clarify _resolvephasedivergent role and constraint
Small documentation patch before larger changes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 02 Apr 2019 20:32:15 +0200] rev 4464
branching: merge with stable
Anton Shestakov <av6@dwimlabs.net> [Wed, 13 Feb 2019 21:39:10 +0800] rev 4463
evolve: unindent some lines caught by flake8
The message was: "E117 over-indented".
Anton Shestakov <av6@dwimlabs.net> [Wed, 13 Feb 2019 21:56:29 +0800] rev 4462
obsexchange: avoid importing io/StringIO module with a different name
Since we're not interested in the whole module, let's shorten the imports and
aviod the lint warnings.
Otherwise pep8-naming complains:
- import io as StringIO: N812 lowercase imported as non lowercase
- import StringIO as io: N813 camelcase imported as lowercase
Anton Shestakov <av6@dwimlabs.net> [Wed, 13 Feb 2019 21:56:05 +0800] rev 4461
evolve: remove unused StringIO import
Martin von Zweigbergk <martinvonz@google.com> [Fri, 22 Mar 2019 09:45:07 -0700] rev 4460
compat: add support for new arg name in memfilectx.__init__
This makes us compatible with 550a172a603b (memctx: rename constructor
argument "copied" to "copysource" (API), 2019-03-19).
Martijn Pieters <mj@octobus.net> [Wed, 21 Nov 2018 12:00:46 +0000] rev 4459
topic: make topics compatible with branchmap refactor
See https://phab.mercurial-scm.org/D5290
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 29 Mar 2019 11:19:24 +0100] rev 4458
evolve: compat patch to fix broken evolve obsdiscovery
This patch preserve the compatibility for the changes upstreamed
by e5ece0f46b40 in hg-committed.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 28 Mar 2019 15:05:57 -0700] rev 4457
tests: add obslog output to some tests for divergence resolution
As suggested by Boris Feld.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 28 Mar 2019 14:54:46 -0700] rev 4456
tests: add tests for divergence resolution with split+amend
As suggested by Boris Feld.
G: changed tests/test-evolve-phase-divergence.t
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Mar 2019 12:53:50 +0100] rev 4455
test: use 'split' instead of 'splitted' in the tests
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Mar 2019 12:30:10 +0100] rev 4454
evolve: drop the "computing new diff message" for phase-divergence
Future code update will remove this message, dropping it early clarify the
future diff.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 20 Mar 2019 09:19:02 -0700] rev 4453
evolve: clarify output when phase-divergence resolution results in no change
I found it pretty confusing that it said "committed as abcd1234" when
no commit was created.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 12 Mar 2019 09:44:05 -0700] rev 4452
tests: reduce dependence on previous tests for setup
The tests in test-evolve-phase-divergence.t built on each other for no
good reason, which makes the tests hard to modify and hard to read.
This patch cleans up some of them. We should clean up the rest too,
but the rest won't matter for my next patch, so I haven't bothered.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 28 Mar 2019 12:37:55 +0100] rev 4451
branching: merge with stable
Anton Shestakov <av6@dwimlabs.net> [Wed, 27 Mar 2019 20:52:30 +0800] rev 4450
topicmap: add compatibility for branchcache that now uses self._entries
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 27 Mar 2019 14:29:22 +0530] rev 4449
evolve: fix over-idented block
Martin von Zweigbergk <martinvonz@google.com> [Tue, 12 Mar 2019 09:48:05 -0700] rev 4448
tests: create "private" repository in already-updated state
I'm going to add more copies of the repo and it's easier to work with
the repo if it's already been updated.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Mar 2019 11:23:09 +0100] rev 4447
branching: merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Mon, 25 Mar 2019 15:45:11 -0700] rev 4446
touch: use action "touch", not "<function touch at ...>", in precheck
I just got this message:
abort: cannot <function touch at 0x7fde174b69b0> public changesets: f177c51ae98f
It has been this way since 1b7b9acda2a9 (touch: use precheck to
validate revision, 2017-07-23).
Martin von Zweigbergk <martinvonz@google.com> [Mon, 25 Mar 2019 15:44:44 -0700] rev 4445
prune: use action "prune", not "touch", in precheck
We have been using "touch" since 06ee4ec88190 (prune: use precheck to
validate revision, 2017-07-23). That commit modified the tests, so it
kind seemed intentional, but I suspect it was still just an oversight.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 24 Mar 2019 21:30:12 +0530] rev 4444
evolve: test a common case of public divergence
evolve: in pubdiv, handle the case when public branch is behind the mutable
In public divergence, when public branch is behind the mutable one the behaviour
that this patch added is that we relocate the draft one to public side.
This should be fine in most case, but might be an issue in some other (eg, when
the draft side of the divergence is rebase away from ancestors it relies on.)
Test written by Pierre-Yves David <pierre-yves.david@octobus.net>
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 24 Mar 2019 21:29:44 +0530] rev 4443
evolve: add condition in case of pubdiv to not swap the two div csets
In public divergence, we have pinned the public cset to the local side
when merge is performed. And in divergence resolution implementation
divergent cset is the one who is kept at the local side, so to say this
in one line: we have pinned public cset to the divergent side.
However, in some cases we need to swap the "divergent" and "other"
but we can't swap them in case of public divergence as thought would
cause an error because of not being able to relocate public cset.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 23 Mar 2019 02:10:31 +0530] rev 4442
evolve: add logic to handle a particular case in divergence resolution
Case is: In content divergence, to check if the two csets are on different
parent or same parent what we do is find gca of the two csets and then
compare it with the singlesuccessors of two csets's parents.
Now, if gca is same as singlesuccessors of both the csets then we conclude
that both are on the same parent which is not totally correct as it is
possible that both the parents of two csets are obsolete with a single
successor.
This patch adds the logic to cover the above metioned case correctly,
deciding the part when we need to relocate a cset to other side while
resolving the stack of divergent csets.
Changes in test file demonstrate that before this patch we were not
doing it right because it should have relocated every node to other side
instead of just relocating the first one from the stack.
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 22 Mar 2019 00:16:44 +0530] rev 4441
evolve: add a test reflecting wrong behaviour of content-div resolution
This patch shows that currently the case when stack of divergent csets
have different parents is not handled correctly.
For a stack of csets which has different parent, right behaviour is to
relocate every node before performing merge but present implementation
only relocate first cset in the stack and skip relocation for the rest
of csets, this is not what we expect it to do.
Next patch will be about fixing this issue.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 22 Mar 2019 09:45:07 -0700] rev 4440
compat: add support for new arg name in memfilectx.__init__
This makes us compatible with 550a172a603b (memctx: rename constructor
argument "copied" to "copysource" (API), 2019-03-19).
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 13 Mar 2019 17:32:14 +0530] rev 4439
evolve: preserve compatibility for hg < 4.8 versions
This patch make sure evolve don't break if user using a version of
hg before this 7694b685bb10 patch on hg-committed.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 09 Mar 2019 19:25:34 +0530] rev 4438
evolve: warn user if cset desc is being lost
In public divergence when merging results in same as public cset,
we only create markers to solve the divergence i.e. [(public, (other,))]
In this case if other cset had a desc which was different from public
that will be lost.
So this print out a warning message to user that desc of non-public
cset is being lost.
Changes in test files reflect the added behaviour.