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.
(0) -3000 -1000 -120 +120 tip