Tim Gates
e8cbb85825
docs: fix simple typo, octipus -> octopus
...
There is a small typo in TODO.md.
Should read `octopus` rather than `octipus`.
2020-12-25 09:20:35 +11:00
Michael Haggerty
d1e8f36caf
Merge pull request #178 from jdufresne/new-pythons
...
Add trove classifiers for Python 3.8 and 3.9
2020-11-30 17:13:01 +01:00
Michael Haggerty
2b63403b9c
Merge pull request #176 from mhagger/handle-no-completions
...
If `completionsdir` is not configured, just skip installing completions
2020-11-30 17:10:43 +01:00
Jon Dufresne
cbf6e08b5f
Add trove classifiers for Python 3.8 and 3.9
...
Python 3.9 was released November 28, 2020.
https://docs.python.org/dev/whatsnew/3.9.html
2020-11-28 05:19:58 -08:00
Michael Haggerty
e958f43ba6
Fix what is apparently a python3ism
2020-10-27 14:59:11 +01:00
Michael Haggerty
ae96ba61b3
If completionsdir is not configured, just skip installing completions
...
This was failing for some people who didn't have `bash-completion`
installed.
2020-10-27 14:39:33 +01:00
Michael Haggerty
3c5ab35445
Merge pull request #175 from pabs3/makefile
...
Move Makefile to the talk directory
2020-10-27 14:29:52 +01:00
Michael Haggerty
6e39224637
Merge pull request #174 from pabs3/https
...
Update links from http to https
2020-10-27 14:28:26 +01:00
Paul Wise
5f84eaf168
Add a clean target to the talk Makefile
...
So that it is easier to force a rebuild of the talk HTML.
2020-10-26 07:02:22 +08:00
Paul Wise
5c1b6f1552
Move Makefile to the talk directory
...
It is no longer needed outside this directory
since it has mostly been replaced by setup.py.
Always build the talk HTML, now that the Makefile is in a subdir,
since subdir builds only happen when explicitly requested.
Update the documentation to match the new build setup.
2020-10-26 06:59:42 +08:00
Paul Wise
b70eacc3d9
Update links from http to https
...
Reduces the chance of network attackers modifying the HTML.
Don't modify the embedded copy of the docutils small-white theme,
since rebuilding the talk HTML will also revert the changes,
if the theme is not yet present on disk.
Suggested-by: check-all-the-things
2020-10-25 16:12:17 +08:00
Michael Haggerty
fd3dbfc431
Merge pull request #173 from pabs3/description
...
Synchronise description from the README to setup.py
2020-10-22 16:24:24 +02:00
Paul Wise
b7ae8020f8
Synchronise description from the README to setup.py
2020-10-08 12:59:22 +08:00
Michael Haggerty
0c1c05f631
Merge pull request #169 from mhagger/polymorphic-frontiers
...
Make the `MergeFrontier` class polymorphic
2020-09-26 10:40:05 +02:00
Michael Haggerty
d5d18a6c0d
ManualMergeFrontier: new MergeFrontier
class to implement --manual
...
Rip some code out of `BlockwiseMergeFrontier` that used to handle
`--manual`.
2020-09-20 16:10:02 +02:00
Michael Haggerty
6b723e4d8f
Block.auto_fill(): inline method into BlockwiseMergeFrontier.auto_expand()
...
It still has to consider manual merges though.
2020-09-20 16:10:02 +02:00
Michael Haggerty
07a670099a
map_frontier(): move method from Block
to MergeState
2020-09-20 16:10:02 +02:00
Michael Haggerty
12ddea036d
FullMergeFrontier: new class for handling goal "full"
...
Add a second concrete implementation of `MergeFrontier`, and use it
for goal "full". The interface still isn't entirely nailed down but it
works.
2020-09-20 16:10:02 +02:00
Michael Haggerty
f90f22954c
MergeState.auto_complete_frontier(): always call save()
...
Always call `save()` after `frontier.auto_expand()`.
2020-09-20 16:10:02 +02:00
Michael Haggerty
ebc97ef497
Move some code from try
to else
blocks
2020-09-20 16:10:02 +02:00
Michael Haggerty
3493587767
Block.auto_fill_micromerge(): allow (i1, i2) to be specified
2020-09-20 16:10:02 +02:00
Michael Haggerty
e2d741fcad
BlockwiseMergeFrontier.auto_fill(): inline into initiate_merge()
...
This also means that it is easier to regenerate the merge frontier
exactly when necessary, so do so.
2020-09-20 16:10:02 +02:00
Michael Haggerty
940f9ae658
BlockwiseMergeFrontier.auto_fill(): iterate rather than recurse
...
Because `BlockwiseMergeFrontier.auto_fill()` always processed blocks
from the front (i.e., left side) of the list of blocks, the old code
never in fact had to iterate over the "left" side of the partition. So
change it to iterate over the blocks in order rather than to recurse.
2020-09-20 16:10:02 +02:00
Michael Haggerty
1acdd1d8f7
BlockwiseMergeFrontier.initiate_merge(): call auto_fill() internally
...
Change `BlockwiseMergeFrontier.initiate_merge` to auto_fill() the
initial blocks (including any necessary refinements due to unexpected
failures) and also to return a fresh merge_frontier that really
reflects the state after autofilling.
2020-09-20 16:10:02 +02:00
Michael Haggerty
5bd6ba79c2
BlockwiseMergeFrontier.auto_fill(): make work for an empty frontier
...
If the frontier starts out empty, just return False. Then we can
remove the analogous check from `Block.auto_fill()`.
2020-09-20 16:10:02 +02:00
Michael Haggerty
f7d0c50b5a
BlockwiseMergeFrontier.auto_fill(): fix the choice of best_block
...
Since the blocks always go back to the upper-left corner,
`block.get_original_indexes(0, 0)` is always referring to the same
merge, so the `max` wasn't doing anything. Actually, it was always
picking the first block, which is what we happen to want, but that is
because of the order that blocks are iterated over and implementation
details of `max`. So fix the logic so that the code works as intended.
2020-09-20 16:10:02 +02:00
Michael Haggerty
f7c792c05c
BlockwiseMergeFrontier.partition(): convert into an iterator
...
And don't include zero-length or zero-width frontiers in the output.
2020-09-20 16:10:02 +02:00
Michael Haggerty
898584cda3
BlockwiseMergeFrontier.__bool__(): fix docstring
2020-09-20 16:10:02 +02:00
Michael Haggerty
52f168df6a
Rename BlockwiseMergeFrontier.compute_by_bisection()
to initiate_merge()
2020-09-20 16:10:02 +02:00
Michael Haggerty
1c5744cb1d
BlockwiseMergeFrontier.incorporate_merge(): new method
...
...extracted from `MergeState.incorporate_user_merge()`. Other
MergeFrontier classes will have to implement this differently.
2020-09-20 16:10:02 +02:00
Michael Haggerty
d62db71a2b
MergeState.map_frontier(): new method
...
For now it always returns a `BlockwiseMergeFrontier`, but in the
future the return value will depend on the type of merge being done.
2020-09-20 16:10:02 +02:00
Michael Haggerty
ac699fa474
BlockwiseMergeFrontier: new class derived from MergeFrontier
...
As the next step towards making `MergeFrontier` polymorphic, move all
of the methods having to do with blockwise filling of an incremental
merge into a derived class, `BlockwiseMergeFrontier`. Change all
callers to use the derived class for now.
2020-09-20 16:10:02 +02:00
Michael Haggerty
2969b261ca
Block.auto_outline_frontier(): inline method
...
Inline `Block.auto_outline_frontier()` into
`Block.auto_expand_frontier()`, and rename the latter to
`auto_fill()`.
2020-09-20 16:10:02 +02:00
Michael Haggerty
2144bdb14c
MergeFrontier.auto_outline(): use iteration, not recursion
...
The recursion could, theoretically, overflow the stack.
2020-09-20 16:10:02 +02:00
Michael Haggerty
d1fafa83e5
MergeFrontier.auto_fill(): new method
...
Extract a new method, `MergeFrontier.auto_fill()`, from
`Block.auto_outline_frontier()`. (The latter might soon be
disappearing entirely.)
To support more than one strategy for completing a merge, it will be
helpful to make `MergeFrontier` take over more of the smarts. Then it
can be made polymorphic.
2020-09-20 16:10:02 +02:00
Michael Haggerty
88cf1c636f
MergeFrontier.iter_boundary_blocks(): new method
...
Extracted from `iter_blocker_blocks()`.
2020-09-20 16:10:02 +02:00
Michael Haggerty
c3fbcae3c1
Bump the version number for release 1.2.0
2020-09-20 15:28:25 +02:00
Michael Haggerty
f10a7d71ae
Merge pull request #168 from mhagger/markdown
...
Convert the README and TODO to markdown
2020-09-19 18:18:16 +02:00
Michael Haggerty
c83841a198
Convert the TODO to markdown
2020-09-19 18:16:10 +02:00
Michael Haggerty
6c33bc543b
Convert the README to markdown
2020-09-19 18:16:10 +02:00
Michael Haggerty
4554378dff
Merge pull request #167 from mhagger/tests-plus-plus
...
Add some more tests, and improve the existing ones
2020-09-19 16:53:39 +02:00
Michael Haggerty
7a2e5c314e
MANIFEST.in: add t/test-really-conflicted
2020-09-19 16:40:25 +02:00
Michael Haggerty
f5b7142e5f
tests: delete some obsolete comments and tidy up set
commands
2020-09-19 16:32:42 +02:00
Michael Haggerty
aac5e99c8d
test-conflicted: test conflicts at various places
2020-09-19 16:27:34 +02:00
Michael Haggerty
998c6aaff8
test-flip-flop: exhaustively test more variations on the theme
2020-09-19 16:27:31 +02:00
Michael Haggerty
275657a2bd
If micromerge 1-1 in a block unexpectedly fails, record it as a blocker
2020-09-19 15:11:55 +02:00
Michael Haggerty
aef4991eeb
test-flip-flop: continue the test through fixing the conflicts
2020-09-19 15:11:55 +02:00
Michael Haggerty
611b40a790
tests: add an example with a bunch of conflicts
2020-09-19 12:57:50 +02:00
Michael Haggerty
44820da626
Test a scenario that involves backtracking but ultimately fails
2020-09-18 14:19:15 +02:00
Michael Haggerty
30ca20ff8f
Add some tests involving duplicated commits
2020-09-18 14:19:15 +02:00