Thu, 03 Oct 2019 23:20:47 +0100 setup: make runnable from other dirs stable
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.
Thu, 03 Oct 2019 23:17:13 +0100 setup: add a test for running setup.py stable
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.
Fri, 04 Oct 2019 00:15:53 -0400 gitlab-ci: be bold and try to run the full test in them stable
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.
Thu, 03 Oct 2019 22:46:21 -0400 gitlab-ci: basic test with flake8 stable
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.
Sat, 28 Sep 2019 13:15:02 +0200 branching: merge back with stable
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
Fri, 27 Sep 2019 12:50:19 +0200 branching: preserve test change on stable
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
Sat, 28 Sep 2019 13:14:07 +0200 packing: mark as development version stable
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.
Sat, 28 Sep 2019 13:00:20 +0200 Added tag 9.2.0 for changeset 40795751be1c stable
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
Fri, 27 Sep 2019 13:03:22 +0200 test-compat: merge mercurial-4.6 into mercurial-4.5 mercurial-4.5
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
Fri, 27 Sep 2019 13:03:20 +0200 test-compat: merge mercurial-4.7 into mercurial-4.6 mercurial-4.6
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
Fri, 27 Sep 2019 13:03:18 +0200 test-compat: merge mercurial-4.8 into mercurial-4.7 mercurial-4.7
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
Fri, 27 Sep 2019 13:03:16 +0200 test-compat: merge mercurial-4.9 into mercurial-4.8 mercurial-4.8
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
Fri, 27 Sep 2019 13:03:14 +0200 test-compat: merge mercurial-5.0 into mercurial-4.9 mercurial-4.9
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
Fri, 27 Sep 2019 13:03:12 +0200 test-compat: merge stable into mercurial-5.0 mercurial-5.0
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
Sat, 28 Sep 2019 12:51:03 +0200 changelog: update for coming 9.2.0 stable 9.2.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
Fri, 27 Sep 2019 12:49:36 +0200 test: backed out test change applied in 2d85de79ead8 stable
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
Fri, 27 Sep 2019 12:49:15 +0200 test: backed out test change applied in 62b60fc1983d stable
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
Fri, 27 Sep 2019 12:48:44 +0200 test: backed out test change applied in e804d5a7c193 stable
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
Fri, 27 Sep 2019 12:48:28 +0200 test: backed out test change applied in 8345b852cd4f stable
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
Fri, 27 Sep 2019 06:55:05 +0200 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 06:55:05 +0200] rev 4857
branching: merge with stable
Wed, 25 Sep 2019 19:43:19 +0200 stable-doc: note about not storing smaller range
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
Wed, 25 Sep 2019 19:43:02 +0200 stable-doc: small typo
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Sep 2019 19:43:02 +0200] rev 4855
stable-doc: small typo
Wed, 25 Sep 2019 19:31:44 +0200 stable-doc: add more advanced examples
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Sep 2019 19:31:44 +0200] rev 4854
stable-doc: add more advanced examples
Wed, 25 Sep 2019 18:23:37 +0200 stable-doc: add multiples example for the simple cases
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
Thu, 26 Sep 2019 10:00:51 +0200 test-output: oops
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
Wed, 25 Sep 2019 03:17:46 +0200 test: update part count in tests
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
Mon, 09 Sep 2019 09:28:47 +0700 evolve: check that relocating makes sense in _solvedivergent() (issue5958) stable
Anton Shestakov <av6@dwimlabs.net> [Mon, 09 Sep 2019 09:28:47 +0700] rev 4850
evolve: check that relocating makes sense in _solvedivergent() (issue5958)
Wed, 24 Oct 2018 19:32:04 +0200 tests: demonstrate content divergence causing "relocate node on top of itself" stable
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"
Mon, 16 Sep 2019 12:44:38 -0700 cmdstate: introduce a "saver" contextmanager and use it in place of save()
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).
Mon, 16 Sep 2019 12:42:50 -0700 cmdstate: avoid setting a default argument to a mutable object (`{}`)
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.
Mon, 16 Sep 2019 12:42:11 -0700 cmdstate: switch to new-style classes
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.
Tue, 24 Sep 2019 12:42:27 +0200 branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Sep 2019 12:42:27 +0200] rev 4845
branching: merge stable into default
Fri, 19 Jul 2019 16:26:48 +0200 docs: add example for the `prune` command stable
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.
Thu, 19 Sep 2019 11:46:16 +0700 tests: add some more actions to test-issue-6028, describe what's being done stable
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.
Fri, 13 Sep 2019 16:04:32 +0200 topic: fix some API to make it more robust stable
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.
Tue, 10 Sep 2019 15:43:20 +0700 rewriteutil: move allowdivergence check to foldcheck() stable
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.
Thu, 12 Sep 2019 12:35:42 +0200 test: change to output around transaction timing
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
Tue, 10 Sep 2019 07:38:46 +0200 branching: merge with stable
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.
Sun, 08 Sep 2019 21:24:45 +0200 stablerange: add some data from field testing
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.
Sun, 08 Sep 2019 17:50:48 +0200 stablerange: add a debugstablerangecache command
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.
Sun, 08 Sep 2019 17:49:26 +0200 stablerange: add some documentation about the general concept
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
Sun, 08 Sep 2019 17:47:37 +0200 stablesort: add some field data about stable sort cache
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
Sun, 08 Sep 2019 13:31:28 +0200 stablesort: introduce a small debugstablesortcache command
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.
Sun, 08 Sep 2019 11:56:11 +0200 stablesort: add some documentation for stablesort
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.
Sat, 07 Sep 2019 13:03:29 +0700 fold: check allowdivergence before folding obsolete changesets (issue5817) stable
Anton Shestakov <av6@dwimlabs.net> [Sat, 07 Sep 2019 13:03:29 +0700] rev 4832
fold: check allowdivergence before folding obsolete changesets (issue5817)
Wed, 28 Aug 2019 18:30:58 +0700 tests: demonstrate that fold doesn't care about allowdivergence config option stable
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
Fri, 06 Sep 2019 13:23:25 +0700 stack: remove unnecessary copying of rdependencies stable
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.
Fri, 06 Sep 2019 12:53:46 +0700 stack: make a deep copy of `dependencies` before modifying its items stable
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).
Fri, 06 Sep 2019 12:16:34 +0700 stack: demonstrate that not reusing cached property gives different results stable
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.
Tue, 03 Sep 2019 12:48:47 +0200 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 03 Sep 2019 12:48:47 +0200] rev 4827
branching: merge with stable
Tue, 03 Sep 2019 13:02:20 +0700 changelog: add missing entry for 9af212b8565a stable
Anton Shestakov <av6@dwimlabs.net> [Tue, 03 Sep 2019 13:02:20 +0700] rev 4826
changelog: add missing entry for 9af212b8565a
Tue, 03 Sep 2019 13:02:20 +0700 evolve: test that target is not orig in _solveunstable() (issue6097) stable
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.
Mon, 02 Sep 2019 11:17:23 +0700 tests: demonstrate an orphan changeset cause "relocate node on top of itself" stable
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.
Fri, 30 Aug 2019 11:31:19 +0700 obslog: only indent the first chunk and chunks just after newlines (issue6175) stable
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)
Fri, 30 Aug 2019 11:28:02 +0700 tests: demonstrate too many spaces in olog -p output with word-diff stable
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
Thu, 25 Jul 2019 18:37:16 +0800 rewind: add --keep flag that "doesn't modify working directory"
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).
Tue, 23 Jul 2019 18:05:40 +0800 tests: separate rewinding of merge commits, temporarily drop an error case
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.
Wed, 07 Aug 2019 15:22:16 +0200 python3: add python3 beta support to the CHANGELOG
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
Wed, 07 Aug 2019 15:21:56 +0200 python3: mention beta Python 3 support in README
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
Wed, 07 Aug 2019 15:21:17 +0200 python3: add supported python versions to setup.py
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.
Fri, 09 Aug 2019 12:48:58 +0200 test: update output for wider cache warming
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
Tue, 06 Aug 2019 19:28:51 +0200 branching: merge with stable
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 :-)
Tue, 06 Aug 2019 15:06:38 +0200 python3: use format-source to run byteify-strings in .py files
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.
Tue, 06 Aug 2019 19:27:54 +0200 topic: add a new random attribute stable
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)
Tue, 06 Aug 2019 15:06:27 +0200 python3: enforce byte prefix for vfs.open()
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.
Tue, 06 Aug 2019 11:35:09 +0200 python3: add raw prefix to sqlite isolation level
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
Tue, 06 Aug 2019 11:34:31 +0200 python3: add ignore block around python 2 compatibility if branch
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
Tue, 06 Aug 2019 16:23:57 +0200 flake8: silence F633 error stable
Raphaël Gomès <rgomes@octobus.net> [Tue, 06 Aug 2019 16:23:57 +0200] rev 4809
flake8: silence F633 error
Tue, 06 Aug 2019 11:33:53 +0200 python3: add raw prefix to edge-cases kwargs-like objects
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
Tue, 06 Aug 2019 11:32:01 +0200 python3: add raw prefix to open()-like functions
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
Tue, 06 Aug 2019 11:30:45 +0200 python3: add raw prefix to all array.array() calls
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
Tue, 06 Aug 2019 11:29:35 +0200 python3: add raw prefix to "troubles"-related dicts
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.
Tue, 06 Aug 2019 11:26:29 +0200 python3: add raw prefix in cases harder to analyze at the token level
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.
Tue, 06 Aug 2019 11:17:38 +0200 python3: add byte prefix for objects that look like kwargs but aren't
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.
Tue, 06 Aug 2019 11:10:36 +0200 python3: mark all SQL queries as raw strings
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
Tue, 06 Aug 2019 11:07:16 +0200 python3: prefix all regex to work with python 2 and 3
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
Tue, 06 Aug 2019 00:16:05 +0200 pick: added support for hg abort
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.
Tue, 06 Aug 2019 00:16:01 +0200 pick: factor our the abort function
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.
Thu, 11 Jul 2019 22:56:46 +0530 abort: added support for evolve to 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.
Fri, 12 Jul 2019 23:43:25 +0530 evolve: fixed lock acquire before checking state
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.
Wed, 31 Jul 2019 10:52:14 -0700 py3: add back a progress(0) call lost in 8664231b47ac
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.
Fri, 02 Aug 2019 13:00:11 -0700 prune: adjust 'nothing to prune' to imply user needs to specify revs to prune
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
Sat, 20 Jul 2019 17:33:00 +0800 rewind: working directory is the preferred term
Anton Shestakov <av6@dwimlabs.net> [Sat, 20 Jul 2019 17:33:00 +0800] rev 4794
rewind: working directory is the preferred term
Sat, 20 Jul 2019 16:51:44 +0800 rewind: add command synopsis
Anton Shestakov <av6@dwimlabs.net> [Sat, 20 Jul 2019 16:51:44 +0800] rev 4793
rewind: add command synopsis
Fri, 28 Jun 2019 21:07:20 +0000 py3: make setup.py py3 compatible
Ludovic Chabant <ludovic@chabant.com> [Fri, 28 Jun 2019 21:07:20 +0000] rev 4792
py3: make setup.py py3 compatible
Tue, 30 Jul 2019 02:55:22 +0200 branching: merge stable back into default
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.
Tue, 30 Jul 2019 02:55:01 +0200 packaging: mark as development version stable
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.
Tue, 30 Jul 2019 02:50:14 +0200 Added tag 9.1.0 for changeset 6f37fdad7ac1 stable
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
Mon, 29 Jul 2019 16:47:17 +0200 packaging: update version number for 9.1.0 release stable 9.1.0
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.
Tue, 30 Jul 2019 02:44:08 +0200 changelog: add missing entry for dfd88e3fa90a stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 Jul 2019 02:44:08 +0200] rev 4787
changelog: add missing entry for dfd88e3fa90a
Mon, 29 Jul 2019 16:41:19 +0200 packaging: groom changelog prior to release stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 16:41:19 +0200] rev 4786
packaging: groom changelog prior to release
Mon, 29 Jul 2019 14:43:20 +0200 test-compat: merge mercurial-4.6 into mercurial-4.5 mercurial-4.5
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
Mon, 29 Jul 2019 14:43:17 +0200 test-compat: merge mercurial-4.7 into mercurial-4.6 mercurial-4.6
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
Mon, 29 Jul 2019 14:43:15 +0200 test-compat: merge mercurial-4.8 into mercurial-4.7 mercurial-4.7
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
Mon, 29 Jul 2019 14:43:12 +0200 test-compat: merge mercurial-4.9 into mercurial-4.8 mercurial-4.8
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
Mon, 29 Jul 2019 14:43:10 +0200 test-compat: merge mercurial-5.0 into mercurial-4.9 mercurial-4.9
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
Mon, 29 Jul 2019 14:42:57 +0200 test-compat: merge stable into mercurial-5.0 mercurial-5.0
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
Mon, 29 Jul 2019 14:42:49 +0200 branching: merge the two mercurial-5.0 heads 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
Mon, 29 Jul 2019 13:19:54 +0200 test-compat: reverte output change from 4764e8436b2a (hg-5.1) mercurial-5.0
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.
Mon, 29 Jul 2019 13:19:48 +0200 test-compat: reverte output change from f802a75da585 (hg-5.1) mercurial-5.0
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.
Mon, 29 Jul 2019 13:17:56 +0200 test-compat: reverte output change from c7d236b55a3e (hg-5.1) mercurial-5.0
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.
Mon, 29 Jul 2019 14:38:31 +0200 branching: merge default into stable to prepare 9.1.0 stable
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!
Mon, 29 Jul 2019 13:54:57 +0200 branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Jul 2019 13:54:57 +0200] rev 4774
branching: merge stable into default
Mon, 29 Jul 2019 11:40:24 +0200 test-compat: merge mercurial-4.6 into mercurial-4.5 mercurial-4.5
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
Mon, 29 Jul 2019 11:40:22 +0200 test-compat: merge mercurial-4.7 into mercurial-4.6 mercurial-4.6
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
Mon, 29 Jul 2019 11:40:20 +0200 test-compat: merge mercurial-4.8 into mercurial-4.7 mercurial-4.7
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
Mon, 29 Jul 2019 11:40:18 +0200 test-compat: merge mercurial-4.9 into mercurial-4.8 mercurial-4.8
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
Mon, 29 Jul 2019 11:40:16 +0200 test-compat: merge mercurial-5.0 into mercurial-4.9 mercurial-4.9
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
Mon, 29 Jul 2019 11:40:14 +0200 test-compat: merge stable into mercurial-5.0 mercurial-5.0
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
Thu, 25 Jul 2019 18:29:59 +0200 test-compat: opening test compatibility branch for mercurial 5.0 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.
Mon, 29 Jul 2019 12:45:29 +0200 test-compat: close branch for mercurial-4.0 mercurial-4.4
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
Thu, 25 Jul 2019 09:59:41 -0700 prune: fix small grammatical issues in help text stable
Kyle Lippincott <spectral@google.com> [Thu, 25 Jul 2019 09:59:41 -0700] rev 4765
prune: fix small grammatical issues in help text
Fri, 19 Jul 2019 17:40:45 +0800 docs: update evolve-faq.rst with new prune flag and proper vocabulary stable
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.
Fri, 19 Jul 2019 17:25:29 +0800 prune: spell --successor flag without any unnecessary shortcuts stable
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.
Wed, 17 Jul 2019 12:47:37 -0700 py3: redefine "troublecategories" in evolve as a dict
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.
Fri, 12 Jul 2019 08:11:39 -0700 py3: store to __doc__ as str (unicode on py3)
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)
Wed, 17 Jul 2019 12:47:20 -0700 py3: also catch ImportError when relative import fails
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.
Fri, 12 Jul 2019 10:26:41 -0700 py3: convert exceptions to bytes using pycompat.bytestr()
Martin von Zweigbergk <martinvonz@google.com> [Fri, 12 Jul 2019 10:26:41 -0700] rev 4759
py3: convert exceptions to bytes using pycompat.bytestr()
Thu, 11 Jul 2019 16:00:25 -0700 py3: use "%d" for formatting integers
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 16:00:25 -0700] rev 4758
py3: use "%d" for formatting integers
Fri, 12 Jul 2019 08:17:25 -0700 py3: avoid "%s" for formatting None
Martin von Zweigbergk <martinvonz@google.com> [Fri, 12 Jul 2019 08:17:25 -0700] rev 4757
py3: avoid "%s" for formatting None
Fri, 12 Jul 2019 08:16:30 -0700 py3: use "%f" for formatting floating point number
Martin von Zweigbergk <martinvonz@google.com> [Fri, 12 Jul 2019 08:16:30 -0700] rev 4756
py3: use "%f" for formatting floating point number
Thu, 11 Jul 2019 15:30:43 -0700 py3: fix progress() functions to not use "%s" with int
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).
Wed, 17 Jul 2019 11:45:37 -0700 py3: make random topic name generation consistent across py2/py3
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.
Fri, 12 Jul 2019 17:02:35 -0700 py3: convert str to bytes before passing to core exception
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
Wed, 17 Jul 2019 11:03:09 -0700 py3: convert opts keys to bytes before passing to core APIs
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
Fri, 14 Jun 2019 18:44:43 -0700 evolve: further clarify when update is performed stable
kevpeng@google.com [Fri, 14 Jun 2019 18:44:43 -0700] rev 4751
evolve: further clarify when update is performed
Thu, 11 Jul 2019 15:30:40 -0700 py3: avoid comparing int and None
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 15:30:40 -0700] rev 4750
py3: avoid comparing int and None
Thu, 11 Jul 2019 21:48:37 -0700 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:37 -0700] rev 4749
py3: avoid "%r" for list of byte strings, which produces b'' on py3
Thu, 11 Jul 2019 21:48:02 -0700 py3: avoid "%r" for byte string, 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.
Thu, 11 Jul 2019 14:46:17 -0700 py3: replace str(ctx) by bytes(ctx)
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.
Thu, 11 Jul 2019 16:04:17 -0700 py3: use inspect.signature() instead of inspect.getargspec() on py3
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
Tue, 09 Jul 2019 10:56:42 -0700 py3: use array.array.{to,from}bytes() 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.
Thu, 11 Jul 2019 14:31:32 -0700 py3: config values can be bytes, but never unicode
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
Sat, 13 Jul 2019 00:17:03 -0700 py3: call branchmap.items() on py3 and continue to call iteritems() on py2
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.
Fri, 12 Jul 2019 23:24:04 -0700 py3: switch from iteritems() to items() in the topics extension
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.
Sun, 14 Jul 2019 22:34:36 -0700 py3: filter() now returns a generator, so wrap when we need a list
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
Fri, 12 Jul 2019 23:19:50 -0700 py3: don't depend on map() iterating over its input
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.
Thu, 11 Jul 2019 16:49:01 -0700 py3: implement __bool__ in addition to __nonzero__
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 16:49:01 -0700] rev 4739
py3: implement __bool__ in addition to __nonzero__
Thu, 11 Jul 2019 14:21:23 -0700 py3: replace iter.next() by next(iter)
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 14:21:23 -0700] rev 4738
py3: replace iter.next() by next(iter)
Thu, 11 Jul 2019 14:16:48 -0700 py3: replace xrange() by range()
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 14:16:48 -0700] rev 4737
py3: replace xrange() by range()
Thu, 11 Jul 2019 12:19:49 -0700 py3: read sqlite3 data as bytes
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
Thu, 11 Jul 2019 12:11:43 -0700 py3: sqlite3.connect() expects str arguments
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 12:11:43 -0700] rev 4735
py3: sqlite3.connect() expects str arguments
Fri, 12 Jul 2019 23:00:11 -0700 cleanup: remove check only needed for hg versions before 4.4
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.
Fri, 12 Jul 2019 08:20:24 -0700 split: remove an unnecessary (and confusingly typed) fallback revision
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.
Thu, 11 Jul 2019 22:23:32 -0700 evolve: rename variable "children" to "child" where it's clearly singular
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
Thu, 11 Jul 2019 16:24:13 -0700 evolve: remove some unused variables
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Jul 2019 16:24:13 -0700] rev 4731
evolve: remove some unused variables
Thu, 11 Jul 2019 09:38:42 -0700 py3: back out 23323092f0a7
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.
Wed, 17 Jul 2019 18:06:14 +0200 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Jul 2019 18:06:14 +0200] rev 4729
branching: merge with stable
Wed, 17 Jul 2019 17:58:44 +0200 touch: fix the inconsistent behavior of divergence catching logic (issue6107) 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.
Sat, 29 Jun 2019 14:28:35 +0530 touch: add test which shows touch can fail to warn about divergence stable
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
Wed, 17 Jul 2019 17:58:40 +0200 touch: clarify some inline documentation stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 17 Jul 2019 17:58:40 +0200] rev 4726
touch: clarify some inline documentation
Mon, 15 Jul 2019 16:53:07 -0700 tests: update output for new branch cache messsages from Mercurial
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
Sat, 13 Jul 2019 18:22:34 +0800 metaedit: allow operations on merge commits with some conditions
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.
Thu, 11 Jul 2019 18:07:03 +0800 fold: allow operations on merge commits with some conditions
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).
Thu, 11 Jul 2019 17:04:08 +0800 rewind: make sure merge commits include files from p1 and p2
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.
Wed, 10 Jul 2019 18:16:38 +0800 touch: make sure merge commits include files from p1 and p2
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.
Tue, 09 Jul 2019 10:56:42 -0700 py3: make `import hgext3rd.evolve` work
Martin von Zweigbergk <martinvonz@google.com> [Tue, 09 Jul 2019 10:56:42 -0700] rev 4720
py3: make `import hgext3rd.evolve` work
Tue, 09 Jul 2019 10:56:42 -0700 py3: use bytes for template keyword registrations
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.
Tue, 09 Jul 2019 10:56:42 -0700 py3: convert _origdoc to sysstr to match __doc__
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.
Tue, 09 Jul 2019 10:56:42 -0700 py3: use bytes for revset predicate registrations
Martin von Zweigbergk <martinvonz@google.com> [Tue, 09 Jul 2019 10:56:42 -0700] rev 4717
py3: use bytes for revset predicate registrations
Tue, 09 Jul 2019 10:56:42 -0700 py3: use bytes for wireprotocol command registration
Martin von Zweigbergk <martinvonz@google.com> [Tue, 09 Jul 2019 10:56:42 -0700] rev 4716
py3: use bytes for wireprotocol command registration
Tue, 09 Jul 2019 10:56:42 -0700 py3: use byte strings for @command registrations
Martin von Zweigbergk <martinvonz@google.com> [Tue, 09 Jul 2019 10:56:42 -0700] rev 4715
py3: use byte strings for @command registrations
Wed, 03 Jul 2019 11:13:47 -0700 py3: switch from iteritems() to items()
Martin von Zweigbergk <martinvonz@google.com> [Wed, 03 Jul 2019 11:13:47 -0700] rev 4714
py3: switch from iteritems() to items()
Wed, 03 Jul 2019 11:37:29 -0700 py3: make metadata values be byte strings as Mercurial expects
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
Tue, 09 Jul 2019 21:49:37 -0700 tests: update output for shorted prompts from Mercurial
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
Thu, 11 Jul 2019 10:07:39 +0200 tests: update output for shorted prompts from Mercurial
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
Tue, 09 Jul 2019 17:08:34 +0800 rewriteutil: allow rewriting merge commits (issue4561)
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.
Tue, 09 Jul 2019 17:02:44 +0800 tests: show what happens when trying to hg touch a merge commit
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
Thu, 04 Jul 2019 17:32:58 +0200 evolve: further clarify that update is performed only when requested stable
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.
Fri, 14 Jun 2019 22:46:58 +0530 touch: let's not use util.acceptintervention() as it's not required
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
Thu, 04 Jul 2019 16:55:57 +0200 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 Jul 2019 16:55:57 +0200] rev 4706
branching: merge with stable
Wed, 26 Jun 2019 21:11:25 +0530 evolve: use right value for branch name when finding branch heads
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.
Tue, 25 Jun 2019 21:54:22 +0530 evolve: fix confusion in branch heads checking logic when topic in play
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.
Sun, 14 Apr 2019 12:55:46 +0530 topic: add tests to demonstrate topic confuses the branchhead checking logic
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.
Mon, 01 Jul 2019 19:15:57 +0530 evolve: fix the inconsistent behaviour of prune (issue6137) stable
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.
Tue, 02 Jul 2019 21:00:46 +0530 prune: add tests to demonstrate issue6137 stable
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.
Sun, 30 Jun 2019 23:50:57 +0530 compat: fix `setupevolveunfinished` for upstream
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 30 Jun 2019 23:50:57 +0530] rev 4700
compat: fix `setupevolveunfinished` for upstream
Sat, 29 Jun 2019 18:21:57 +0800 prune: update to the successor of wdir also with --pair/--biject (issue6142) stable
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).
Sat, 22 Jun 2019 18:37:21 +0800 tests: demonstrate prune --pair not moving bookmark correctly stable
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).
Tue, 02 Jul 2019 10:17:42 +0200 oops: backed out changeset 7ac40b4ea24c
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.
Sun, 30 Jun 2019 23:50:57 +0530 compat: fix `setupevolveunfinished` for upstream
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 30 Jun 2019 23:50:57 +0530] rev 4696
compat: fix `setupevolveunfinished` for upstream
Sun, 16 Jun 2019 23:39:55 +0530 evolve: fix the code flow pattern of solving obswdir par and troubled revs
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.
Sun, 09 Jun 2019 12:07:08 +0530 evolve: refactor for consistent behavior of evolve when wdp is obsolete
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.
Sat, 15 Jun 2019 17:17:19 +0530 evolve: backout 3027005c42c3 to reintroduce a bug for right fix
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.
Fri, 14 Jun 2019 18:17:03 +0800 pick: register pickstate as an unfinished state stable
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.
Fri, 14 Jun 2019 18:14:57 +0800 pick: rename variable for unfinishedstates stable
Anton Shestakov <av6@dwimlabs.net> [Fri, 14 Jun 2019 18:14:57 +0800] rev 4691
pick: rename variable for unfinishedstates
Fri, 14 Jun 2019 18:26:24 +0800 pick: actually delete pickstate if --abort is given stable
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.
Tue, 18 Jun 2019 17:17:31 +0800 evolve: orphans that evolve into nothing don't need successors (issue5967) stable
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().
Sat, 22 Dec 2018 18:31:32 +0800 tests: demonstrate obsmarker creation after discarding conflicting changes stable
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.
Fri, 07 Jun 2019 18:14:48 +0800 pick: remove transaction on the whole command (issue6037) stable
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.
Sun, 23 Dec 2018 01:02:36 +0800 tests: demonstrate hg pick forgetting files after conflicts stable
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.
Thu, 13 Jun 2019 13:27:26 +0800 packaging: follow hg's supported python version (>= 2.7) stable
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".
(0) -3000 -1000 -192 +192 tip