[darcs-devel] incremental rebuild segfault
Ganesh Sittampalam
ganesh at earth.li
Tue Aug 27 10:18:26 UTC 2019
Updates:
- I can reproduce it with GHC 8.6.5
- This is on Windows in case you didn't guess :-) I haven't tried Linux yet.
- I narrowed down the patch1891 to the single patch "remove
Darcs.Util.Graph.bk and some minor refactors", which invalidates my
hunch that it was cabal file related.
Attached are the contexts to reproduce it, tags base3 and breaks3 (I got
the naming convention confused in the pair of tags in my last mail, but
they can just be ignored now).
-------------- next part --------------
2 patches for repository urchin.earth.li:darcs/screened:
patch b5709d5630e25b9be3268654e75e8b45593fab41
Author: Ganesh Sittampalam <ganesh at earth.li>
Date: Tue Aug 27 11:00:04 GMT Summer Time 2019
tagged base3
patch 242a5a8e8f6f34fe31c1392c4fef1158c4a33eb7
Author: Ganesh Sittampalam <ganesh at earth.li>
Date: Tue Aug 27 11:02:56 GMT Summer Time 2019
tagged breaks3
New patches:
[TAG base3
Ganesh Sittampalam <ganesh at earth.li>**20190827100004
Ignore-this: 4ea2d953d3bc88257754c14aecea5e5c
]
<
[replace quickcheck with leancheck for testing Graph properties
Ben Franksen <ben.franksen at online.de>**20190825133104
Ignore-this: 6ef50b2fd5c131b28df5584f650b525b1e8ed1c5af17dc0a6c0ff4ecfb11022c3286e182fc8fffcd
Calculating graph properties scales very badly because the specifications
aren't optimised (naturally). Exhaustive testing with leancheck is a lot
more effective here because we avoid testing with (too) large graphs.
Unfortunately test-framework is a bit limited in that it doesn't allow to
scale the number of tests, just to set them to a fixed value. We opt to
set it to 0x8000 which covers all graphs up to size 6.
]
[harness: properly translate env script on Windows
Ganesh Sittampalam <ganesh at earth.li>**20190826201843
Ignore-this: 8aeec4ecdcfce78075c5be4debfe286f
We have Windows paths in Haskell but we need
Unix style paths in the env script
]
[tests: add a utility function for unpacking tarballs
Ganesh Sittampalam <ganesh at earth.li>**20190826173326
Ignore-this: 46817210f07a4253cf4589bffa12811f
This should make it less likely that someone will write
something that doesn't work on Windows.
]
[get rid of pointless (>>)
Ganesh Sittampalam <ganesh at earth.li>**20190826165654
Ignore-this: 6c401ff91f56f41a8f97967e0d4c3771
It may have been put there with the intention of having
the exception handler scope over just the last statement,
but it actually scoped over the entire do.
That scoping seems better anyway since we should still
tell the user about the mail body even if getSendmailCmd
fails.
]
[add the darcs executable as a build-tool-depend of darcs-test
Ganesh Sittampalam <ganesh at earth.li>**20190826144023
Ignore-this: d6e797d692e92855074e77520dc052cb
This means we can use cabal to run the tests and be sure that the
darcs executable they test will be up to date.
Without this change, 'cabal v2-run test:darcs-test'
(needed to run the harness with custom options) doesn't build the
executable.
]
[tests: always use 'tar -f -' to work with stdin/out
Ganesh Sittampalam <ganesh at earth.li>**20190826141856
Ignore-this: 8a6371c7b48b0109324098429c5346cd
tar on msys has taken to defaulting to \\.\tape0 instead
]
[harness: windows fixes for env file
Ganesh Sittampalam <ganesh at earth.li>**20190825133243
Ignore-this: 90f2ef59c1f45c5c46d180b3ceeb75d1
This corrects issues on Windows introduced by
"harness: create an environment file and source it
from tests/lib"
]
[TAG 2.15.1
Ben Franksen <ben.franksen at online.de>**20190821065908
Ignore-this: 4e9190f24c0c02b97865896d38e42743f7276dc9a3b28e0fa2a90086da5d6734cae6224e1a3141b5
]
[Darcs.Util.Graph: add properties and test them
Ben Franksen <ben.franksen at online.de>**20190821104132
Ignore-this: 51c2f7127ec6bf9366b0afc8a5aee83e602505c16a12d9d69623369cff58365cccef73d31b3bd3b5
]
[Darcs.Util.Graph: add hadocks
Ben Franksen <ben.franksen at online.de>**20190821084048
Ignore-this: 7b7931bdd919da44e34ae60340f446783e1b5343dfe3aeca2b241d4b1ee25c7e514c35907bdc60ca
]
[Darcs.Util.Graph: make helper functions local to ltmis
Ben Franksen <ben.franksen at online.de>**20190821083917
Ignore-this: 7869236b4f6e283050b2195f54c2465091194278a9b32f210de5c6cb24b2a2f11b1f8b2a402084c6
]
[bugfix for darcs send on Windows with GHC>=8.6
Ganesh Sittampalam <ganesh at earth.li>**20190824174904
Ignore-this: fd8afd37d693d7a06431cf696d030c63
]
[include all the information from exceptions in darcs send
Ganesh Sittampalam <ganesh at earth.li>**20190824174854
Ignore-this: be7288c5a261d4bfd5249bfdb9f1322f
The previous code was stripping away the filenames from
"does not exist" errors.
This change also means that all exceptions are guarded by
'warnMailBody', not just IO exceptions. As the purpose of
that is just to tell the user where their mail body was
preserved, this seems sensible.
]
[make scope of exception handler explicit
Ganesh Sittampalam <ganesh at earth.li>**20190824174656
Ignore-this: 4a9b69f37126e727d4c1ef5ca776df1b
It wasn't obvious to me from reading the code how the
precedence would work.
]
>
[TAG breaks3
Ganesh Sittampalam <ganesh at earth.li>**20190827100256
Ignore-this: ddb18cea7a50776698f2a7a393ef550d
]
<
[remove Darcs.Util.Graph.bk and some minor refactors
Ben Franksen <ben.franksen at online.de>**20190825123225
Ignore-this: b3e8e66874b3692e2f417ba3c877d9573b6fc8b39507b1d28aacd80a087cd35705c524039ac64731
]
[TAG base3
Ganesh Sittampalam <ganesh at earth.li>**20190827100004
Ignore-this: 4ea2d953d3bc88257754c14aecea5e5c
]
>
Context:
[remove Darcs.Util.Graph.bk and some minor refactors
Ben Franksen <ben.franksen at online.de>**20190825123225
Ignore-this: b3e8e66874b3692e2f417ba3c877d9573b6fc8b39507b1d28aacd80a087cd35705c524039ac64731
]
[replace quickcheck with leancheck for testing Graph properties
Ben Franksen <ben.franksen at online.de>**20190825133104
Ignore-this: 6ef50b2fd5c131b28df5584f650b525b1e8ed1c5af17dc0a6c0ff4ecfb11022c3286e182fc8fffcd
Calculating graph properties scales very badly because the specifications
aren't optimised (naturally). Exhaustive testing with leancheck is a lot
more effective here because we avoid testing with (too) large graphs.
Unfortunately test-framework is a bit limited in that it doesn't allow to
scale the number of tests, just to set them to a fixed value. We opt to
set it to 0x8000 which covers all graphs up to size 6.
]
[harness: properly translate env script on Windows
Ganesh Sittampalam <ganesh at earth.li>**20190826201843
Ignore-this: 8aeec4ecdcfce78075c5be4debfe286f
We have Windows paths in Haskell but we need
Unix style paths in the env script
]
[tests: add a utility function for unpacking tarballs
Ganesh Sittampalam <ganesh at earth.li>**20190826173326
Ignore-this: 46817210f07a4253cf4589bffa12811f
This should make it less likely that someone will write
something that doesn't work on Windows.
]
[get rid of pointless (>>)
Ganesh Sittampalam <ganesh at earth.li>**20190826165654
Ignore-this: 6c401ff91f56f41a8f97967e0d4c3771
It may have been put there with the intention of having
the exception handler scope over just the last statement,
but it actually scoped over the entire do.
That scoping seems better anyway since we should still
tell the user about the mail body even if getSendmailCmd
fails.
]
[add the darcs executable as a build-tool-depend of darcs-test
Ganesh Sittampalam <ganesh at earth.li>**20190826144023
Ignore-this: d6e797d692e92855074e77520dc052cb
This means we can use cabal to run the tests and be sure that the
darcs executable they test will be up to date.
Without this change, 'cabal v2-run test:darcs-test'
(needed to run the harness with custom options) doesn't build the
executable.
]
[tests: always use 'tar -f -' to work with stdin/out
Ganesh Sittampalam <ganesh at earth.li>**20190826141856
Ignore-this: 8a6371c7b48b0109324098429c5346cd
tar on msys has taken to defaulting to \\.\tape0 instead
]
[harness: windows fixes for env file
Ganesh Sittampalam <ganesh at earth.li>**20190825133243
Ignore-this: 90f2ef59c1f45c5c46d180b3ceeb75d1
This corrects issues on Windows introduced by
"harness: create an environment file and source it
from tests/lib"
]
[TAG 2.15.1
Ben Franksen <ben.franksen at online.de>**20190821065908
Ignore-this: 4e9190f24c0c02b97865896d38e42743f7276dc9a3b28e0fa2a90086da5d6734cae6224e1a3141b5
]
[harness: create an environment file and source it from tests/lib
Ben Franksen <ben.franksen at online.de>**20190817164343
Ignore-this: aabad73ab79e89f458d58c241be69a9af3690f856c583be77cdd2f09610733853b6fc760e88aa8d3
This fixes a long-time problem with the test harness: when you run the tests
in a specific directory, then cd there and try to run one of the scripts
manually, you didn't have the same environment as the original test run. So
you had to set PATH, EMAIL, TESTDATA, etc manually on the command line. We
now create a file named env that gets sourced by lib in addition to setting
the environment before we run the test.
]
[Darcs.Util.Graph: add properties and test them
Ben Franksen <ben.franksen at online.de>**20190821104132
Ignore-this: 51c2f7127ec6bf9366b0afc8a5aee83e602505c16a12d9d69623369cff58365cccef73d31b3bd3b5
]
[Darcs.Util.Graph: add hadocks
Ben Franksen <ben.franksen at online.de>**20190821084048
Ignore-this: 7b7931bdd919da44e34ae60340f446783e1b5343dfe3aeca2b241d4b1ee25c7e514c35907bdc60ca
]
[Darcs.Util.Graph: make helper functions local to ltmis
Ben Franksen <ben.franksen at online.de>**20190821083917
Ignore-this: 7869236b4f6e283050b2195f54c2465091194278a9b32f210de5c6cb24b2a2f11b1f8b2a402084c6
]
[bump version to 2.15.1 in cabal file
Ben Franksen <ben.franksen at online.de>**20190821065816
Ignore-this: a8abfac339dcc7f5328f4999a1c61e1916c7b59d5926b22f20963a6d0b977f73d6f45e6bad8cdb66
]
[tests/conflict-fight-failure.sh: allow 10% overshoot margin
Ben Franksen <ben.franksen at online.de>**20190815173438
Ignore-this: d537320db0cfa2e9774346b93b0f95f18f67496adb947ee0b9e4fba490a2aeb55a100a101e1d9487
This makes the test more robust against small fluctuations in timing.
]
[extend test script for pristine conversion
Ben Franksen <ben.franksen at online.de>**20190818084841
Ignore-this: 3148a5952f4cf47206797176476956e578a28f7a2b9c9482dd1f919a8f8cae0882fbc5df123b8000
]
[harness: use die instead of fail
Ben Franksen <ben.franksen at online.de>**20190817091845
Ignore-this: ddc852e0693796d21aef4ce08dec24646364e305247ae67d6fda7de813df804ca7d86b5741d29a95
We don't wrap the test harness in the top-level exception handler as we do
with darcs proper, so fail prints "user error" which I think is misleading.
]
[fix in add command: fail unconditionally when no files were added
Ben Franksen <ben.franksen at online.de>**20190711171606
Ignore-this: 22469c4fdb49a0ab3eb7212a0fa24b1a2c7dfdc741af95ac251da24817b0bdeaba1aa7ce4345846b
Whether a command fails should not depend on verbosity.
]
[apply: print "reading from stdin" unless --quiet
Ben Franksen <ben.franksen at online.de>**20190815082343
Ignore-this: 61151902ba9302aeb2b64099a809e74b371c07aa30f43cda5d744af4cd36e4e69b2e35812c89cc36
The message is indeed useful to users, since with no arguments 'darcs apply'
will "hang" waiting for input from the terminal. But printing it only if
--verbose is in effect defeats the purpose.
]
[get rid of unused exports/functions from D.P.W.Show
Ganesh Sittampalam <ganesh at earth.li>**20190817153547
Ignore-this: 6eab7be9c8f64f926340270912feb4e3
]
[get rid of unused ShowDictRecord
Ganesh Sittampalam <ganesh at earth.li>**20190817152325
Ignore-this: 8b118125be4f92201cf68c2e19582d2d
]
[bugfix in optimize compress
Ben Franksen <ben.franksen at online.de>**20190817092346
Ignore-this: ebe87b8bc6e4f46d4a4d5858fe01bc526eb4297d6dedc07028fb2fdc8f997669393126cebd30a319
We must not compress special patches such as pending or unrevert.
]
[cleanup applyCmd
Ben Franksen <ben.franksen at online.de>**20190815082300
Ignore-this: 99f481d07d2d7f30aae7e597948c0a3d35dc30a4ac7760c5446bee6ecc07db63eab97a2083b6108b
]
[re-unify finished messages in PatchAppliers
Ben Franksen <ben.franksen at online.de>**20190808082651
Ignore-this: 8fd84aafcea0481bac63b49c3258b2a7ab033d83acad888666df1fc3ce5f2f40c2f46563600d1107
We make a small simplification in the process: fetchPatches already reports
if there are no patches to pull, so we needn't repeat that.
]
[suspend reify: give reified fixup patches a real author
Ben Franksen <ben.franksen at online.de>**20190802175108
Ignore-this: c4214a716405b78fe15261b85c0208590fc2303964c7c942ff065288f9a4a5cfc9fd3352fbf382e6
Instead of "Invalid <invalid at invalid>" we now call getAuthor and pass that
down to reifyRebaseSelect.
]
[turn an error call into a proper failure when cloning
Ben Franksen <ben.franksen at online.de>**20190802170648
Ignore-this: 4faf657a56acd5ff5e815b438396ed6c9d1b7ab6441885913aadd5fa0033849347f554a343bd191c
This patch also cleans up the surrounding code:
* find uncommon patches only once instead of twice
* replace repeated calls to lengthFL with a let-bound variable
* rename some variables
* remove unneeded calls to hopefully and effect
Regarding the last change, note that (apply . effect) is strictly inferior
to the plain apply, since the latter is hopefully optimized via applyPrimFL.
]
[remove unused function filterFilePaths
Ben Franksen <ben.franksen at online.de>**20190808082958
Ignore-this: c8870127c48c5e129dd0259a00b4851717457412808fdf81d6dd0be47275cd13695a72e99d57e021
]
[fix call to anchorPath in Darcs.Repository.Diff.treeDiff
Ben Franksen <ben.franksen at online.de>**20190804213945
Ignore-this: 66f4b7d409afcacbcfa6039c7faccc8fb261f229c4eceb2143c855fc597df3956f3e683b604a1524
]
[eliminate a few redundant constraints in D.P.Rebase.Fixup
Ben Franksen <ben.franksen at online.de>**20190802173309
Ignore-this: 22141b307a756368edb41ac6447e06b21bcc0df6c5a69bdee3440ca004981a496be9f752d977f59c
]
[fix layout in parts of D.P.Rebase.Viewing and D.UI.Commands.Rebase
Ben Franksen <ben.franksen at online.de>**20190802172459
Ignore-this: 87f5e93e3f3d78674867cc8866f30fa2e5e5be889100c5a3b897f78f04e9a09051086fc611176427
This is to avoid extremely long code lines.
]
[replace parseFlags with operator '?'
Ben Franksen <ben.franksen at online.de>**20190802163034
Ignore-this: c70887ea5d8910d0956812124484e3176d278a9cbd0b05c3520901c4e8d21f6c5f8a401bc1c098d6
]
[remove redundant Functor superclass constraints when we already have Monad
Ben Franksen <ben.franksen at online.de>**20190802095907
Ignore-this: 23096a86e8b4e713827bb31df9274161b14784b5002b00a0e9d1bd1ff4359d8ae1f07b54f01f7454
]
[RepoPatchV3: optimize apply using applyPrimFL as for V1 and V2
Ben Franksen <ben.franksen at online.de>**20190801180422
Ignore-this: aea1e0874eeb0a6d291f0a68ea87aa20688821b13e87f6abc6f8dd234595bfd9bb2562b59bef1e67
]
[v3: re-add two optimisations for Contexted patches
Ben Franksen <ben.franksen at online.de>**20190730191941
Ignore-this: b93f07d01c0128a4b26050492f0b5931553957f8b08d36dae669c57965af5edcf96f4e4e34db7d83
I had them in my original version but removed them due to confusion about
fold combinators from D.P.Witnesses.Ordered. We no longer use these
combinators here because the simple recursive definitions are easier to
understand.
]
[regard explicit dependencies as resolving conflicts
Ben Franksen <ben.franksen at online.de>**20190720115158
Ignore-this: 736f3f54fc3b8b6c62890b1b1026e9f095168ef3a5499b975cb94c10a0a38019e619f2a24620ea20
This is necessary to allow users to resolve a conlfict in favour of what
darcs does by default (i.e. apply neither of the conflicting changes). The
implementation is mostly in Darcs.Patch.Named which now has an instance
Conflict. The PatchInfoAnd instance only delegates to the contained Named
patch. A subtlety here is that for efficiency and correctness in the face of
lazy repos, we must make sure that hopefully is lazy in its patch argument.
]
[tests/look_for_moves_and_replaces.sh: remove repo dir before creating it
Ben Franksen <ben.franksen at online.de>**20190808083027
Ignore-this: a50798bf111b92fddb5969e6c7fbe0c1836cb02758fdaca287b348daec0e25a9986b133666f1e98c
]
[disable tests/conflict-fight-failure.sh for darcs-1/2
Ben Franksen <ben.franksen at online.de>**20190801222645
Ignore-this: 9ffb4618d824e8c76e500ea1966b31703b6381830b14db1da50c79afa61a3e8f3c476aabf21a8617
]
[tests: conflict-fight-failure now tests that we scale reasonably
Ben Franksen <ben.franksen at online.de>**20190801212344
Ignore-this: b598ff6b7db6bc93e196e8ab4e089b2e51a9c08de2ce7daad100210fea77a9153c34a14d616e6673
We take the time of the first test run and then check that subsequent runs
take no more than the quadratic amount of time. So the test again fails
miserably for darcs-1 (after about 11 test runs) and for darcs-2 (after
about 6 runs). The new darcs-3 format succeeds with at least 200 runs.
]
[add tests/dependent-conflict-resolution.sh
Ben Franksen <ben.franksen at online.de>**20190707192250
Ignore-this: 46cf6ac87284f78caab3d96c650d9c489bf642ed5306bcd2e271da03417cf01633f1d7ec73adc2db
]
[tests: make ssh test more robust
Ben Franksen <ben.franksen at online.de>**20190719215006
Ignore-this: aec456aa395036732466af8884109494631ac1ea1eb431b4c9c4c2d569f158264fd612cefe0378ab
This means we set the remote PATH so that it uses the darcs we are testing,
and also set --remote-darcs to that when pushing.
Also replace use -a option instead of piping ys.
]
[slightly extend and cleanup test for issue154
Ben Franksen <ben.franksen at online.de>**20190709163358
Ignore-this: 2b29314c78fe5d79dbc3199306510411fb6aa054b948663492fbeb79ae4103bbef4cd1fa807aae8d
The test did not test that the previously added file d/moo can still be
found somewhere after we pull 'rmdir ./d'.
BTW, I wonder why the file d/moo gets deleted at all by the pull.
]
[fill in the placeholder "issueXXXX" with a proper reference
Ben Franksen <ben.franksen at online.de>**20190814095935
Ignore-this: 49f08cfdaf5740afa2b280df627ba2e425c883810606e6078b6b13fef3e3d8003f71b124fa87fb4f
]
[store the raw unmangled parts of a conflict in StandardResolution
Ben Franksen <ben.franksen at online.de>**20190808230408
Ignore-this: 583df8e5561e32d213b981e01a9b7a8047f352d638a9c68ffee664a17341fdcd73501f7839918220
This allows client code to display them in any form they wish, not
necessarily using ePutDocLn. We do provide warnUnmangled as a convenience
function, but also showUnmangled and even more low-level showUnravelled.
]
[move announceConflicts from D.R.Merge to D.R.Resolution
Ben Franksen <ben.franksen at online.de>**20190716194645
Ignore-this: 652d313b6319ef2372237828c8a8ace75112b14eed65c64cf6339043f9fe1f28b018deb945f21643
]
[tests: adapt conflict-doppleganger.sh
Ben Franksen <ben.franksen at online.de>**20190716192052
Ignore-this: dd375448c07895247ffeeb96929a95b9233219ef83e47ad880e4a53d89581be11f1988d2a6708962
A conflict involving 'addfile' prims cannot be cleanly mangled. This means
that there is nothing to record after the pull and the test therefore fails.
But this isn't what we want to test, so we record the 'addfile' separately
and share it.
]
[resolve issue2550: apply only properly mangled resolutions, warn about any others
Ben Franksen <ben.franksen at online.de>**20190716193444
Ignore-this: f63dd3fe64a45fde5ce550734183b63968e968390625870fbd2bb944f87ede1cea563a6ab84c34f8
To support this change we add the new data type StandardResolution and
return that from standardResolution. It contains a summary of the data we
gathered from calling resolveConflicts: the mangled resolutions, merged into
a single FL, the list of conflicted paths, and an IO action to warn about
and display any (unravelled) conflicts that we couldn't properly mangle. The
warning is normally only displayed if we actually want mangling to happen
i.e. if --mark-conflicts is in effect (except for the mark-conflicts command).
]
[pass a PrimCanonize dictionary explicitly when needed
Ganesh Sittampalam <ganesh at earth.li>**20190812142441
Ignore-this: 377a198414a29a79b2fee197920a5cab
This allows us to get rid of the dummy instance for
PrimCanonize (NamedPrim prim)
]
[use new TestablePrim alias in the harness instead of PrimPatch
Ganesh Sittampalam <ganesh at earth.li>**20190812141315
Ignore-this: c9ab451d95db338f8e9ff6c3a57364ef
This allows the removal of a bunch of dummy instances for NamedPrim
]
[enhance security of --inherit-default
Ben Franksen <ben.franksen at online.de>**20190618212734
Ignore-this: 125496b40e9f1d9bea35724d38caa066df530d96b699410e94bcbecad2a7e50705005322c0c8d5b7
We now check that the remote repo (dir) has the same owner as ".", reducing
the danger of using a corrupt defaultrepo due to encoding mismatches between
the remote and local repo.
]
[bugfix for darcs send on Windows with GHC>=8.6
Ganesh Sittampalam <ganesh at earth.li>**20190824174904
Ignore-this: fd8afd37d693d7a06431cf696d030c63
]
[include all the information from exceptions in darcs send
Ganesh Sittampalam <ganesh at earth.li>**20190824174854
Ignore-this: be7288c5a261d4bfd5249bfdb9f1322f
The previous code was stripping away the filenames from
"does not exist" errors.
This change also means that all exceptions are guarded by
'warnMailBody', not just IO exceptions. As the purpose of
that is just to tell the user where their mail body was
preserved, this seems sensible.
]
[make scope of exception handler explicit
Ganesh Sittampalam <ganesh at earth.li>**20190824174656
Ignore-this: 4a9b69f37126e727d4c1ef5ca776df1b
It wasn't obvious to me from reading the code how the
precedence would work.
]
[force PatchSet to always start at Origin
Ganesh Sittampalam <ganesh at earth.li>**20190812221156
Ignore-this: 828e8b1f3d20df6fb2da47be561ce866
]
[refactor the "darcs log" code to accept a list of patches
Ganesh Sittampalam <ganesh at earth.li>**20190812221152
Ignore-this: d7976ffbb208df3c63d257f096315b90
"rebase log" was faking a PatchSet to call it, which
violated the invariant observed elsewhere that all
PatchSets should start from Origin.
]
[improve doc comments for Rotcilfnoc
Ganesh Sittampalam <ganesh at earth.li>**20190811165258
Ignore-this: 35c95b9e7ce666ebe2d48ac6736775d
]
[remove our own optimisation settings in darcs.cabal
Ben Franksen <ben.franksen at online.de>**20190719155514
Ignore-this: f3706669b85fb34a4ec24ae430947855560cdf0e924b6834dcf3daa4849708da50d7a758758781da
Letting cabal be aware of optimisation makes it easier to switch between
optimised and unoptimised builds, since cabal nowadays puts unoptimised
builds in a separate directory.
I tested with a number CPU-intensive test runs (darcs-test -t conflict) that
this causes no performance regressions: the default optimisation level
chosen by cabal (-O1) gives the same or better results than the -O2 we
passed explicitly.
]
[eliminate Darcs.Patch.Dummy
Ben Franksen <ben.franksen at online.de>**20190812152620
Ignore-this: ccbaf006bd8b8ff0c617e886293caccfad1e973e923e14cd5490872173f4b1f79a962fca24208606
This is possible since Darcs.Patch.Match no longer needs it. The few
remaining ocurrences were easily refactored to avoid its use.
]
[clean up the Matchable mess
Ben Franksen <ben.franksen at online.de>**20190812152453
Ignore-this: c80c99da5e05957f138ce0fc802aff931e64ba4d7b7f79d39623a86c8360f7e53123f8a93bf4718a
This is a large refactor. Matchable is no longer a class but a constraint
synonym. This means we don't have to define instances and can therefore
defined it in Darcs.Patch.Match. Darcs.Patch.Matchable has been deleted.
MatchFun, Matcher, and PatchSetMatch no longer get the patch type or repo
type as parameter. Instead, MatchFun is now a data type that contains the
polymorphic match function (constrained to work only on Matchable patches).
Matchable p now also requires Ident p and PatchId p ~ PatchInfo, so we have
access to the PatchInfo (using ident). The goal here was to generalize
matching functions from PatchInfoAnd to any Matchable patch type. Since some
of the matching functions work on PatchSets, which have PatchInfoAnd
hard-coded, we add a new constraint synonym for RepoPatches p such that
PatchInfoAnd rt p becomes Matchable.
Darcs.UI.SelectPatches no longer has PatchInfoAnd in any of its type
signatures.
]
[replace some undefineds with TypeApplications
Ganesh Sittampalam <ganesh at earth.li>**20190812134126
Ignore-this: 67ab11c1b41ff8ffca3027493ebc923b
]
[replace commenting out with if False in qc_V1P1
Ganesh Sittampalam <ganesh at earth.li>**20190812133057
Ignore-this: 807001bd1d8c8d8ddce51135e7d598a1
Predictably the code had rotted a bit, but it looks like
from history that commute_properties is now pair_properties
]
[add V3INTEGRATION comments about the NamedPrim representation
Ganesh Sittampalam <ganesh at earth.li>**20190809153535
Ignore-this: 2312bd732fdc7a1e6868dfc732c8fb45
]
[add V3INTEGRATION TODO to the comment on forceCommutePrim
Ganesh Sittampalam <ganesh at earth.li>**20190807165746
Ignore-this: d3657ba813e2b31ee1e1ac3a4ced9a64
]
[V3 integration comment about fromPrim default
Ganesh Sittampalam <ganesh at earth.li>**20190807165618
Ignore-this: 278befc4369058a70c835d649f7052d4
]
[use the old test case generator for most RepoPatchV2 properties
Ben Franksen <ben.franksen at online.de>**20190801211751
Ignore-this: 1078a32e6e47edba95e4595ebe3db99f76c4203ef2a74c9e9360d7cf9393b8165622ddfd26f3b6da
With the new test case generator many properties fail for RepoPatchV2, so we
go back to the simpler generator that does not record patches after
conflicts. This required re-adding merge_properties and also adds
triple_properties (for permutivity). While we're at it, also test the
triple_properties for prim patches.
]
[harness: simplify type signatures and superclass constraints
Ben Franksen <ben.franksen at online.de>**20190717152157
Ignore-this: 8bc80efd13a66a248f82571add8a91d8828340395f600dc0e2a09a148aca34706ad93a05eb410a39
]
[harness: add propConsistentReorderings and test it
Ben Franksen <ben.franksen at online.de>**20190717152018
Ignore-this: 5320df5208bfb482142ecc6768dcecce8c5c756c86e1caa4e3d2a6fb0b06890cf78a904d617bbaf2
This property is similar to propConsistentTreeFlattenings but takes an RL
RepoPatch and a start state as input. This allows us to test it more
thoroughly by using the new test case generator for RL RepoPatch.
]
[harness: simplify constraints in D.T.Patch
Ben Franksen <ben.franksen at online.de>**20190716174132
Ignore-this: b974317bad52331d8edb4091e4ed727f5b52092f04c6a114a5f62338a1f91d04c24c64b781975f5c
]
[harness: test all patch formats by default
Ben Franksen <ben.franksen at online.de>**20190720120137
Ignore-this: ac32075f63af58f0b54521ffc4e1b0d8712462c95ee543abef52db4978a39d348633a7b033256c44
Now that we are moving towards darcs-3 format, better make sure we test that
by default. And testing darcs-1 is good to avoid regressions.
]
[use TestOnly for the constructors of RepoPatchV3
Ganesh Sittampalam <ganesh at earth.li>**20190809182248
Ignore-this: 6a51e1baadcad20103eb191863197b7d
]
[introduce TestOnly class
Ganesh Sittampalam <ganesh at earth.li>**20190714180507
Ignore-this: a9b4473e70f5e2c40b07b0aa5cec41c9
This allows us to explicitly flag test-only code in the
main darcs library.
]
[make sure patch context witnesses have role nominal
Ganesh Sittampalam <ganesh at earth.li>**20190611060602
Ignore-this: b3d0e5756a227f629e659952f0853493
This makes sure calling code can't use coerce to change the
witnesses.
We only need to do this for the low-level types. Higher-level
ones that take other patches as parameters will have this role
inferred anyway.
]
[drop Darcs.Patch.Type and use TypeApplications instead
Ganesh Sittampalam <ganesh at earth.li>**20190806155759
Ignore-this: 5638518f575a93c0f2757ca4fecfe3f7
]
[issue1442 test doesn't work on Windows
Ganesh Sittampalam <ganesh at earth.li>**20190806122442
Ignore-this: 75500d8b2db3e1b2ac5d546344647413
]
[move preselectPatches and getLastPatches into Darcs.UI.Commands.Util
Ben Franksen <ben.franksen at online.de>**20190805193423
Ignore-this: a356aac50e659cbb0b1bb5eac5066dd78b95a19892c4b3f7bdf685938995ad8c5951c71ace36f425
]
[rename withSelectedPatchFromRepo to withSelectedPatchFromList
Ben Franksen <ben.franksen at online.de>**20190805171819
Ignore-this: ef79b5cdba2cd2f30072ca077419bb524a083423e1986c3fdef41cadab14ba30adc085852b1a645b
]
[return EqCheck instead of Repository from requireNoUnrecordedChanges
Ben Franksen <ben.franksen at online.de>**20190805171036
Ignore-this: 1331c8fe46c432e186876cbe49978dca45f2cc7bcfbc483a960a890c40b6f35bed3315f08fe23165
]
[eliminate spurious superclass constraint Eq2 p => Ident p
Ben Franksen <ben.franksen at online.de>**20190729130835
Ignore-this: 93bce7a66ca3d4fc31228dd955c54dee71e2c81bc9be09f6cd2946a61d305c6c6a74336b5dcb362
This change allows us to remove /lots/ of unneeded Eq2 constraints, and
consequently a number of Eq2 instances under Darcs.Patch.Rebase.
]
[whatsnew: print via pager (unless --xml or -s is active)
Ben Franksen <ben.franksen at online.de>**20190719181322
Ignore-this: 25709b1fc6c599fdf814a96bc9a48d3f5ea169078295f9a737dcbad0f8a57cdb12c1f47ffc0b3146
]
[tests: expect conflicts warning on stderr
Ben Franksen <ben.franksen at online.de>**20190711170719
Ignore-this: bc842ad448596756f338cd3f0f608c3fc2d0d313a96f3d52ed0884f462f2937bdc3786fc701b4fd0
]
[factor two functions used for --not-in-remote into Darcs.Util.English
Ben Franksen <ben.franksen at online.de>**20190719143757
Ignore-this: d0b06424502d5706797124faed23c7cba410d4e5bc98d76371859b9d3848fd4509245ada6be2c942
]
[add --not-in-remote option to amend and rebase unsuspend
Ben Franksen <ben.franksen at online.de>**20190719091819
Ignore-this: 5d2087cef489c40c9c347f5103713ec38263c3759ba4a2412d24d301e9b73162455e6cb7b011f521
]
[refactor withSelectedPatchFromRepo
Ben Franksen <ben.franksen at online.de>**20190719081252
Ignore-this: 768bed4a27cfd0079d7e9d281c71c94515c16a93227297f39b4422061aa8c507b7876fd7789973fb
It now gets an RL of patches instead of a Repository. At the place of use in
the amend command we do the readRepo and patchSet2RL ourselves. This
prepares for adding --not-in-remote option to amend but makes sense
independently.
]
[colorize warnings
Ben Franksen <ben.franksen at online.de>**20190711162535
Ignore-this: d9d0a17896588a7132e5e18ab6702a8e122ddb8c57b7beda0f99c8de86907ed59d50810520fdbc1e
]
[add a constant for the progressRate
Ben Franksen <ben.franksen at online.de>**20190729165630
Ignore-this: 2fc3c9b9a98d600fa6d3bacbe28f1634099edaef2fa2d59f65733326943dd80a8032714406fae606
]
[demote errors in defaults file and commandline to warnings
Ben Franksen <ben.franksen at online.de>**20190705213001
Ignore-this: 4fda8b31bb458925104e60ddacade991dab423840242a377b5ed928779dd1f8fe1cc9ed536fdc4dd
When we change the UI by e.g. adding a new command line option, we want the
user to be able to use these switches in their defaults file without this
giving an error when they use an older version of darcs. So this change
improves forwards compatibility.
]
[some code cleanups for unsuspendCmd
Ben Franksen <ben.franksen at online.de>**20190713092534
Ignore-this: 3c48c309d9d772434ba1b8a4533c6da0b62460b1f1dee1483c3c182539dedee919510a435621f61a
This factors out the check that there are no unrecorded changes into a local
procedure that returns a Repository with new witnesses if successful, or
else dies. We also pass the command name to 'unsuspendCmd' to improve the
error message for the reify command and remove a number of pattern type
signatures that are no longer needed.
]
[rename data constructors of FileNameFormat
Ben Franksen <ben.franksen at online.de>**20190728193806
Ignore-this: 904eb9f11c33c767e4df8129bded6f5bbfc1ca48eaadaf400704ddd989f28f428003ef79b7ba72c8
]
[simplify D.P.V1.Prim and D.P.V2.Prim
Ben Franksen <ben.franksen at online.de>**20190728192427
Ignore-this: ba8091a3d97f27567fb026613c549ef6327821e77cdcbe5bd4603daee22dbd2ce86a586888031637
GeneralizedNewtypeDeriving can nowadays derive more instances: Apply,
CommuteNoConflicts, and Show. Also remove unused extension
StandaloneDeriving, simplify instance ReadPatch for V1 (similar to the one
for V2), and uniformly rename FileNameFormat parameter to 'fmt'.
]
[cleanup layout of doActualRecord
Ben Franksen <ben.franksen at online.de>**20190720122530
Ignore-this: 67e8dbdd230ce3163bb9b12bd7c32e8862040fa7756544c08fa4f846e394dbea8b8c4dfcbc723f8d
]
[amend: make options local to definition of DarcsCommand
Ben Franksen <ben.franksen at online.de>**20190719074834
Ignore-this: db814c14334e041dde74e096302b71299afb18badeaa4a72073b130bed1252a75c097a7a8f4ab165
This saves lots of rather verbose type signatures. We did this a while ago
for most of the other commands.
]
[cleanup in an import of D.P.TouchesFiles
Ben Franksen <ben.franksen at online.de>**20190718191805
Ignore-this: 42dcc6a041537775daf8769cf5969ca3b009f4e5efb84b177237051813447f4c01c7e0d0e572d41
]
[harness: add explanation to an XXX comment
Ben Franksen <ben.franksen at online.de>**20190717153608
Ignore-this: b0992a0938920157b4b19044105caa6045be2618a59366031b1414a99e0ba232b2f15edc5210e282
]
[replace Darcs.Patch.Witnesses.Sealed.Stepped with Data.Functor.Compose
Ben Franksen <ben.franksen at online.de>**20190717124405
Ignore-this: 9bde1f9547a5f07d9589cd90ce6e0e385369013d8d010aa5ade31ef3cc7a857a52b596b617b3de4b
]
[add 2 TODO items with V3INTEGRATION tag to Darcs.Util.Graph
Ben Franksen <ben.franksen at online.de>**20190716172454
Ignore-this: 42a7aa4a7aa59224b09211911858c52ebbf9ff7035c39156d2e19367f3880519763b9663c8399fcc
]
[clean up imports in two modules
Ben Franksen <ben.franksen at online.de>**20190714114534
Ignore-this: c6baa1d94e49f44c563741c974ccdc42e98148c7641ee3c3c4cd4c7f4db10ffa3983acb9c19a03fc
]
[tentativelyMergePatches: rename anonpend to anonpw for consistency
Ben Franksen <ben.franksen at online.de>**20190709163254
Ignore-this: 68a6ae05e425462e10357a416d70cede7832847c2466c707a1d1e90bebc669878defbfd3df37a02a
]
[rollback 'do white space en/decoding directly on the ByteStrings'
Ben Franksen <ben.franksen at online.de>**20190728134833
Ignore-this: 33dd1432e564fb45295c5a67faf5f743b76566df8925154bfcb0d108586a3cefed28809491a600de
This change was incompatible with the existing whitespace encoding for file
paths in that the latter encodes /all/ unicode characters that
Data.Char.isSpace identifies as space, not only those that are ASCII
whitespace.
]
[document Darcs.Util.Hash.sha1Read and explain why it is low-level optimized
Ben Franksen <ben.franksen at online.de>**20190728081024
Ignore-this: 2d62e08b4e0babd7c1394f9cf71df5ad479d73c1c9eafe5891e61c665ec6cc4d29231ea7e00037fe
]
[introduce type synonyms Mangled and Unravelled
Ben Franksen <ben.franksen at online.de>**20190712201605
Ignore-this: 56a50f819d1dbfb2143d6ddc490cebd98e93ad8f9e655c77e61e6d6dfbc0a3575a3fb1ef1ecda75a
]
[change the return type of mangleUnravelled
Ben Franksen <ben.franksen at online.de>**20190712194311
Ignore-this: 7c8143c71ca601b1e32ccce142fd40fabf99e268c3fd8063212ff1b63a60bf1bdff7a426fd698698
This makes it clear that mangleUnravelled is unable to deal with conflicts
involving anything other than hunks. Previously we returned the unmodified
head of the input list if that was the case, now we return Nothing.
]
[add an explicit type for the output of resolveConflicts
Ben Franksen <ben.franksen at online.de>**20190712194303
Ignore-this: b595de1e35192407f2a162f8a3e525fb19bc9bf15527bbcd999589260929c0729d54e05762014db3
This makes it clear that the output contains first the
'mangled' view followed by all the conflicting parts.
Currently the mangled view is the conflict markers if
the conflict is all hunks, and one of the conflicting
parts if not.
]
[cleanup and refactor mangleUnravelled
Ben Franksen <ben.franksen at online.de>**20190712182656
Ignore-this: 58ee0b078c09f1f163de3626ef806869e03ec528ddd54c5e361dde62ac88c6e981d04eb6b67d4e53
]
[move instance PrimMangleUnravelled for Prim.V1 to its own module
Ben Franksen <ben.franksen at online.de>**20190712172529
Ignore-this: 47695726193eddf3990a3f3ff1e48c57c8ced7fc355928c84a39ad9c2bc0a1c82ba9a22165014b00
This is a pure code move without any changes to the definitions. It serves
as preparation for a larger refactor but makes sense in its own right.
]
[harness: remove code I commented out but kept as a reminder
Ben Franksen <ben.franksen at online.de>**20190716201607
Ignore-this: ba91a071e73ada1aed2d1239fd7917d1c5d587d4806a3f2f2421427cf3254b7d7f64385773a556b7
The test in question has meanwhile been added as a generic property.
]
[harness: test prop_ctxEq
Ben Franksen <ben.franksen at online.de>**20190716200452
Ignore-this: 5748801a2bf402fd13c56c729685681410c9c09169633d3314ee257e6bf0aceaeb2b4d31ab17ff5d
]
[fix v3 repo property prop_conflictsCommutePastConflictor
Ben Franksen <ben.franksen at online.de>**20190716153400
Ignore-this: af00b2159f3c691dbd903e510ae1240fe6e6be6bf4f4d5773dd8260e97b0142f352ad0b822e938e
The property as stated before didn't take conflict resolutions into account,
that is, parts of a conflict could be resolved by recording a patch that
depends on that part. In this case we can only commute the conflicted part
past the conflictor if we drag the resolution with us.
]
[harness: optimize prop_betweenLinesPS
Ben Franksen <ben.franksen at online.de>**20190708160851
Ignore-this: 46dcc5694c0674f1a0bc6f36400ca2525dce9550dec9b5d916c868c6621e6f08f0150284d02c80a8
]
[add two properties about conflict resolution and test them
Ben Franksen <ben.franksen at online.de>**20190710174341
Ignore-this: 3420413c7b20f8cee14c3c68b96b18f1638a20dd7136898191f8768cef03f5f9bfbf4dd525ea5494
This required adding a utility function permutationsRL and factoring out
mergeList from D.R.Resolution into D.P.CommuteNoConflicts.
]
[v3: add an important conflictor property
Ben Franksen <ben.franksen at online.de>**20190624101201
Ignore-this: 1a3903fa83494eca84415faba474a6669aeaba0bf3a2e5d82079b01b4eed811a96e19372ca388f2b
]
[remove env var DARCS_DO_COLOR_LINES
Ben Franksen <ben.franksen at online.de>**20190619203813
Ignore-this: 8c9275d2d0914cbbf01d22f4a6d2eafc84821450a0fd2ac9ed868af717f44262987123e53addc0a9
If the user wants colored output we should go all the way and not require
them to set yet another configuration variable to achieve that. On the other
hand, if they can't see colors or don't have actual colors in their terminal
and thus set DARCS_ALTERNATIVE_COLOR then we should not color hunk lines
since we have no alternative rendering for them.
]
[turn fancyPrinters into an IO action
Ben Franksen <ben.franksen at online.de>**20190619200647
Ignore-this: e7e31c16555e928c1408ffafd8c6ad8f5144efc3e7cc58d70ebf67307ade945e41b900ac4535e116
This is what it actually is, via getPolicy. The unsafePerformIO was
perfunctory, since fancyPrinters (almost) always gets passed to a real IO
action that does the actual printing. The only exceptions are when we use it
for tracing and in the harness when converting our TestResult to HUnit or
QuickCheck. Consequently showDoc has been renamed unsafeRenderStringColored
(to discourage its use) and a function debugDoc added.
]
[resolve issue2610: add --inherit-default option
Ben Franksen <ben.franksen at online.de>**20190617131525
Ignore-this: c5dbfeb384a794d113fa1394e0b71e0c22a1d5460b9cd96ab125b6de350dfe2a36f7885478bf3a33
]
[overhaul documentation in Darcs.Repository.Merge
Ben Franksen <ben.franksen at online.de>**20190715232339
Ignore-this: 7b005a975b7c33b12c4b7896023c686edf450b0351e025aaef259f451331f338ad7b0f21c55fb737
It was slightly out of date after the latest changes to the conflict
resolution API, which means we now take a complete Fork of both repos as
argument and pass the common part on to standardResolution. It also did not
reflect that a while ago we changed the witnesses to make it clear that we
expect to be in an unmodified repo, that is, we start with the tentative
state equal to the recorded state.
]
[use neighbors in Darcs.Patch.V3.Core.alternatives
Ben Franksen <ben.franksen at online.de>**20190715154500
Ignore-this: d7c586c9cf366fd86437e18c93d124b23cff1de6ce8d1d3994f6355921767acbf2678cd5e8d25124
]
[refactor the interface for creating Named patches from prims
Ben Franksen <ben.franksen at online.de>**20190714091935
Ignore-this: bb7f0bd1f451d6f0a01cab219dabc57dc5ac0eb3258a2828a5eae49b750b15aa591526ffcc26de30
This uncouples the type family PatchId from class Ident, so we can use it
for patch types that have no instance Ident. This allows us to change the
type of method fromPrim to receive a 'PatchId p' instead of the raw
ingredients of a PrimPatchId. We add method fromPrims so we can delegate
generating prim patch ids to the implementation of the RepoPatch type. The
default method definitions for fromPrim and fromPrims ignore their input, so
we don't even have to create dummy type instances for PatchId.
We add the function positivePrimPatchIds to the interface of NamedPrim to
support implementation of fromPrims for RepoPatchV3. This hides the serial
numbers from client code which are now an implementation detail of
NamedPrim. The function takes a PatchInfo as input, so the fact that we use
the hash of the PatchInfo underneath is now also an implementation detail. A
single exception is made with unsafePrimPatchId which we need (only) in the
harness to define an instance Arbitrary.
]
[add LambdaCase to default-extensions for the library
Ben Franksen <ben.franksen at online.de>**20190618212502
Ignore-this: b638d8398bfdf7b59154f1bd069d983fe7f5c48d1c8d3b308db3839487138efcaa869fcc29bab512
I like to use this simple but useful syntactic extension which exists since
ghc-7.6.1.
]
[v3: fix and restructure conflict resolution
Ben Franksen <ben.franksen at online.de>**20190710211725
Ignore-this: 648fc16081d495f7067b6e2a3b7d42f905bb29a7053ee952447bb1e3023e1034a6fc651c00330f79
It probably doesn't make much sense to view the diffs here, since I really
restructured things a lot, re-wrote the documentation comments, and renamed
and reordered functions.
The main semantic changes are:
- fixed the 'components' function which was buggy
- fixed and cleaned up the history traversal to find vertices
- throw out the no longer needed 'dropDominated'
- calculate conflicts between vertices freshly
The last point was crucial. In my original version I made the mistake to
think that we can read off conflicts between vertices, i.e. contexted prims,
directly from the conflictor. This is only so in the simplest case of two
conflicting prims. In general it is false: the contexted patch represented
by a conflictor need not directly conflict with all of the conflicts stored
in the conflictor. This cannot be so, since e.g. a prim can conflict with a
conflictor simply because it conflicts with one of the conflicts stored in
the conflictor. The side-conditions in the commuteNoConflict cases make that
pretty clear.
]
[move v3 helper functions idsFL and idsRL to harness
Ben Franksen <ben.franksen at online.de>**20190710171914
Ignore-this: adb91e53426a7602e0422b360e678a5ca64279ed7125bde9275c247ad1a7a4e0334f50bf0cb10a42
]
[v3: remove debug stuff and other minor cleanups
Ben Franksen <ben.franksen at online.de>**20190710211129
Ignore-this: a8cf0462f87cb0ec43d7a1766554e810d618f6a347784c650a923906d26de3b93f3fa66c9ff4e85a
]
[fix the function used internally in v3 to merge FLs
Ben Franksen <ben.franksen at online.de>**20190710182302
Ignore-this: a961e389d32076bb743fac0c9679e36245ba2320786178eceb40540fef3680583c3fbbe2b1316457
It is used to merge non-conflicting FLs into a single alternative for
conflict resolution. The bug was that we forgot to call findCommonFL and
thus mergeNoConflicts could fail.
]
[colorize --dry-run output
Ben Franksen <ben.franksen at online.de>**20190213092118
Ignore-this: c803c8f391c358b87c9aeff2760a5f991ebe0adc326ea5477942c56a38efa619f293c4211f8ffa01
]
[make PrimPatchId opaque and check invariant when constructing it
Ben Franksen <ben.franksen at online.de>**20190708161010
Ignore-this: c4fe732deebf074a10265e3d85736bc736fe44e158615bc459d81f08614a5c7709e7372e529bbd72
]
[document and add property for PrimPatchId invariant
Ben Franksen <ben.franksen at online.de>**20190615092033
Ignore-this: 6e00fdb919775f7ddaec3d98bd0c30a2db2419a5348dbc468a00f28c648c79026e549d63c464eef5
]
[harness: limit number of flattenings in propConsistentTreeFlattenings
Ben Franksen <ben.franksen at online.de>**20190704202253
Ignore-this: fe0f3f3dbf999947c131e733ccc18a2c1324f25bd708eeabb6bdb281bf0d11e527cc9d7bc3a07e56
The number of flattenings grows exponentially in the worst case, so this
helps to keep the test reasonably efficient even if we crank up the number
of QC tests.
]
[improved test case generator for RepoPatches
Ben Franksen <ben.franksen at online.de>**20190624063022
Ignore-this: f238d840b780add48ccd6fb6e7e02221dbf48096ea8e92885ce3dc9bebfd53b7b0bfd8e0dbec673e
We previously generated RepoPatches by merging prims from a Tree. While this
generates conflictors, it never generates sequences where a patch depends on
a conflictor. The new generator (which can only be used for patch types that
have a Merge instance i.e. not prims) directly generates an RL of patches,
making sure we cover all possible cases.
]
[harness: never generate empty hunks
Ben Franksen <ben.franksen at online.de>**20190707080008
Ignore-this: f7b911d55e69510decdc4384df0cf9396a20f7de9fa1c1c5f09eeb8a009341854a7bf013afe560ac
]
[harness: remove code we no longer need
Ben Franksen <ben.franksen at online.de>**20190707080051
Ignore-this: 85e284904df4033b106b6403aebe83529bc81b120379594781218d5df0167fbb0bc8c22929817c2
]
[harness: treat empty hunks specially in checkPatch
Ben Franksen <ben.franksen at online.de>**20190707064300
Ignore-this: 200de53fa34c3e6c725a6462e46dfe946c08274e59e741fdff573bb4b8f7ee44ffdb7c21a434885a
See the comment in the code. I wonder why this hasn't come up earlier.
]
[harness: make encoding roundtrip test faster
Ben Franksen <ben.franksen at online.de>**20190628084309
Ignore-this: c27b51cfbb0e84243ad3c6f9f914a856d9190008c5a6963c55c96494cb09b5e75afea8b7f4ee0aa1
]
[harness: minor cleanups in D.T.P.A.Generic
Ben Franksen <ben.franksen at online.de>**20190707081544
Ignore-this: c380a78fdd5013ac229cb76e4a1a039f0995f7a196e5e99532065ad5a9ce73e5df6be2d738114003
]
[harness: make sure once and for all that generated Trees have enough patches
Ben Franksen <ben.franksen at online.de>**20190707081626
Ignore-this: f74b5c224e055fc6289096ae2b1e44ce422b50024f6c63adf005988be856431befc67cef3707b1f1
]
[harness: remove a dirty hack from patch tree generators
Ben Franksen <ben.franksen at online.de>**20190621134136
Ignore-this: 61e9017bd189f4936c59ab8442f7eb827893b1351d9ff5a3e8ac3877ae012d02e3a83383e1b65da1
This re-adds a slightly modified version of sizeTree which we use to
calculate the number of pairs in a flattened Tree.
]
[harness: move nontrivialX conditions to D.T.P.A.Generic and remove dead code
Ben Franksen <ben.franksen at online.de>**20190621194726
Ignore-this: 425ad9283a3e67720a165a6e6255359dce6daabb54a460ff3f2f033493ac1776e7bdc7a4e10f5987
]
[harness: minor cleanup in D.T.Patch
Ben Franksen <ben.franksen at online.de>**20190707062607
Ignore-this: 52f55f7eb704b6b3e19f6bcea8408fbd796eb9aef2ffd609e3e3855ff13ebd50a9e2d30482b0486c
]
[harness: better failure report for mergeEitherWayValid
Ben Franksen <ben.franksen at online.de>**20190707063753
Ignore-this: 883bce1d1dc17420ec56e91a8af003fdc7076914dcd2d613edca5d136dcac5e3ab7bb736f024edde
]
[harness: remove unused sizeTree
Ben Franksen <ben.franksen at online.de>**20190707114205
Ignore-this: e43847945cec7c3fad49895260208dcabdc5babf1fffc3ce3d289ea377086b6bb0c64e48a9786f84
]
[harness: remove some out-commented code from D.T.P.A.Generic
Ben Franksen <ben.franksen at online.de>**20190621133552
Ignore-this: 4ef0c24e4142c4eb0fa4b83487e592bce0b81f75a6f30351048e83e4c4e0f4bd5b4b71a6c32b0dd3
]
[make PatchInfoAnd abstract
Ben Franksen <ben.franksen at online.de>**20190630180802
Ignore-this: cc2cdb8b91b636c3c52c08a90381138e3b319c95ad0d4db04586162f4142e395af3ef32518441b5f
]
[harness: comment about redundancy of mergeEitherWay
Ben Franksen <ben.franksen at online.de>**20190707064025
Ignore-this: 49df17c948858bafc47d97888c22f622622c603ba7cbedd55d2baf879c295b6929e35bcf9df8d165
]
[tests: minor fix and simplification in hidden_conflict2.sh
Ben Franksen <ben.franksen at online.de>**20190705163259
Ignore-this: 7da879833b56bf53e2e9437cfbd81b3ccc64c6e99168fd6ef64befe30180199904e37a3db241e9a4
]
[fix in test script for issue2603
Ben Franksen <ben.franksen at online.de>**20190702104601
Ignore-this: 48657a0e088c7938d1e07986bdec6d2cd8a876ea501f7aeb5590b15daeaf76a9d8f23e00db8ea7d3
]
[harness: remove two unneeded expression type signatures
Ben Franksen <ben.franksen at online.de>**20190630192439
Ignore-this: a561be21e2ed8645bd12ef31ac58276ec2b55a07e9e714d6440a9a0f434264c6287af3b98339273e
]
[simplify instances Eq2 for RebaseName and RebaseFixup
Ben Franksen <ben.franksen at online.de>**20190630181837
Ignore-this: 1274aa4ac8e5aca8feaa0892cc35ea39aa68c88faa9fecdd7e8bd431124561a4ddcbe11c863764d6
]
[remove unneeded Eq2 instances from Darcs.Patch.Choices
Ben Franksen <ben.franksen at online.de>**20190630085801
Ignore-this: 43cfb9339300c8d157ed0e3ff9a896adc1bff88ef6a0d44b7869f0053e140877beb50e64ded04083
]
[remove unused eqFLRev
Ben Franksen <ben.franksen at online.de>**20190628090000
Ignore-this: ad6ca2f50567d5422ca0eddf1b7826c49f4f22b4c1c6e5af7cb3d16474d37ed050e93e7cb58d0a30
]
[eliminate instance Merge for LabelledPatch and PatchChoice
Ben Franksen <ben.franksen at online.de>**20190628082338
Ignore-this: 8dc6ea5d9723dbc0aead4571677ca78105ba52ab770950805ec4a4012cbb377043b38f7df8d2963f
]
[break an overlong line in D.R.Merge
Ben Franksen <ben.franksen at online.de>**20190628082123
Ignore-this: b5bfabc35e7b2a0ebaf982323c74dc181fd515c8b544f1a6bc473fa04a7f690d80c0beaf6a72b748
]
[cleanup imports in D.P.Prim.Class
Ben Franksen <ben.franksen at online.de>**20190628063924
Ignore-this: 7a7a83d45e9d4534fc57b18dbc17445bea21e9b88a2622995853863382ab12253d1c928a58ce7bd3
]
[remove redundant cases for fastRemoveFL/RL
Ben Franksen <ben.franksen at online.de>**20190627145207
Ignore-this: 947912cd5f0a8a0edfac3e722bedf0b757b213efb47d7f2058691ff7c61aad861f18674a763a1446
]
[rename a parameter of promptChar
Ben Franksen <ben.franksen at online.de>**20190128123700
Ignore-this: 1d3aa2e8ae490ae54835a05996d97f5560cc4f65dfa73989af5361ab32bb951726f0aa240bc8137e
]
[v3: minor cleanups
Ben Franksen <ben.franksen at online.de>**20190624065855
Ignore-this: fa72c3392c78c066a40980034f1ee70aa45b3889221cfe0679fbf5dbe961a3552dbb8c498a7fe97f
]
[harness: add some haddocks in D.T.P.A.Generic
Ben Franksen <ben.franksen at online.de>**20190621133803
Ignore-this: 952a56cf1c647d482af74e3a1749678de3275288d28709ce97d070e92e6573175b8dba8bf5e053f3
]
[harness: remove unused propFail
Ben Franksen <ben.franksen at online.de>**20190621133040
Ignore-this: 5a1497663b926b6f1c7b3a2881e480417b4c52d6a5a81f08438619d9d5510b2a919200c9320c0762
While a comment said this is "handy for debugging arbitrary code" I could
not find an any further explanation or an example. I guess it can be
re-added easily if needed.
]
[harness: adapt test names for square commute law
Ben Franksen <ben.franksen at online.de>**20190620171026
Ignore-this: 171b360f1fb6838892547573b1e64d4450f961f5d42b896d1c28a2116e76c8edbb8de28e0892391a
]
[fix typo in a comment
Ben Franksen <ben.franksen at online.de>**20190618144234
Ignore-this: 23f10cd1589fe218c6af93e2d732b7e2d4bd65de373fd7a2a34f66ea656347d1db0f7ac2a4bfb758
]
[fix a bug in darcs1->darcs-2 conversion
Ben Franksen <ben.franksen at online.de>**20190226222910
Ignore-this: f65ad0aced1aa6d473b8d59ebc5605daf931c569537214090f541186a967f8bf6b201a89139429b6
The test data for threewayanddep threewayandmultideps were quite obviously
wrong! The darcs-2 Conflictors are complete bogus, referring to patches that
don't appear in the repo. This is caused by erroneous calls to
sortCoalesceFL in the RepoPatchV1 implementation in unravel and in effect.
The way these functions are normally used (effect when we apply a patch and
unravel to generate conflict markup) is quite tolerant wrt coalescing.
However, unravel is also used to convert darcs-1 Mergers to darcs-2
Conflictors, and here the result is catastrophic. Instead of sortCoalesceFL
we must merely cancel inverses, just like we do in the darcs-2 and darcs-3
theory when we construct contexted patches (aka Nons).
]
[bugfix in V3.commuteNoConflicts
Ben Franksen <ben.franksen at online.de>**20190624080920
Ignore-this: 21a716babf7079376f4f3c00a9c694b5aeb308994efc51f2d3b455c36acddfb15dc9effc807fa360
I made a logical error when I derived the mixed Rotcilfnoc/Conflictor case
for commuteNoConflicts from the Conflictor/Conflictor case. This could lead
to the creation of invalid Conflictors during an unconflicted merge of two
Conflictors. Specifically, we could create Conflictors that undo prims that
are already undone by a previous Conflictor.
The only reason we need this case at all is because mergeNoConflicts
triggers it when applied to a pair of Conflictors. This means that the
mirror case Conflictor/Rotcilfnoc is not needed, since we currently have no
need for an inverse operation to mergeNoConflicts. So this case is now
replaced with an error call.
]
[bring help text for 'darcs repair' up to date
Ben Franksen <ben.franksen at online.de>**20190618122635
Ignore-this: 837460638083e4097ec8d1d5995ed8f0b846e1b648340d0ab92bf3bddf7b2b2e39f5eab892c9bfc2
]
[remove defunct --set-default option for rebase pull
Ben Franksen <ben.franksen at online.de>**20190617115729
Ignore-this: 74a836e0e655e3ee350824bb068c4799cb2986e5a6bd2f94e3dd48f25c77aa3717aa47263a34ed9b
The option was never honored by this command.
]
[streamline the final "Finished ..." messages
Ben Franksen <ben.franksen at online.de>**20190617074953
Ignore-this: 9de1e70cde9443e5ddcfe3c2c849c09f6242cb8c88c6ec6b89c5ba1fb63ad603144655be83b1c5ce
]
[remove the (now) unused function 'revertable'
Ben Franksen <ben.franksen at online.de>**20190617065004
Ignore-this: b318a393e25bcfe7fee081c93dff7a680b81d74254ba985f9a90c4c082c006bfb9166802e39e2e28
]
[resolve issue2626: treat applyToWorking more uniformly
Ben Franksen <ben.franksen at online.de>**20190617063258
Ignore-this: a4a3d604838c74302395a77c6e08a66a0d0383d78fac44db36af32be72deb5129ef026cece930b47
This factors catching IO errors into applyToWorking with a generic error
message that should fit all use cases. In case of the 'convert darcs-2'
command, the extra clarification that suggests to use --no-workingdir has
been removed as I find it misleading and cannot see how that could actually
help: we have created the whole working tree ourselves, so if applying the
patches fails something really weird (like another process interfering with
the working tree) must be going on.
It also adds a number of withSignalsBlocked to wrap the calls to
applyToWorking where they were missing. Where possible, the scope of actions
under withSignalsBlocked is extended to include finalization and/or updating
the pending patch. This has previously been the case for some commands but
not all of them.
]
[resolve issue2625: catch only IO exceptions from applyToWorking
Ben Franksen <ben.franksen at online.de>**20190616112414
Ignore-this: 4257807bb86e85058a430f2bb7de25efd96e76dbcb110a8a686e0e85df7d97f1ab1878e76119400
]
[issue2609 is not a bug but expected behavior
Ben Franksen <ben.franksen at online.de>**20190616101632
Ignore-this: c99710e9d63a68a945e2b4983c62404196a1e7fde8903f13d4bed99d3dec1c1f93999f080f5a3a45
]
[test move command properly handles invalid path arguments
Ben Franksen <ben.franksen at online.de>**20190615145035
Ignore-this: 9dcea32972d437d18752028377e22c6832f71d41d5527a9060041c82ad1929507915581e538a7b68
]
[accept issue2609: conflicts in unrevert bundle
Ben Franksen <ben.franksen at online.de>**20181115141807
Ignore-this: bbddf63eeaecd87f4cd3f8e8e064af216f7ab12f117de709a880e802f87ad6f5f827e2cd80b8aa9c
]
[use explicit imports in Darcs.Util.Tree.Hashed
Ben Franksen <ben.franksen at online.de>**20181116161054
Ignore-this: b699eccecc3143d89ef95164854813d1ef21d4b067d9f375e17687baeb857d3b7c0855113a510144
]
[rename module Darcs.Patch.Parse to Darcs.Util.Parser
Ben Franksen <ben.franksen at online.de>**20190217202539
Ignore-this: 2cd7b62ee5cf6015e9f648cc1ddcf120dd7a9f06b7a6934fa28b7c81f7447f54c6a1b34797a5115
There is nothing specific to patches in this module, in fact we use it for
inventories as well.
]
[issue1401 and issue2605 no longer fail, at least for darcs-3
Ben Franksen <ben.franksen at online.de>**20190612171918
Ignore-this: 8c2a701100bee4d212717dd835cfe4faca118d0d1b0cdf9778a68862813cc5a64b4e42b64b6848e3
They are both instances of the same underlying problem in darcs-1 and
darcs-2 patches, namely that they cannot distinguish between duplicate prim
patches. The darcs-3 format allows that and thus does not fail these tests.
]
[issue2257 fails only for darcs-2 repos and that will never be fixed
Ben Franksen <ben.franksen at online.de>**20190612165459
Ignore-this: 2d79246dc5334b40f561ceefcf5aa46b7ef9a1e13273fe2ff50559b895743a00cb41e2ce95d4e17f
]
[Make my previous comment about revert make sense
Ganesh Sittampalam <ganesh at earth.li>**20190615080156
Ignore-this: 2eae367745cc203d57d46af6ebad3578
Also added a bit more detailed explanation.
]
[add a comment explaining the commuting during revert
Ganesh Sittampalam <ganesh at earth.li>**20190614122900
Ignore-this: e10f994c016df3ea002e24e30368e992
I also renamed the variables to make things clearer
]
[add comment to explain use of withDelayedDir
Ben Franksen <ben.franksen at online.de>**20190614115801
Ignore-this: 7404a37c577cefc4f52fa21f60fa806e80d9d69f4f19b3cae11628d788a87d51c11c20a6b856a5cc
]
[remove unused functions readIntPS and breakSpace
Ben Franksen <ben.franksen at online.de>**20190614113005
Ignore-this: 357e6d6a3fc0c15573aefd69c9ad74752de2d02536a27b30109f3677e9b63eae1d40c75d3539474b
]
[fix warning in Darcs.Patch.Merge
Ganesh Sittampalam <ganesh at earth.li>**20190613183959
Ignore-this: 6944e5e80cf628bc45f690cba84afd0c
]
[do white space en/decoding directly on the ByteStrings
Ben Franksen <ben.franksen at online.de>**20190217205001
Ignore-this: 368d7324b584205dd1501e0c0ae9cb471ccbb5291e063e750fcc4891c17c4b55b08e5096400e1265
]
[harness: more detailed fail output for some properties
Ben Franksen <ben.franksen at online.de>**20190226093418
Ignore-this: 11a41e9f3c7e5d599ade6794d32422f1995a330891726e740340fd5ccca993a91eafe3b3e7ec3100
]
[move v3 repo properties to harness
Ben Franksen <ben.franksen at online.de>**20190225091504
Ignore-this: 8bde91c045669b4d785d9a658b9b52b898c130ae5106e7358d067f685323a3c19d84a228b81730ac
This is so we can use Darcs.Test.Util.TestResult and give better output when
testing the property fails.
]
[fix error message in function transferProblem
Ben Franksen <ben.franksen at online.de>**20190302223455
Ignore-this: 339072d8d5f317ea130a760ea7ab7a10837a55e5a519f32c2c8b69384c72d5974d6d48f7969dc747
]
[remove unused method isConflicted from class Conflict
Ben Franksen <ben.franksen at online.de>**20190301185825
Ignore-this: b9b542bbe788194b8c6fdcfb3d7c70edebf34b76227b314df1f3d1fa6bbbff962575bbdf5835fb21
Besides, we already have it as (isNothing . toPrim).
]
[remove the obsolete PatchInspect superclass of Conflict
Ben Franksen <ben.franksen at online.de>**20190227230137
Ignore-this: 735d0cdf081ee726b4799d2fc16f4011fdbc899b0c63f6a8b716ff43e1228c421d393a99e3b4cc3
]
[harness: minor code cleanups
Ben Franksen <ben.franksen at online.de>**20190226091301
Ignore-this: 900b2daf071d1e0717cf955c39bc86581986ad3b8a7d2c941e642eb5d6dd0c6d33744d28e6051cdb
]
[simplify type signatures in D.T.P.Properties.Generic
Ben Franksen <ben.franksen at online.de>**20190225142921
Ignore-this: 4327a0318b7b68c7e41231ac226fc035fa08c67350dc47b18196a4c05a28864fff7dc101b3760b7a
]
[harness: remove qc_V2P1 and qc_V3P1
Ben Franksen <ben.franksen at online.de>**20190225101544
Ignore-this: 4c6e5161e8255083ce81f9be1596d42c04630df8058f0ade412f44327cf8d94ec11610b3e67a3035
The properties listed therein do not in any way depend on the prim patch
being V1. So I generalized the signatures and moved the tests to qc_V2 and
qc_V3, respectively.
]
[clean up the foldXX mess in D.P.W.Ordered
Ben Franksen <ben.franksen at online.de>**20190223130000
Ignore-this: abfd886d46c7eff3d33895e8203b65c22441ce1ead431c0a16cf584e2709828a59dab4a449d34f5a
We now export only the natural folds i.e. the versions that allow lazy
consumption of the result i.e. the one where the list constructor is
replaced with the argument function.
]
[declare instances of IdEq2 for Named, NamedPrim, and PatchInfoAnd
Ben Franksen <ben.franksen at online.de>**20190224080814
Ignore-this: 89d31c807008dd022dbadff8c514b7d7971cff6658751f9383618f3a8ffdcf2c4621d4b505b7d06
]
[optimize ctxAdd* by using the better fold
Ben Franksen <ben.franksen at online.de>**20190223110428
Ignore-this: 71bdde85775dac7f6abfb6c074cedac983e3d5189cb519a2ba9a7a2e6846adc06cad3f1107bbd14
]
[remove unused function namedEffect
Ben Franksen <ben.franksen at online.de>**20190223100610
Ignore-this: e7e7e7ddf1ff0a586f56e8eda853022a5c146f9aff1c88effed9d45cb304667ce7dca6735f1f6b03
]
[fold partialCommuteInverses into property commuteInverses
Ben Franksen <ben.franksen at online.de>**20190223095355
Ignore-this: 8c999f0c2d0a2167a5e6d89cbfc08b635ea8c38eb463e1889643eea147bad6aa4dfa5f6284bcef09
]
[fold partialPermutivity into permutivity property
Ben Franksen <ben.franksen at online.de>**20190223094647
Ignore-this: 567469e46368f0da6e89adaad2f3e33cab5f012b2827b4e9b56e3c402bbabccec1e24cecd056d84f
]
[add a comment to commutePast
Ben Franksen <ben.franksen at online.de>**20190222140239
Ignore-this: 119d839f696e97013d7729860fc6ee991a791326331bd7034638c461368e8b52349dc9a563d03141
]
[break overlong lines in Darcs.Patch.Ident
Ben Franksen <ben.franksen at online.de>**20190222140140
Ignore-this: e1454dfb406d4c62cc422926ca06bfade135b0de4280cbc5e0d5cef228ddcdae0535b5d2b12e3884
]
[optimize ctxNoConflicts
Ben Franksen <ben.franksen at online.de>**20190222140025
Ignore-this: cc8be51d716bea96df1d2300a0987391358c23f6ef75b0e8e72d5b24a46bceea6bae1988f9f63ce8
]
[restore alphabetical order of modules in darcs.cabal
Ben Franksen <ben.franksen at online.de>**20190217203200
Ignore-this: d78f8a6987d572564fa6020514a7e7becdea777d289bc7eb6da90f1d9b5e532a5165895019d041fa
]
[clean up import and export lists in Darcs.Patch.Read
Ben Franksen <ben.franksen at online.de>**20190217162757
Ignore-this: ce5e9802c05ab65bb39c9f67fd5ade014d976a28780eb75d3647881b65ce433e086b1651631501f8
]
[replace parseStrictly with parse everywhere
Ben Franksen <ben.franksen at online.de>**20190217162019
Ignore-this: f0890bc3b9ae2a4bec9f5725361fcd3dcb8fa3b842eed80db97798137c886ddac28e76dabd2b9fda
This is not a simple rename but changes the output type from Maybe to Either
String throughout.
]
[take advantage of attoparsec error message for patches and inventories
Ben Franksen <ben.franksen at online.de>**20190217112258
Ignore-this: ae180e79859662624d99aee431f9378556a677c77b26f39574b17aaa5b21ef8c3db4fff4618ef9ef
This changes the return type of readPatch and parseInventory from Maybe to
Either String. Attoparsec's error messages are weak but that's still better
than none at all.
]
[replace our own patch parser with attoparsec
Ben Franksen <ben.franksen at online.de>**20190217111256
Ignore-this: c64d383cab9f491eefed0fd899779aeee209a196fb8081454332f595b4d02cc1b0d0539eba3ec02f
We already depend on attoparsec for convert import and its functionality and
implementation is quite similar to our self-written parser monad. I have
checked that this does not impact performance negatively.
]
[optimize parsing of PrimPatchId
Ben Franksen <ben.franksen at online.de>**20190216113744
Ignore-this: 2cbf157b49fcca77248c240cdca76a9bf65bc7c7210299b5625e492a1b250ede01bb488f2f0fd41c
Profiling showed that a lot of time was spent inside b16Dec when reading v3
patches. We now read the SHA1 directly off the ByteString which is much
faster than going via b16Dec and binary decoding. Also fail properly in the
parse monad if the hash is malformed rather than calling error.
]
[add more detailed comments for some cases of findConflicts
Ben Franksen <ben.franksen at online.de>**20190215161223
Ignore-this: f4e9e6b12267be5026752bdeb437b8986df3e2a0cc505e8abb32277a0bb3d3520a22a3b635d97d22
]
[fix prop_conflictsCommutePastConflictor
Ben Franksen <ben.franksen at online.de>**20190215155817
Ignore-this: 66c198d17461ac90450d37a4b47cf912ee5a52f16277aa5b86a76cd62bc90a9fac759b55fb203a68
The property was almost correct but not quite. Indeed, patches we conflict
with may not individually commute past the conflictor because of
dependencies between these patches. However we can always commute them to a
contiguous segment right before the conflictor, and then commute them past
the conflictor as a whole.
]
[add a number of INLINE or INLINABLE pragmas
Ben Franksen <ben.franksen at online.de>**20190215111230
Ignore-this: 36cde62676771b68e151121c1028c0dea46d6b4e4b3ab9f06a49e3f1f10c06e48b48d8d9dfb6cf50
]
[implement resolveConflicts for RepoPatchV3
Ben Franksen <ben.franksen at online.de>**20190213191419
Ignore-this: 5930378d244113a2c1ec5a25ebea540fddcfaa0991403d0f46ee0e3ce3b7b7a0818c1a26a28dad52
]
[change the type of resolveConflicts
Ben Franksen <ben.franksen at online.de>**20190213172409
Ignore-this: 77cdb5896438291f91e9a4b64f3c165beffb1b042d5ff8af49e729a20be1e80228d8cc0ed0a72288
It now gets two RLs of patches as input and produces a simple (not nested)
list of resolutions. The change in the input type(s) has been done because
otherwise a RepoPatchV3 cannot correctly implement resolveConflicts, which
requires that we know the transitive set of conflicting patches for each
conflict. But a V3 conflictor contains only the patches that directly
conflict. The separation into two input RLs is so that we can still resolve
only the conflicts inside a (trailing) segment of all patches in a repo,
which is how we call it when merging patches.
There are no longer instances of class Conflict for RLs and FLs. Instead, we
offer the stand-alone function combineConflicts and use that in the
implementation of resolveConflicts for RepoPatchV1/2.
The change in the result type is just a cleanup: instead of adding the
mangled resolutions as a first element and then taking the head (in
standardResolution) we now replace the inner list with the mangled version.
Passing the full context to resolveConflicts requires a number changes
downstream. This is not strictly needed for V1/V2 which ignore the context,
so we could pass undefined, but we need to make this change for V3 anyway.
Instead of adding yet another parameter to all functions involved, we now
pass a (Fork common us them) which cleans up type signatures (and
incidentally some of the code, too).
]
[fix rebase unsuspend for v3 with a dirty hack
Ben Franksen <ben.franksen at online.de>**20190213172058
Ignore-this: 93e1de42976f7ced44af49aed473e467826a66d1415d96fb0f080086ab19f46b6856944de15dcb5d
See comment in the code for the why and how.
]
[disable repair tests when format is darcs-3
Ben Franksen <ben.franksen at online.de>**20190213082301
Ignore-this: 65ef18b5a67da1d3b6a73474ca3682b583288408a06b91b9249e87d65e7a3736656fcc76e7574fff
Repairing currently means that we add or drop prims from a sequence, and we
cannot lift that to NamedPrims. Doing this right requires considerable
refactors to the Repair interface(s), so this is postponed for now.
]
[tests/pull.sh: expect the correct behavior for darcs-3, too
Ben Franksen <ben.franksen at online.de>**20190212173609
Ignore-this: f792f0223566be7cbfb1ed0c661483e7bd36ee0e39460cc6d8410d1baaa85630322e3d8d94d9283a
]
[fix expected output in look_for_moves test for darcs-3
Ben Franksen <ben.franksen at online.de>**20190212172132
Ignore-this: 60e8e72396c57594754f8d1851966c966dbd29ab1fc76de1d0c123f94c7c0682ea16d0e49987301b
The place where we have to adapt the test is when we test teh output of
'darcs log --machine-readable' which uses the ForStorage format option, so
we have to expect the hash line before the content.
]
[show the PrimPatchId only ForStorage, not ForDisplay
Ben Franksen <ben.franksen at online.de>**20190212171739
Ignore-this: 14e9d992008886472c8074eb51478b87ddc92a0f9166796697678a7f7800f77e3b6f33800b4e8a90
The PrimPatchId is not useful to the user and clutters up the output when
--verbose is in effect. It also allows more test scripts to pass without
having to adapt them.
]
[hack: disable showContextSeries for darcs-3 format
Ben Franksen <ben.franksen at online.de>**20190210220951
Ignore-this: 42980b90a07bf292e5a3ebaaf08af8efacc4eca1a136c254affad0eefd37ccdaa9444bcc7391dcd8
The code (in Darcs.Patch.Viewing) that implements showContextSeries messily
re-implements showing for FLs of primitive patches (hunks in particular),
circumventing the ShowPatchBasic instance. This means that it cannot take
prim patch IDs into account since these are added to prim patches as a
wrapper. This would not be a big problem for display but it is one when we
use showContextPatch to create a patch bundle because it means that hunks
are stored without the prim patch ID and thus cannot be read.
The temporary "fix" here is to disable showContextSeries by adding a new
ListFormatV3, until the context showing code is cleaned up to pass the
correct prim show function down into showContextSeries.
]
[bugfix in instance ShowContextPatch for NamedPrim
Ben Franksen <ben.franksen at online.de>**20190210204803
Ignore-this: 68a4bfee97592c22cbe1db6e2c9f55619ec5202e4b80a8a6eed7368c579a77c7234009fb49e62f6f
]
[fix cloning of darcs-3 format repos
Ben Franksen <ben.franksen at online.de>**20190210182806
Ignore-this: 60872f1cee31832cdadb4465625aee72cdf77279d9819e1dce5917c49c39bf4f27779b09e9222c4d
]
[fix a typo in a comment
Ben Franksen <ben.franksen at online.de>**20190210124332
Ignore-this: c4a5c3874a04661cd8f822c20aad24cc10c38ab457cb56682b20a4a5ef3e4e3db2a897d43f3e43fe
]
[add Darcs.Util.Graph
Ben Franksen <ben.franksen at online.de>**20190209161000
Ignore-this: 124741eb525d8358ac597505bafa83045427a876de6edf9aa1b13f1d02499265e15fe3ac614d7966
This contains an efficient algorithm to determine maximal independent sets
of an undirected graph.
]
[separate class Summary out from class Conflict
Ben Franksen <ben.franksen at online.de>**20190209122716
Ignore-this: 72faff5442a74f6d7e36d07c5d32a8205e520713009a01d7728a297d17c7add1387def4c422d6c5a
This prepares a change in the type and meaning of resolveConflicts but makes
sense independently. The method conflictedEffect is used only to generate a
summary for potentially conflicted patches and thus has been moved to the
new class Summary. The class Conflict gets a new method isConflicted which
just returns whether a patch is conflicted or not.
Incidentally this gets rid of a number of unneeded instances for Conflict
with nonsense/dummy implementations for resolveConflicts (such as for Named,
PatchInfoAnd, RebaseChange, and RebaseSelect).
]
[fix instance MightBeEmptyHunk for NamedPrim
Ben Franksen <ben.franksen at online.de>**20190209135159
Ignore-this: b1086cabaaab6213c883e46b2f628c627865a904b94b0ecea32b8c4b82cbd00da8bd4ff8ae93e3c6
Property effectPreserving fails for Prim.V1 empty hunks, and so it does for
its NamedPrim wrapper.
]
[fix in the QC generator for prim patch IDs
Ben Franksen <ben.franksen at online.de>**20190209134332
Ignore-this: 91ebf416d68a3e32c88a4b57f2b215d2a714c83ba9d52f7044ba9cf6c10b795f0cb05a7725481dbb
]
[restore alphabetical order of exposed-modules in darcs.cabal
Ben Franksen <ben.franksen at online.de>**20190208164649
Ignore-this: 8e8b4a08b048a798154b8545ec1eda37a4078baae2163b901cc2f64abfdfa10f7d0aad145cbf361f
]
[adapt test skip based on repo format
Ben Franksen <ben.franksen at online.de>**20190208164649
Ignore-this: 8bc2fd9371c2472ace4bc131e73011183729a3b1650ffcd8cd22d86453055b84a153171f1fdbe438
Now that we have three formats, we can no longer assume that skip-formats
darcs-1 implies test is run only for darcs-2.
]
[allow runnign the test scripts with darcs-3 format
Ben Franksen <ben.franksen at online.de>**20190208164649
Ignore-this: 9b273613a8c1534b3d6313e2ea587a5638a5725908f0a0274b93351ef96f9c08e858605ecaf877c8
]
[trivial refactor in D.R.Create
Ben Franksen <ben.franksen at online.de>**20190208164649
Ignore-this: 6b9a4d2b67990973945b087935be24145331b15d1b1d00da1cae1db4e933d60836a72031380b7e3e
]
[add new Darcs3 format option
Ben Franksen <ben.franksen at online.de>**20190208164649
Ignore-this: 2533f8ba73d77516c2bba809145e1d2fb2586e0eabc2cfc386f76363f431f0c0fcc8ce64cf785b69
]
[move Darcs.Patch.V3.Prim to Darcs.Patch.Prim.Named
Ben Franksen <ben.franksen at online.de>**20190208164649
Ignore-this: 11c6b305355e9d6b75e3f02ca85dc3246d220886c1d5d133ba1dcea8d68d94fc76ade6e8e8924d74
This is actually a fully generic wrapper for any PrimPatch type and
technically not tied to V3.
]
[add prim patch identifier when constructing Named patches
Ben Franksen <ben.franksen at online.de>**20190208164649
Ignore-this: f57ffc7d3a83e9779566083826ee3b2b46048f78267100ea9a54e9bd94cb502ebfdc712e48f2f2f3
This re-adds method fromPrim to class FromPrim, this time with additional
parameters to construct the identifier. This is then used in function
infopatch instead of fromAnonymousPrim.
]
[renamed fromPrim to fromAnonymousPrim
Ben Franksen <ben.franksen at online.de>**20190208164649
Ignore-this: c48e828a89e8afd62066c77998c5cd18584060e279f92823d7496cd823316426a7649606fc03e82a
]
[add V3 stuff to the test suite (quickcheck tests only)
Ben Franksen <ben.franksen at online.de>**20190208164538
Ignore-this: 4a6082f0fdd9a47b753fa9f020bc87cad4d7c8fed450ac497660aec14a7fc8ba59a9071d1c4e951c
]
[add RepoPatchV3 aka camp conflictors
Ben Franksen <ben.franksen at online.de>**20190208164513
Ignore-this: feeb4c3e9c99f20f77cb5980bad455e454715b484b2b5185195a2455e7e14abb6563a5e08c2faccc
]
[add some functions we need for V3 to Darcs.Patch.Ident
Ben Franksen <ben.franksen at online.de>**20190208155041
Ignore-this: dbe9d108136fda53b93c507df62c94f3ac15a8fc1b614c23358e0aa15b444b1675f863ec4fe190b1
]
[issue2614 has been resolved
Ben Franksen <ben.franksen at online.de>**20190612160232
Ignore-this: f5810bf105383ab6a6bcdd257c344cb0202f95541f87898a58d2592e1e79d123edcf94a9fd53e4e6
It has been fixed by
patch 9dfd9ea8480ced1f5bf88491c51d31b622bd6a43
* revert partitionRL to its former state, remove partitionRL'
Also, for darcs-1 repos it failed for the wrong reason, namely because we
push a conflicting patch (it does not conflict for darcs-2 because of
Duplicates) so we allow pushing conflicts to the target repo.
]
[test for issue2293 no longer fails
Ben Franksen <ben.franksen at online.de>**20190612155402
Ignore-this: 62d8056811d0d2a4a1e1061788e098b19361c36c1112f4f57962c0f05241f4c52ac6f6ffcc3dffe0
]
[test for issue2275 no longer fails
Ben Franksen <ben.franksen at online.de>**20190612155215
Ignore-this: 5f9d7b5a8e00108fcbf186399b2d02b8bbf84c98dcb0092e0aa4ea600d85aabb1f324f387feb4f8f
]
[issue1442 has been resolved some time ago
Ben Franksen <ben.franksen at online.de>**20190612153842
Ignore-this: 3232166c0bdef528297778ae79d289ffaca07739af4b49e6cdbf2adc72e2dbed9d6eff94633c82cb
]
[treat 'failed to commute common patches' as a bug
Ben Franksen <ben.franksen at online.de>**20190612153925
Ignore-this: 6294bf4989e8665e278230a8166a6892203a2f5ed5c0781bcb15165ddd7b7f2e7e8ba5e2895b8383
This partially rolls back
patch 7448ac2618ae158dbe576e45f487d24e9c71170c
* add new Exception types CommuteCommonPatches and PatchNotAvailable
]
[remove unused isSpace and don't export isSpaceWord8
Ben Franksen <ben.franksen at online.de>**20190612144349
Ignore-this: a82b77a300eea3963feffb798e625429468c9149c0cea9040b3227921ba072819d8258c063ef8393
]
[optimize fastRemoveFL/RL
Ben Franksen <ben.franksen at online.de>**20190218182117
Ignore-this: fb43a9a4b0e185f856744acd79b609d766b8a41fbe088f4d6f3e44cb61bfb4e3327630f5fdc3d470
The point is to avoid structural equality (Eq2) tests completely.
]
[some optimizations in ByteString handling
Ben Franksen <ben.franksen at online.de>**20190214193307
Ignore-this: d0680556d65fb1a07cb73914be549d98c193902eb1be245bd341bd5c275254ff670d577f9ffb722b
]
[revert partitionRL to its former state, remove partitionRL'
Ben Franksen <ben.franksen at online.de>**20190215112012
Ignore-this: c1cda92199711056c4b2774d6a591a32f6fd2e085adc0a7db6218d8d49bdbcb1f01e0c18ffb4d5a2
This rolls back parts of patch 47da99770d4be412f7d9baed75eb0573a5b18d54
* clean up partitioning functions and export primed versions
The idea was to reduce the number of commutations. I am not sure it does
so in every case, though. And the new implementation is less conservative,
i.e. he result contains more commutation that necessary.
]
[split up Darcs.UI.Commands.Convert
Ben Franksen <ben.franksen at online.de>**20190226182702
Ignore-this: 664d576d3951885f994bfe7fd559a53ad0359e202107415755bca007569b01ff3afab182a82745d8
The implementations of these commands are long and complicated and they
share almost no code. And we need to add yet another command for conversion
to darcs-3...
]
[fix a (serious!) bug in instance Apply (RL p)
Ben Franksen <ben.franksen at online.de>**20190306104028
Ignore-this: fa2fef9650349872dbdb2418a42be3907db4794ebcc6fc537916b4701d3671a52675691d71d4d324
]
[fix confusing error message
Ben Franksen <ben.franksen at online.de>**20190226182952
Ignore-this: 45e6629492957d6424b9e664e7aa617a85bf62a36efa892b8ae1a9d8748bb9497d7d0e2a607ff932
]
[extend documentation for classes Ident, SignedId, and Invert
Ben Franksen <ben.franksen at online.de>**20190224080628
Ignore-this: 47c5361cab0adc6b0a9c87ec7e391da204eae090cda3de41f556053c8218755d12241dc419dad6d5
]
[fix a typo in Commute docs
Ben Franksen <ben.franksen at online.de>**20190224081603
Ignore-this: 4cb41cbd8e8be7af49ed845fe448dd3041014fc2379c8b20fbaf890f21d058108fba5d1aab2e5b3e
]
[fix documentation in Darcs.Patch.CommuteFn
Ben Franksen <ben.franksen at online.de>**20190224073329
Ignore-this: 1e653f68a6e8d88386e9f1274cd12d952b192f85889394d8592ecd8228bebe806dede0d58527c096
The possibility of failure means that all CommuteFns are more or less
equally strict: to consume a result sequence we must know that the result is
Just and that requires all commutes to be performed at least up to the point
where we know they succeed.
]
[harness: renamed invertSymmetry to invertInvolution
Ben Franksen <ben.franksen at online.de>**20190226090951
Ignore-this: 12df4e63ad9b47ab5a91f0d990a2a9154e86884dea8c05dd633e08a958fab942169b7bcf099c0fb6
]
[harness: slightly improve docs for generic properties
Ben Franksen <ben.franksen at online.de>**20190226091049
Ignore-this: e10a9008733ea6205413b55617ed0d9b3fba9f7bdb1f5d7bbf5553c9ccaa610e7699b4ed4f76b6ca
]
[harness: print failures with color
Ben Franksen <ben.franksen at online.de>**20190225091643
Ignore-this: b06c0f191ba8b31180f8228c9680c3c455287955bfedde9935ef4ff29f86b7c7fed5d3a15f787521
]
[demote data type Common to a type synonym
Ben Franksen <ben.franksen at online.de>**20190228001846
Ignore-this: ddcc279308aaf7c5f8c32a235f91e8ffaa103485ca591720365fb86bcd03040e23cd9355cc3dbed
We have a the more generic Fork data type for which Common is just a
specialization.
]
[remove unused instance Merge (RL p)
Ben Franksen <ben.franksen at online.de>**20190304134928
Ignore-this: 8687305e380d01d0ce4dbe7768568f9e9ab22e9981780f8f37d1b516a4211d735558387bc59e17a9
]
[simplify a case in splitOnMatchingTag
Ben Franksen <ben.franksen at online.de>**20190302223328
Ignore-this: 52d98b91fe35e9b93cdbfdeb89aacdc4187458769f6854954395e2f5ac3aa5a3189b494129067688
]
[remove unused function setPiDate from D.P.Info
Ben Franksen <ben.franksen at online.de>**20190302223129
Ignore-this: 61423762d053023c5ebf4c13a2c7f2e4fc6b578d279f05ebfedae36f38a2962a3ea12d335c5be5d3
This function circumvented validation of the PatchInfo ingredients, so good
riddance.
]
[fix in tests/convert-darcs2.sh: add missing "cd .."
Ben Franksen <ben.franksen at online.de>**20190226214009
Ignore-this: 7593682e01c1f22e9b12e93aa6bdc9d93ec81445f938577bdb84a9ae22f3a34150f98169d245edf8
]
[don't offer already depended on patches with --ask-deps
Ben Franksen <ben.franksen at online.de>**20190124193457
Ignore-this: 1f9ad1d591f9f99bdf38bea319f1acbf19a38f859a3c7687f7943a0a46abc97e14a03435426cc34f
This reverts an unintended behavior change introduced by the fix for
issue2618: the patches we already explicitly depend on are offered again.
This is done by adding the old dependencies to the anonymous patch before
filtering out its dependencies.
]
[get rid of unused unsafeCoerceP2
Ganesh Sittampalam <ganesh at earth.li>**20190611062513
Ignore-this: 46b236dfe624c10c2e968530747afd47
]
[make it clear that coercing Repository is "unsafe"
Ganesh Sittampalam <ganesh at earth.li>**20181118220143
Ignore-this: a6c3812e365d19cd17377fe146dda216
This may be a little pedantic, especially as we don't claim that
mkRepo is unsafe, but it's consistent with the API for patches.
]
[get rid of orphan FromPrim (FL p) instance
Ganesh Sittampalam <ganesh at earth.li>**20190608202444
Ignore-this: 3afa6a3765ed5314975155267a71ac21
]
[refactor trackLinear to break out the recursive case
Ganesh Sittampalam <ganesh at earth.li>**20190608101047
Ignore-this: 5bc698dfed2f744ae45d599476ad1487
]
[make linear search report results like bisect
Ganesh Sittampalam <ganesh at earth.li>**20190608095540
Ignore-this: bc2895373d26624b241cc536ac7fb201
previously it would just print out "Success" and the most
recently printed patch would be the one to blame
]
[expose the test harness runner and config for running from ghci
Ganesh Sittampalam <ganesh at earth.li>**20190606223539
Ignore-this: d382080ebb2f7ccdf6aacc713408610a
]
[rename BisectState to BisectProgress
Ganesh Sittampalam <ganesh at earth.li>**20190606215716
Ignore-this: ef33ae0254952cf5ec1734470558ae17
]
[introduce an explicit type to express the result of a strategy
Ganesh Sittampalam <ganesh at earth.li>**20190606215300
Ignore-this: b5314f8ba72bd024a6244cca6c1c9c36
This is a bit of a brute-force/dumb refactoring to begin with.
]
[introduce explicit type for tracking test results
Ganesh Sittampalam <ganesh at earth.li>**20190606122539
Ignore-this: b4b3f63baa18718d79dc4f7e209b1939
This is in preparation for adding a new constructor to
track "untestable" results.
]
[drop unnecessary constraint
Ganesh Sittampalam <ganesh at earth.li>**20190606220441
Ignore-this: f9e1e905f532b84e70042ff46b469df7
]
[fix (Windows-only) warnings in Darcs.Util.Workaround
Ganesh Sittampalam <ganesh at earth.li>**20190606122513
Ignore-this: 98efe7f33da84f73851f1bcf7695dc6f
]
[CHANGELOG entries for 2.14.2
Ganesh Sittampalam <ganesh at earth.li>**20190126111825
Ignore-this: 2da6fba6b82288810de622a05851746e
]
[CHANGELOG entries for 2.14.1
Ganesh Sittampalam <ganesh at earth.li>**20180624165246
Ignore-this: 1aa070f69a56b2dee98b5e806f1e88fe
]
[tests/repair.sh: group remove of test repo with creation
Ben Franksen <ben.franksen at online.de>**20181021220721
Ignore-this: aa2ec30c80093d75d7eb069f5abff7df1b1842f3fb713b983a0bde0923ed0944869b620112c72e7d
]
[use mergeNoConflicts in the definition of standardResolution
Ben Franksen <ben.franksen at online.de>**20180916104610
Ignore-this: 146e0e181392dbee9f1286bef5e4c1035b0fd68208e78e33d75b5aff63d6b32168cbc6f446779b91
]
[replace use of fromAnonymousPrim with call to constructor
Ben Franksen <ben.franksen at online.de>**20190208164954
Ignore-this: 43e342cde5dc6e4985b875276b0b7d984e7c3163434b049b37e1098456dd75e0363072588ad9416
This further minimizes calls to fromAnonymousPrim which is good because with
V3 this is now an unsafe method.
]
[make test for issue1978 independent of patch format
Ben Franksen <ben.franksen at online.de>**20190212172042
Ignore-this: e6cac0eeef9a5adaa65ab08e713243a2c404aada48cc6e27109af35c33c798369776b56d1ee4754f
]
[simplify and clean up conflict-fight test scripts
Ben Franksen <ben.franksen at online.de>**20190213080340
Ignore-this: a19af8abe6180f446d15550fd8c661c5d55301bf80b7d0178714a5ad8f7f3bf111f622613c565306
The option --ignore-times is the default when running test scripts and we
also have a default author configured. Also don't remove test repos when
done (this is bad for manual inspection of the test repo).
]
[tests/conflict-fight-failure: adapt number of iterations to patch format
Ben Franksen <ben.franksen at online.de>**20181024175801
Ignore-this: d43a917f2cb44df655d61afae4498db8e2e992a2d34dd540fc204191e4afca83f33ed22b790d5f71
]
[fix shebang line in tests/conflict-fight-failure.sh
Ben Franksen <ben.franksen at online.de>**20190213081234
Ignore-this: 3a01123105c8bb6b378747638194f9233ec03c7aad9143eaf297f5da013d225f22ef8ac94cd79561
]
[renamed apply-hunks.sh to issue701.sh
Ben Franksen <ben.franksen at online.de>**20190213080146
Ignore-this: bd76f684fa8a1db9007381787f8c83541f6c617b0ae60df0a17842184e4315aca910e859f320ae72
]
[tests/apply-hunks.sh: remove step6
Ben Franksen <ben.franksen at online.de>**20190213075529
Ignore-this: 112cb2371b7a606d6d1f0adf0d4a6e5fa324707bb03edbaec629fec1e7e81b301aa8aa79722e8ea8
The repo temp2 is not used and obviously irrelevant for the test.
]
[remove test repos before creating them (apply, apply-hunks)
Ben Franksen <ben.franksen at online.de>**20190210222616
Ignore-this: cd84403f92e154e047bbc2cfb28f39f5c7a823f0e6faaef77d284da8a0d01111ec2d344e311d85ac
]
[tests/sshlib: skip test if remote darcs doesn't understand our patch format
Ben Franksen <ben.franksen at online.de>**20190213075030
Ignore-this: afda3657be91964f090dcaf5db7f40de958dccbc0045b6ef1b3bf3c5d6fe9dec9b9664eba046b579
]
[break overlong lines in D.R.Repair
Ben Franksen <ben.franksen at online.de>**20190212212710
Ignore-this: ec2725d33feaa54ecf70cd3270746d68fe4b0ba586679633cab38a1ea9ef22480b77bf4548e041ed
]
[fix crash when a hash (given with -h) is not found
Ben Franksen <ben.franksen at online.de>**20190212191002
Ignore-this: 5cc8232afddd231e0010598c36ac67dd8707437e014dbf6f93e750e898bc80b9cd24d7956201013
It now throws a new type of exception (MatchFailure) instead of calling error.
]
[small layout fix in Darcs.Util.Hash
Ben Franksen <ben.franksen at online.de>**20190210222529
Ignore-this: 5a9f5e3d0cdda7b3f5ba8d3fa2fff64b6ef9dece6689b7337a7617d7e2715c8e8bd7cd057eead334
]
[remove obsolete directory src/Darcs/Patch/Bracketed
Ben Franksen <ben.franksen at online.de>**20190210201244
Ignore-this: e6c8f3a994588b6c4a9bc961f642a19715b9cd19d397fc0fe29458aacfd991c17d4fac8a63d54f48
]
[better diagnostics when property mergeEitherWay fails
Ben Franksen <ben.franksen at online.de>**20190205105245
Ignore-this: 2cc1b0a1357bd305a63ead1fe6e1120637ce8969fab1b01705db2b28e2070dbe26bff863f68dfa16
]
[rollback of rename conflictedEffect to isConflicted
Ben Franksen <ben.franksen at online.de>**20190209115302
Ignore-this: 846fbce4cea91f41337b551ff6a650a7f9ff58159c5b7462fcde2153ce01be01c7cf0568d5eb315b
Contrary to what I stated there, conflictedEffect does have a lot to do with
the effect of a patch. It is just in the wrong class which I am going to fix
in another patch.
]
[harness: better diagnosis when permutivity fails
Ben Franksen <ben.franksen at online.de>**20190129215425
Ignore-this: b1f4d2903564748a8b4a086714e1e6c6106300f058c7b89e85626dc5a0ba50154484f8ed5cab54b
]
[mark test for resolution of conflict chains as not failing
Ben Franksen <ben.franksen at online.de>**20190128202716
Ignore-this: e7ef012985a72167697a43861564d0f73ce53b95b523d357f4612431370c8ce90b18392ef406a342
We don't have many tests for conflict resolution and this is a pretty good
one, so we just skip it when the format is darcs-2.
]
[improve test for conflict chain resolution
Ben Franksen <ben.franksen at online.de>**20190127104545
Ignore-this: 7b5790770967537e81077efb833cfb2a1e0469251f161589757cebf188f451c8de7f0a241217d2eb
Apart from fixing a bug (the old version tested the wrong file), the test is
now tolerant with respect to the order in which the alternatives to the
baseline are offered. Interestingly, it turned out that this test actually
succeeds for the darcs-1 patch format.
]
[add --replay=SEED option to darcs-test
Ben Franksen <ben.franksen at online.de>**20190130095232
Ignore-this: c118d96c6b1b5947da96dfedd3202ce8b318bb6d6eb3d0cd979b18f97f8a0a8d09cebf34ea437d5b
]
[resolve issue2618: option --ask-deps adds too many dependencies
Ben Franksen <ben.franksen at online.de>**20190124183655
Ignore-this: 99b3f4b4f6e72a80773321890a3ae6b08bf2b2121e5590db51ae4aec503edd253f84818c5f2e0ac4
The trick is to filter out any patches in the result from runSelection that
depend on later ones. While this may also filter out explicitly selected
patches, these should rightfully not have been offered in the first place.
I took the freedom to clean up and simplify the code for askAboutDepends.
This concerns mainly the initial filtering of patches that are depended on
by what we record, which is now reduced to a plain commuteWhatWeCanRL.
]
[accept issue2618: option --ask-deps adds too many dependencies
Ben Franksen <ben.franksen at online.de>**20190124183618
Ignore-this: 3c530e6336303b14ab82382d755cd50f37aa7115891e465a6dbf3ea4389398b1e7ecc01d0f46a935
]
[annotate all uses of anonymous with comments
Ben Franksen <ben.franksen at online.de>**20190123184250
Ignore-this: e36396a975c47090fbd77903cb3948ded7ba576e723a3963f5e48c505d7b1729d70940a846a0850a
Whenever we call anonymous to construct a Named patch we must now check
that we don't accidentally store patches that result from merging them
with normal patches.
]
[add class IdEq2 to Darcs.Patch.Ident
Ben Franksen <ben.franksen at online.de>**20190124135342
Ignore-this: c5466acfb13224c405ebfe055b186d2a57d0d9d53dbf6044facba677efe0dba803c865e3469e8cde
This allows a faster equality test for FLs of patches with identity.
]
[enable test for issue436 for darcs-1 format
Ben Franksen <ben.franksen at online.de>**20190124085755
Ignore-this: 4624b8ae3ac4db8fd14d3c1acc8a2949cd767416a1327e228d09b0dff0c00c7d4666eec303cd487a
]
[break overlong lines in partitionConflictingFL
Ben Franksen <ben.franksen at online.de>**20190123183208
Ignore-this: de96f39c0db3146634b74107e347974093a46d5672d042fd962bf732f119ea0c67985d77fe5c872c
]
[remove class PrimPatchCommon
Ben Franksen <ben.franksen at online.de>**20190123145855
Ignore-this: a928a57c0712f3e27971cc2df9bb30763581f11f8e18bf28d9bddd441a6b4ec2d67b2b60a6d6de78
]
[avoid direct imports of Darcs.Patch.FromPrim from outside of Darcs.Patch
Ben Franksen <ben.franksen at online.de>**20190122194221
Ignore-this: f3526d3539faa6b8a0f3c7f547fa95d4a2d1acaac062b6e5465e5cc4f2c7b63b3ed356eb5cf026a1
The only exception is now the implementation of rebase inject which needs
low-level access to fromPrim.
]
[remove fromPrim from Darcs.Patch
Ben Franksen <ben.franksen at online.de>**20190122193314
Ignore-this: 5466d3c0d875be04d4d987230016b2ed5ce623aef2d4cf31113d73c0244c3f751c348fc38236487e
This is now no longer an official part of the Patch API.
]
[move classes PrimPatchBase, FromPrim, and ToFromPrim to their own module
Ben Franksen <ben.franksen at online.de>**20190122192439
Ignore-this: 7a05d15ffab8643ee34adffdca910beb4628c478cc98eb7fd114244a00b448d9a46d63f459622e8e
These classes are not part of the Prim patch API but the RepoPatch API.
]
[move instance FromPrim (FL p) to Darcs.Test.Patch.Examples.Set1
Ben Franksen <ben.franksen at online.de>**20190122184024
Ignore-this: 46af7bff9fa0123cbf9341529ba5b69a5e44a1a589d1ea87b5a6f8829d701d7f97651716b0ddcbb2
This is the only place where the instance is used.
]
[remove instances for FromPrim and PrimPatchBase for prim types
Ben Franksen <ben.franksen at online.de>**20190122183012
Ignore-this: 756b3fd6b00bcd2a2d4af647a9dda4b645023bfd24f136fb8d7530afcc687ae5d3f96622fb2b7ece
]
[eliminate use of fromPrim in convertDarcs2
Ben Franksen <ben.franksen at online.de>**20190122175720
Ignore-this: f49d305cb77f4260a6bafab2fd9a96b297b441e1c5e9aee711d0a44eee52b3ae3f4b010e55179088
The code now uses the data constructor V2.Normal instead.
]
[eliminate an unneeded use of fromPrim
Ben Franksen <ben.franksen at online.de>**20190122173108
Ignore-this: 3b97bef8e57f2ae1fb571f6ec5a5b817e4ff097d7fc2698ef7e258d54dd9dd7d4009f783244b51af
]
[refactor: eliminate class FromPrims
Ben Franksen <ben.franksen at online.de>**20190122172158
Ignore-this: 54d76dec03513588d7bf8b59c79aa24c6af77c5b4d106b2fbd33e3de2e9d06d6ed7aa01c4f325fb8
Again, preparation for adding identities to prim patches. The method
fromPrims was used mainly to construct Named patches via infopatch or
anonymous from Darcs.Patch.Named. These functions now take an FL of prim
patches as input.
]
[inline function Darcs.Patch.Named.namepatch
Ben Franksen <ben.franksen at online.de>**20190122132111
Ignore-this: 4a9fbb4c69164a54029c50bcb7ff3b369728de13989296b4132d52b92b4fadf038a7f1da62d79a6c
This is in preparation of adding identifiers to prims when constructing
named patches.
]
[simplify "Ignoring out-of-order tag" warning for darcs convert import
Ben Franksen <ben.franksen at online.de>**20190124110533
Ignore-this: ffba102334ae16c01c5d8cae9c3355913c5ae50c89675186b0926d96a43df767d162fc8ffa16d378
]
[replace bug with error in two new places
Ben Franksen <ben.franksen at online.de>**20190122172731
Ignore-this: 4c26974328bd9963bf27b110cbb829a50e0ffc71ae04609f591d6fdeb467b82dc3df5be1715e31e1
]
[D.P.Match: pattern match and error instead of fromJust
Ben Franksen <benjamin.franksen at helmholtz-berlin.de>**20181218173746
Ignore-this: 69ff5a497ae01cbe279069d795f7c0b73ab82c4ee4c1d3b4571dd3401d35ea451f0aaeb6b2940fc5
]
[add a top-level error handler
Ben Franksen <ben.franksen at online.de>**20181214153646
Ignore-this: fe90dbbfb673b057132723b592d447c493ed3fedcbc4cec746022ee8bed3fc47fea4dd6fb1c82dee
This exception handler merely adds information about where to report the
bug, then prints the exception to stderr and exits with ExitFailure 4. This
allows externals tools to distinguish whether darcs exited due to a bug.
]
[add new Exception types CommuteCommonPatches and PatchNotAvailable
Ben Franksen <ben.franksen at online.de>**20181214153646
Ignore-this: ea1cdebcb8df41910e606c7eb0523b6c7b2eaaef0de12e297f2568498f932efe3c50ef77398bf82e
We now throw these special exceptions instead of calling error. This is
because neither is (necessarily) a bug in Darcs. Instead these exceptions
can be thrown under normal conditions and indeed there are tests that
provoke these failures.
]
[replace errorDoc, assertDoc, bug, and impossible with direct error calls
Ben Franksen <ben.franksen at online.de>**20181214153646
Ignore-this: bc37ba5af9afd01725140e6f008839811b0e17058f0fe7d531998017d0c0da6d5393430840765653
All of these functions indicate the same thing: if they are evaluated then
this is a bug in Darcs. In case such an error happens we want to know the
file and line number. If we use any of these functions, then the location we
get from ghc is only an unhelpful src/Darcs/Prelude.hs or
src/Darcs/Util/Printer.hs. That is, unless the callstack actually contains
useful information, which apparently requires profiling to be enabled. So
this is useless to us in practice because who uses a special
profiling-enabled Darcs in their daily work?
]
[replace a few calls to 'bug' with 'fail'
Ben Franksen <ben.franksen at online.de>**20181214153421
Ignore-this: 8f0741d3fcdfbbbae4bb220a1f6bcf2f7d0391f13ff01ed82798321757599523c52c7f5079c85be2
These aren't bugs in Darcs at all, instead they are normal failures.
]
[replace debugFail with plain fail
Ben Franksen <ben.franksen at online.de>**20181214150217
Ignore-this: 9977f48e8d7985f4417a781c59012912676afaac0389b921e123b5552b1e01369d6f8109822f1230
The extra information obtained is usefull to diagnose the error and should
be available to the user without having to supply --debug.
]
[fix several uses of error where it should be fail
Ben Franksen <ben.franksen at online.de>**20181214131458
Ignore-this: 6015e043597a8a27d9aa14ae4c69af282494859347881e3f331c3fe21c90545f496a84ee061da04b
These situations are normal failure conditions and not bugs in Darcs.
]
[resolve issue2617: convert import crashes with out-of-order tags
Ben Franksen <ben.franksen at online.de>**20190122161346
Ignore-this: f3789fbca9eea248c160b99717d411037e9597a531c2a053a2c77cd7eb6bba9d1754c97eb9ecfc9b
]
[Support GHC 8.6/base 4.12
Ganesh Sittampalam <ganesh at earth.li>**20190116064452
Ignore-this: 7204c5842820f03282b7e5e96d1bc208
Also bump a couple of other versions needed to find a build
plan with base 4.12.
]
[PatchCheck tests: introduce newtype to implement MonadFail
Ganesh Sittampalam <ganesh at earth.li>**20190116062742
Ignore-this: 6f9dd8a3c53dbc0448e9f626e101d35c
This restores the pre-MonadFail behaviour of this code
(which would be to call error)
]
[support QuickCheck 2.12
Ganesh Sittampalam <ganesh at earth.li>**20190116061531
Ignore-this: e907466ec9d44ac9fc309e40fa82bcfc
]
[support network 2.8
Ganesh Sittampalam <ganesh at earth.li>**20190116061523
Ignore-this: 99aec3abd3e81cd4265129b1f3c49f02
]
[support zip-archive 0.4
Ganesh Sittampalam <ganesh at earth.li>**20190116052802
Ignore-this: 53bd6a4c63f1dc0c98c2dfa4fe6f578d
]
[change failable pattern in partiallyUpdateTree to error
Ganesh Sittampalam <ganesh at earth.li>**20190116052216
Ignore-this: 3441c5152ec694dd8219eb52dce8ee7e
Inspecting the call sites, a failure shouldn't be possible.
]
[replace failable pattern in existsAnycase with error
Ganesh Sittampalam <ganesh at earth.li>**20190116052121
Ignore-this: 5fc551bf8dfc9108413e6fdef9eabc50
A failure shouldn't be possible and anyway isn't
caught by callers.
]
[PrimV1 tests: refactor a bit to avoid failable patterns in do-block
Ganesh Sittampalam <ganesh at earth.li>**20190115070934
Ignore-this: 1b5fee320d451d3aba6468e0e1652d99
]
[RepoModel tests: replace Either with an explicit failure type
Ganesh Sittampalam <ganesh at earth.li>**20190115065956
Ignore-this: 200c9c8fd864a98063dd76a510c9ab0c
This means we can have a non-orphan MonadFail instance.
Immediately before this change fail on this type would
have just called error, but the code dates from before
the explicit fail definition was removed from Either in 2010,
so this probably restores the original intention.
(see https://ghc.haskell.org/trac/ghc/ticket/4159)
]
[in test for issue2271, reset permissions more reliably when done
Ben Franksen <ben.franksen at online.de>**20181214155554
Ignore-this: 35dbd3b13204d28c8e2f9b8d43ac7d7efe5fbd9637e0ef6b449e34ebdd9e0420ab0fa8d0d1168c92
]
[in some test scripts, remove test repo before creating it (and not at the end)
Ben Franksen <ben.franksen at online.de>**20181214155405
Ignore-this: 6cd529ac524dd448b9b9a9640cc60c4af7238bd237b229f9c1ee3d9dd5c2882afb76e85af8f527a1
]
[several fixes in tests/failed-amend-should-not-break-repo.sh
Ben Franksen <ben.franksen at online.de>**20181214152004
Ignore-this: 77b3b1d2d3ca76418780d0d78c5f1b4ce8a208b1ece53de05a07eb2a43f6f94107d7f525000e835c
The darcs invocation here failed for the wrong reason (it expected more
interactive input). Furthermore, issue1406 is no longer an issue as it
concerns only the old-fashioned un-hashed repo format; the test now checks
that if amend --test fails, then output of darcs log before and after the
amend is equal.
]
[fix in move command after AnchoredPath refactor
Ben Franksen <ben.franksen at online.de>**20181214130414
Ignore-this: 750bfaad231ee457e9cca7b880a4aa1a4ac9aca4aac542017d60d712403c1b93f943371b2909c29a
The command didn't take into account that pathsFromArgs filters out invalid
paths. This could lead to crashes (pattern match failure).
]
[accept issue2614: clone an unclean tag
Ben Franksen <benjamin.franksen at helmholtz-berlin.de>**20181218174937
Ignore-this: 9f46d55aa8aa89dee0e0f1ac447c502fffdce1f82e28aff89b05c8916fd695e2362c9f4683203157
]
[fix darcs diff in issue1959 test on Windows
Ganesh Sittampalam <ganesh at earth.li>**20181208215029
Ignore-this: de91ae07414817b4117aa4281ba7a247
diff copies the repository with the current permissions,
and on Windows removeDirectoryRecursive can't remove
read-only files
]
[make API of Darcs.Repository.Rebase a bit more type safe
Ben Franksen <ben.franksen at online.de>**20181115215304
Ignore-this: bf85872ba5d691e64d0f8a3edd25ae3973192f914863fc35b829d67b1c3266d761914a0e60f19ebe
]
[treat path to unrevert bundle like all other repo paths
Ben Franksen <ben.franksen at online.de>**20181204184737
Ignore-this: a67547eb79315034ea92fc3b47b1bb2b3484af0a4e5aa07a53b28dd37359a26f089058ba0b3fcdee
This means that we treat it as relative to the repo base directory instead
of having it depend on the repoLocation of our Repository. Also factors
unrevertPath to Darcs.Repository.Paths.
]
[simplify addPendingDiffToPending
Ben Franksen <ben.franksen at online.de>**20180623142436
Ignore-this: 4b116ac0d5bc2b525409fd0680fb5bca
]
[remove option --restrict-paths
Ben Franksen <ben.franksen at online.de>**20181112093035
Ignore-this: 56c0df6c741821d40fea81bcc3929b0dc9a952da023dbed2b2b033f960e1100d0b774168af108829
I can't think of a situation where allowing patches to manipulate paths
outside of the repository makes sense.
]
[minimize context inside unrevert patch at the head of the unrevert bundle
Ben Franksen <ben.franksen at online.de>**20181116085505
Ignore-this: a910c970ca9cf54ba7bbd9c8b639268521630e1d09c9949750b4d647fe27a854ebabe2919c144879
This does not minimize the context consisting of named patches in the bundle
itself. Instead, only the prim patches that go inside the anonymous patch at
the head of the unrevert bundle are affected.
]
[add progress reporting when creating packs
Ben Franksen <ben.franksen at online.de>**20181113172946
Ignore-this: 10ecae8deda40104793138976c68b752db098925aae5e2d7033000b333d06c84aaf79f7acbba7ac7
]
[replace Darcs.Util.Workaround.renameFile with System.Directory.renameFile
Ben Franksen <ben.franksen at online.de>**20181204131436
Ignore-this: a709860ba2dbf746bdf228518560cc0a0caf4bf80c7b2f924a92fd44458a8ab95f51f85b59b78f34
]
[Darcs.Util.Index: fixed documentation and code layout
Ben Franksen <ben.franksen at online.de>**20181118102326
Ignore-this: 80f41534e1dbf0a8650ec2d1c70e50e1901fc343feade74c6ab8d92ab8d291e713e63f2b2695ffc
The description of the index format was out-dated. It does now correspond to
what the code does. It also did not mention the two extra bytes of the item
descriptor which are now also documented.
]
[no coloring in progress reports for check/repair
Ben Franksen <ben.franksen at online.de>**20181125134231
Ignore-this: 4d0334a45065e0f5e703d15415db8e959ecad757d237d546fc4ece5a6079c1a9dfa3d492c81a01e3
For reasons that aren't fully clear to me, colors aren't properly reset when
using them in progress messages. This has the undesired effect of coloring
all subsequent messages. The simple solution here is to use renderString
instead of showDoc to avoid coloring the progress messages.
]
[layout changes to avoid overlong lines in Darcs.Util.Tree.Monad
Ben Franksen <ben.franksen at online.de>**20181125133350
Ignore-this: 7ac6d5c541c6478d1b9d5924faadeae03a99ae0175630d3429659169a3deb36ebb98a3537d255e0c
]
[remove unused/obsolete src/win32/sys/mman.h
Ben Franksen <ben.franksen at online.de>**20181203150453
Ignore-this: bca7fd944a39e7228d7cefd9c288c6cb1bc798b3bebbf28da9a9ffd4a3b0bbdaa6ed9cfc25612ab8
]
[slightly simplify withManualRebaseUpdate
Ben Franksen <ben.franksen at online.de>**20181116090156
Ignore-this: fb30fd9c64bbed4f3cdd88e98cf42f4154a3c4593ec363d664b95512174351d2a45310005afbdae0
]
[layout in D.UI.C.Amend.addChangesToPatch
Ben Franksen <ben.franksen at online.de>**20181116084217
Ignore-this: cb3c860f34005a64470e7d90a13383abf000a9d5e41ebac1eba4495ef3657ce08b68b5468ff710b5
]
[remove duplicate definition of catchall in Darcs.UI.External
Ben Franksen <ben.franksen at online.de>**20181115211847
Ignore-this: ea0f1fedcdcd8592e3d18925310df3953bd76f123aef0cfcd4197d13de339e32d68ae1123daba9e5
Instead use the one from Darcs.Util.Exception.
]
[revert command: break overlong lines (layout only)
Ben Franksen <ben.franksen at online.de>**20181115195735
Ignore-this: 831c4d382396cc6c78c623b07ae27d9b1d6099f9ea431a2f4865d9a2fb6aa5caeef596e6549aeeb6
]
[Darcs.Repository.Clone: clean up imports from D.R.Hashed
Ben Franksen <ben.franksen at online.de>**20181115170821
Ignore-this: c22ca2e465523cafdc50caec7a301ec0811c42934fcea032f5cbedc87d500c943a74e176e6edc39
]
[remove unused functions choosePreTouching and selectTouching
Ben Franksen <ben.franksen at online.de>**20181111194730
Ignore-this: 1ee9dacd63eb09609bb9e66250282ee9606a8480759b40f77f6bb3babc269820aa8b9fbbfda65b7f
]
[remove outdated haddocks for revertRepositoryChanges
Ben Franksen <ben.franksen at online.de>**20180727083506
Ignore-this: 1cadac776484a3ebd88c9b1acf399367
]
[D.R.Merge: use displayPath for path display
Ben Franksen <ben.franksen at online.de>**20181114210502
Ignore-this: 1579729958cfa3cde5964db125e126dbd870f95248131fbf4d0f32b6a15fd036905eb9f899606340
]
[Darcs.Repository.Clone: fix a comment
Ben Franksen <ben.franksen at online.de>**20181113165420
Ignore-this: ad0f0c784891d3634518a20a9147a32c5cd6b271c23ad2045dff7a0a08298bf378d9cc130b6a37ed
]
[Darcs.Repository.Clone: turn two comments into debug messages
Ben Franksen <ben.franksen at online.de>**20181113165414
Ignore-this: 97e1fb6d5b44ded011389eef1ddbf896d3085706c145e59b8af9d0e93e2357569216bcb3eb2492de
]
[move removeFromTentativeInventory closer to its single call site
Ben Franksen <ben.franksen at online.de>**20181113101957
Ignore-this: 33863d10e41a0a82de494a7c9d421bec57c1c0e61c6493823200328e715d578ab5649ea2384206ac
]
[group --reorder under the merge options and improve its help text
Ben Franksen <ben.franksen at online.de>**20181112091218
Ignore-this: 35d3909ee71127bcc72cf2085237dfb4d30f5d5c3cfdc936c348ee165df0c0c83a01f049bb1deb5d
]
[remove unused option optimizePatchIndex
Ben Franksen <ben.franksen at online.de>**20181112090705
Ignore-this: eeaafa598715d563108603e47e22d2293f5ca7f2a675e17f611936a20199f9d56656843a879faa44
This option became a subcommand some time ago.
]
[removed unneeded pseudo-instances for class Effect
Ben Franksen <ben.franksen at online.de>**20181018102651
Ignore-this: ff7c46758f59624261bd27d2c155fee465cb12bc2c103f1b1eeb455465f8f77fa1714c12f930209b
]
[remove unused method effectRL from class Effect
Ben Franksen <ben.franksen at online.de>**20181018085402
Ignore-this: e0bedb910842dd671484d8a64c19281c878fc41473d112ecd38d4ae8004ac150475f7d31491fe06e
]
[Darcs.Util.Tree.Hashed: add debug messages and factor out showHash
Ben Franksen <ben.franksen at online.de>**20181204131437
Ignore-this: d9a153d7f6bf418c0de29f3830ce7f224204bdbdd6b173d6cd15aeff77ef322d82d2cb7594abe209
]
[create tentative version of rebase patch directly
Ben Franksen <ben.franksen at online.de>**20181204140003
Ignore-this: b0dc8905d6ad92e7198271f92603f27b7970701ef1d25aa4df535ca61cf1d6cfae178779bfe9d18d
This is safer, since it means that concurrently running read-only operations
can't see intermediate states.
]
[in some test scripts, remove test repos before creating them
Ben Franksen <ben.franksen at online.de>**20181204171221
Ignore-this: ef13010bb8c2b3bc7603fce49c36657590f747a49ed899d9eb222027328d1658ee847c3b47a7ebe0
]
[resolve issue2441: Use pager for darcs annotate
Eric Kow <kowey at darcs.net>**20181126110104
Ignore-this: 3dadb5f767322eeb7940edab52791e00
]
[expand pending_tree in filteredWorking (IgnoreIndex+ScanAll case)
Ben Franksen <ben.franksen at online.de>**20181203185012
Ignore-this: 4b6b095a8dc1f27d8ca58acb0e01baf9d46e3917708bae39cf290af6c6245da388e58737182d41df
We use the pending_tree for filtering which means it should be fully
expanded, see the docs for Darcs.Util.Tree.restrict and my comment
(http://bugs.darcs.net/msg20509). It would be more efficient and elegant to
do the expanding on demand, but since this is an IO action it would mean
tree filtering is no longer a pure function.
]
[resolve issue1959: read-only commands should not need write access to the index
Ben Franksen <ben.franksen at online.de>**20181203183314
Ignore-this: c9da84b34251d245d37332c347abcd3b62eb1e225299ae494e2b35bffcf94b00c71a37ae8b508bf4
]
[fix docs, following up on "disentangle D.R.State.filteredWorking"
Ben Franksen <ben.franksen at online.de>**20181203183056
Ignore-this: d7e19dc70c04faa14db1694163d20c58968a64eea30d18f4f1ca0c73dcd32b0a8acdca16fd78f3c9
]
[fully respect the useIndex option
Ben Franksen <ben.franksen at online.de>**20181203182954
Ignore-this: 2ffeb71ab73962267e4db6092fb7e29081faab86419e478f6e26d4685cc133eb8de75f8a8c7f02b6
This hopefully eliminates any remaining unchecked uses of the index.
Darcs.Repository.State now contains a CPP macro TEST_INDEX to control
whether some testing code is included that accesses the index /and/ does a
readPlainTree with an appropriate filter and then checks that the resulting
trees are equal. We also pass the repoLocation explicitly to readPlainTree
now (if available), because it turned out that some uses of the functions in
D.R.State are made with a CWD that is not equal to the repo base dir.
The implementation of readUnrecorded is now in terms of
readUnrecordedFiltered instead of repeating ourselves.
]
[extend test for issue1959
Ben Franksen <ben.franksen at online.de>**20181203182424
Ignore-this: 9026c9068d961b6d2233aa17c17f6868e4c30bbd1acab560d6c8e812d9ea21e442ead5e7bb0ef95b
It now covers many more read-only commands and also checks with
--no-ignore-times (for those commands that support it). Also test that for
repo-changing commands we get a decent error message if _darcs is writable,
but either _darcs/index or _darcs/index_invalid is not.
]
[rollback of "resolve issue1959"
Ben Franksen <ben.franksen at online.de>**20181203181310
Ignore-this: d2a01578d01e78c05b7d39179b4e6118099da55c615c296fb8b87a13813d3fad7e978de7c85508d4
This change is unsound for several reasons. One is that catching permission
errors is unreliable as it can depend on the OS what kind of IOError is
thrown. Another issue is that catching these errors may hide problems for
repo-modifying commands like add and remove where we rely on the index being
updated or at least being invalidated properly.
]
[check writability of index when we start a transaction
Ben Franksen <ben.franksen at online.de>**20181116160959
Ignore-this: 5ce964d90ffa688b1a0f11a426d6439f7a6b24b884ea6136f9acfee69825c4bd67d506c58e6de41e
]
[Darcs.UI.Commands.Diff: work with a temporary copy of pristine.hashed
Ben Franksen <ben.franksen at online.de>**20181116204307
Ignore-this: b40d375b7cb2334070ae7459d96c2ca669341b081ccc937689138c18314a3547f89380bd88e170b7
This allows to use 'darcs diff' on a repo where we have no write access to
_darcs/pristine.hashed.
]
[fix: insert a valid date when creating anonymous named patch
Ben Franksen <ben.franksen at online.de>**20181116202605
Ignore-this: 69775e49e45c1591b6858c4580e882795524ba8a442d1be6b4874062444f96e285a828f972ac0f3c
Otherwise we get an exception when we try to e.g. display the patch.
]
[fix in darcs check: withTempDir -> withDelayedDir
Ben Franksen <benjamin.franksen at helmholtz-berlin.de>**20181121174541
Ignore-this: 2a4c73a0cb497de9f2f82b95e72bcc8015f955f327fe47590279c551415d73c68ea5a363cfe07da0
Every now and again darcs check fails for me because it tries to read a
patch from the temporary directory which doesn't exist any more.
]
[for Windows, use linkCount and createLink from unix-compat
Ben Franksen <ben.franksen at online.de>**20181203114756
Ignore-this: 95223a5a6557700b50829d1225f0ad03899d50badf9303ba454237cbd2ca2597cff82a2fb35f3beb
This requires lifting the lower version limit for unix-compat to 0.5.
]
[re-formulate the set-default hint
Ben Franksen <ben.franksen at online.de>**20181119181913
Ignore-this: d2d75b79526ecd4c1616935c5202cc86b44b088a178f3fe30910065cd79b14c6ce9de3ecbac762c0
Besides being worded in a less patronizing way, the hint no longer suggests
to "quit now" unless the command being executed is interactive.
]
[rollback of "remove the set-default hint" (patch d3dd6e750d102108c77188cb7d4a64a89e59d557)
Ben Franksen <ben.franksen at online.de>**20181119174953
Ignore-this: 9e3e5b240602c7a521ce096abda2ec258af15265f82f3e8be19f3cc0280c47a9779040e212d88ae7
]
[correct comment about witnesses
Ganesh Sittampalam <ganesh at earth.li>**20181125122913
Ignore-this: 6b6396aaf3b2a3708770b5d6c1b85a2
]
[Minor update to displayPath docs
Ganesh Sittampalam <ganesh at earth.li>**20181125120424
Ignore-this: 9d975180232db78d8198a6218bc40794
]
[use the Posix </> in anchorPath
Ganesh Sittampalam <ganesh at earth.li>**20181124230551
Ignore-this: 892bfb8901b737f0cf5f8c6aea1035fd
Otherwise we get things like ".\foo/bar" on Windows.
]
[increase format version of patch index to 3
Ben Franksen <ben.franksen at online.de>**20181118220405
Ignore-this: 22dc1b0c44d21b3c651d6960bfb98ab9bc0c7d60201f908e2c33eedc6bf275facc455c97e4964b11
This change reflects that the patch index now uses AnchoredPath instead of
the old FileName for all paths, and that has different Binary and Ord
instances.
]
[document and add property for explodePath(s)
Ben Franksen <ben.franksen at online.de>**20181118155544
Ignore-this: f2bb069f8fc291b47de0ed50b895f29ea1e79c688601f9c1bee02e82df319b4f8121a63511f5f156
]
[Test that the released patch index format is handled ok
Ganesh Sittampalam <ganesh at earth.li>**20181119175717
Ignore-this: 91d2df87348b292665416b056fb27123
]
[fix warning on Windows x64
Ganesh Sittampalam <ganesh at earth.li>**20181118215803
Ignore-this: 5e9ed110b360fb139a211c3024db0d59
]
[bump Win32 upper bound to support 2.4.x, 2.5.x, 2.6.x
Ganesh Sittampalam <ganesh at earth.li>**20181118215705
Ignore-this: 108c04577fedfe2b32355899a1291cc1
Although 2.7 and 2.8 are available, process doesn't support them
so there's no install plan to test with
]
[fix warning on Windows about GHC.IO.Encoding being unused
Ganesh Sittampalam <ganesh at earth.li>**20181118151951
Ignore-this: f3c95e40d32286558fd948c140407d34
]
[fix warning on Windows about noWorkingSendmail being unused
Ganesh Sittampalam <ganesh at earth.li>**20181118151752
Ignore-this: ee0649ed64a19e257f3453900dd6a833
]
[issue2605 test is currently failing
Ganesh Sittampalam <ganesh at earth.li>**20181118111030
Ignore-this: 57f3c4717ed827ec0989483a1a29a13b
]
[Windows fix for rebase-new-style test
Ganesh Sittampalam <ganesh at earth.li>**20181117105243
Ignore-this: 4273e412fc7fe16b15655b4930e4fdea
C:\blah is interpreted by tar as a network path, so we have
to pipe it input instead.
]
[Re-mark issue1461 test as failing.
Ganesh Sittampalam <ganesh at earth.li>**20181116154319
Ignore-this: 65df924ac46deea7e6bb8db657f78107
This test is intended to check behaviour on case-insensitive filesystems,
but could never work in practice. It passed by accident for a while on
Windows because it seems && doesn't interact properly with set -e.
Possibly this test should just be deleted, it's not clear what value it
could ever have.
]
[fix test for issue1923 after fix for issue2603 broke it
Ben Franksen <ben.franksen at online.de>**20181115163444
Ignore-this: b6bef74e36f1e46bb067f9a247bfa1902dd111667c01f541b73a6ac9eb3bba545c159b2ebd4dd11b
The fix for issue2603 adds a call to patchsetConflictResolutions on the
newly cloned repo. This procedure must look at the content of every patch in
the head inventory i.e. all patches after the latest clean tag. This
effectively forces these patches, so they are no longer lazy. So the bogus
sources that the test fakes for the new repo aren't even looked at. The fix
is simple: just record a tag after the single patch.
]
[resolve issue2603: warn and mark conflicts when cloning
Ben Franksen <ben.franksen at online.de>**20181114210030
Ignore-this: 4d617184171486dfdb64dcb87f81057896d0fd0f2db1d9f189ab8eb30fb7ecc494463966f9e69252
]
[accept issue2603: clone repo with unresolved conflicts
Ben Franksen <ben.franksen at online.de>**20181114203228
Ignore-this: b541ac623a22499592261783d33eaf90595ca51e331809e4d371bf8bf87d21ca4d7116290d409b12
]
[resolve issue2608: download _darcs/hashed_inventory separately
Ben Franksen <ben.franksen at online.de>**20181115151037
Ignore-this: c91fe671549da64b227d9a5b4934b4850e1994a06fd471ae8a89dc39ee4253b8278360f75acc4f23
]
[accept issue2608: clone via http with outdated packs
Ben Franksen <ben.franksen at online.de>**20181114151045
Ignore-this: f823da22aea74f94e578bb64763d3ed88109b4cb22c9b2c9d7cfb1f2c9b6c19449c661d93e3c16d5
]
[new implementation of http client based on http-conduit
Ben Franksen <ben.franksen at online.de>**20180925170311
Ignore-this: ebbdc5b96d2e6ca831e98991a4e6e7084a8f5ebf027219a9029daf689ea423b6387cf79d55f8b61c
This implementation does not use our self-written download manager in
Darcs.Util.Download, which is needed only to interact with libcurl. Instead,
speculating on a remote file is done simply by running the action in a
background thread (using async) and relying on the connection manager that
is supplied with http-conduit. This works pretty well and gives us the full
functionality (including HTTPS) in a portable manner, so I switched the
default for the curl flag in darcs.cabal to False.
]
[add missing space in new sources hint
Ben Franksen <ben.franksen at online.de>**20181018224932
Ignore-this: 6c44df16075cead72d67ea5a98ac176234dd87a8d9879742ff1b6238b23e1eae8d18deeeaeb4c101
]
[remove duplicate definition of invertCommuter as inverseCommuter
Ben Franksen <ben.franksen at online.de>**20181031160755
Ignore-this: 805b23e32cfafa5b956b34214a043702ce7cd910a30d455489cd5be81ba14ef29acf21f94b6c6506
]
[remove the "darcs failed:" from error messages
Ben Franksen <ben.franksen at online.de>**20181004233919
Ignore-this: df75d0f9596719f1092e2e4b7d5fbc83b704e8d6062942ed50fb4e8808ce576af32069a61f90bac1
Most error conditions reported by darcs are due to invalid input from the
user, or indicate non-existence of things (patches, files, ...). It makes no
sense for darcs to take the blame for that, which is what the phrase
suggests to me.
]
[remove the set-default hint
Ben Franksen <ben.franksen at online.de>**20180929200330
Ignore-this: 19ec7bd06f5fde0e4def775f2c53488d876528ff0183bde1a8baac573d611b35b15f5abb9b41125
This hint was probably added when we changed the default for push and pull
to --no-set-default, so that users could get used to the new behavior. This
has been many years ago and the hint nowadays looks rather strange and just
causes confusion for newcomers or casual users. A by-product of this change
is that the code for handling --set-default gets a lot simpler.
]
[remove hint "Do you have the right URI for the repository?"
Ben Franksen <ben.franksen at online.de>**20180929201618
Ignore-this: ee37b73da77dd05e95a02bc07c8b09c0
This hint serves no purpose at all. We already told the user the name of the
repo and that we don't recognize it as one. What more is there to say?
]
[re-formulate the bad sources hint
Ben Franksen <ben.franksen at online.de>**20180929164218
Ignore-this: 285adfa71d31af2774098b4050298dee
First, it no longer shouts at the user. Second, instead of saying what the
user "should probably" do, we give a clear recommendation, but make it
conditional on circumstance (the user may want to keep the source if they
plan to restore access to it).
]
[bugfix in Darcs.UI.Completion
Ben Franksen <ben.franksen at online.de>**20181022100152
Ignore-this: 7de11c6d428c69126cb4a93d6f84523b7974c8bae77bcc1b11a8bc873b47d4cb506800adbbbd2e10
Since we use anchorPath "" now to convert AnchoredPath back to FilePath, we
must not 'drop 2' from the result.
]
[resolve issue2604: remove --reply and related options
Ben Franksen <ben.franksen at online.de>**20181012230927
Ignore-this: 95ca795c7cb43c7400f23da7256516130bb730069129bc7d83bb43e73c2f5eeaca02c19423c9bf4a
The options are: ccApply, reply, happyForwarding and were supported by the
apply and push commands. This patch removes all conditional compilation from
Darcs.Util.Compat. It also removes the dependency on the random package when
building for Windows.
]
[disentangle D.R.State.filteredWorking
Ben Franksen <ben.franksen at online.de>**20181002212643
Ignore-this: 366cca7d58b10eb1437fec6dc11c9e2a79d59d3a7173967b6a40bb41b98b35f554c30c115b231e32
Swapping the order of the cases and then trying to pull out applyTreeFilter
relevant made it apparent that
(a) using the index in the IgnoreIndex case can be replaced by passing the
pending_tree instead, and
(b) applyTreeFilter relevant was missing in the UseIndex+ScanKnown case.
]
[accept issue2605: darcs crashes with duplicate patches
Ben Franksen <ben.franksen at online.de>**20181028134718
Ignore-this: d84ccf2439799ee9122e3dcdcf40fb9c4d97ae35d5dc035c509591ca8e689d1beb8d78d819f2ca3c
]
[fix in test script: pull "cd .." into if block
Ben Franksen <ben.franksen at online.de>**20181021220011
Ignore-this: 9c3069bc621a22c9f19906ba4aafcb7ed421220a69f3468955439e0402930dbd2e5a75edda4c819b
This was broken by patch e8d4e47572b175ea769524d5e09b86464eba7a4e
* fix: fail if pending patch cannot be parsed
]
[move cache related global variables to D.R.Cache and make them thread-safe
Ben Franksen <ben.franksen at online.de>**20180929163553
Ignore-this: b71850c7ac907031bf0f2e3ce755f276
The two global variables are reachableSourcesList and badSourcesList and
they are exclusively used by D.R.Cache. So it seems cleaner to me to
encapsulate them in the same module. They use MVars now to make access
thread safe. While apparently the code seems to work with IORefs, the cache
functions /are/ used from multiple threads, so MVars are the safer option.
]
[fix in harness: don't suppress output from failed HUnit tests
Ben Franksen <ben.franksen at online.de>**20181011074925
Ignore-this: 23ee906a82e661bf4b3d3bf5255ce95e03c903f3dfd0c28eab57e0c373f00c3aa6dead050b95faf7
]
[improve help for _darcs/prefs/sources
Ben Franksen <ben.franksen at online.de>**20181001084604
Ignore-this: 1058b458aeb633e6c666a779efb6c0e1da902f080937d7ab7d553cc20864be2c590b61a0e4a5c646
]
[add subcommand 'darcs help preferences'
Ben Franksen <ben.franksen at online.de>**20180930172751
Ignore-this: eea87073ad1904696dc1cf14ae2e0692f40620ce8425a1f8a8581b4ddc0ca1c1be055b840695c53f
This is exactly the same as the chapter in the manual, slightly re-formatted
for terminal output.
]
[update help for defaults file(s)
Ben Franksen <ben.franksen at online.de>**20180929112300
Ignore-this: d84a7d7b8521c8b08927e6c7d010b731
The information given there was partly out-dated.
]
[output patch apply success message with putInfo
Ben Franksen <ben.franksen at online.de>**20181012231728
Ignore-this: d4fa0b2d678ce87502ad4247e84a3b0fbc293f789db747613f5a566ebd91a3341ca926c3b2756793
]
[print remote execution failure message to stderr
Ben Franksen <ben.franksen at online.de>**20181012213658
Ignore-this: 503c5d9b507d60924df276a19efa4be8897c9038ae83368a484df90e1db47470cc4f7838b8cd3ca8
]
[remove TypeOperators language pragmas
Ben Franksen <ben.franksen at online.de>**20181012212755
Ignore-this: 31cdee26042be7f7535f3016e6debf4f3c735ba696d597119bafb92a8b5e27c5a0dd548b922d56ff
This extension is already globally activated in the cabal file.
]
[use anchoredRoot instead of AnchoredPath [] in index code
Ben Franksen <ben.franksen at online.de>**20181008172306
Ignore-this: f261343e462904df374d74a09eb75322e36cc1da3f2537dc5a7737c742beeb9a59a5c142624690b
]
[rename repodir to repourl in D.R.Clone
Ben Franksen <ben.franksen at online.de>**20180930210635
Ignore-this: 641d3c6fc205502c231429d5144cf91fda3edeb8ec757378a01506b6c32d0a122352644ea60ac1ea
]
[import MVar from Control.Concurrent.MVar, not GHC.MVar
Ben Franksen <ben.franksen at online.de>**20180930172656
Ignore-this: 5dc6d9aa0a272a6593174278c6e83712aebc42170ef6d48f2fd9073821c1d6fc8e3a2e05fa06b21b
]
[D.P.Match: layout changes to avoid overlong lines
Ben Franksen <ben.franksen at online.de>**20180923174752
Ignore-this: 607cfd8e704e83e5d59f6e0f221f8f97
]
[fixed typo in doc comment
Ben Franksen <ben.franksen at online.de>**20180923174723
Ignore-this: b448b80144e5fe6be83a605a69a5269
]
[avoid importing Data.ByteString.Internals
Ben Franksen <ben.franksen at online.de>**20180923172517
Ignore-this: 5d667b6523d57d82664ddc3c5a03a76f
Even though here it was only for the c2w function, we should reduce access
to BS internals to the absolute minimum necessary.
]
[add doc comment to commuteNoConflicts member
Ben Franksen <ben.franksen at online.de>**20181016075318
Ignore-this: 39fa265ca878ec303331cc76839690626f54075644836452c789234f7d28739977060bc2aa51a9eb
]
[patch index: re-format getRelevantSubsequence
Ben Franksen <ben.franksen at online.de>**20181015070058
Ignore-this: 60d62e666c5c3d0d41119b2643fd3cc1c44b207db492a82f0ae89c5381f8f896c9a0eb882aebf10f
]
[patch index: beautify layout of data definitions
Ben Franksen <ben.franksen at online.de>**20181014090646
Ignore-this: 5c7670588e7557a900a87304d6b4b63a313f9c367be86f0d21b2d34113a9ce8697fe51bb4e0fc35c
]
[patch index: replace fn2fp with displayPath
Ben Franksen <ben.franksen at online.de>**20181014090111
Ignore-this: ba08371018fffd2957a8616c50e91233e75c752557a12a6ad6bb8d56d405d4cfdf58da2ff12c5aff
]
[patch index: clean up import and export lists
Ben Franksen <ben.franksen at online.de>**20181014085600
Ignore-this: 384f78dd7cf592b3a0e918338fa1a8b7a5b6e5e4ece20896cca4756d02812eddf132623e2d6f654e
]
[add progress reporting to patch index
Ben Franksen <ben.franksen at online.de>**20181014083856
Ignore-this: d6caeb553930ada3e7c4ae4f6fa99130bb30478e07b0e0e9df7962465fb3dff31e36c148727d6609
]
[clean up code layout in Darcs.Patch.Index.*
Ben Franksen <ben.franksen at online.de>**20181014082408
Ignore-this: 81aafc2e3b2906efadc0f92e63ba56eb82b02861bfed572ed8bfee92aed8e1d3b0a1ac336c4a57ed
]
[fix in patch index: use removeFile, not removeDirectoryRecursive to remove noPatchIndex
Ben Franksen <ben.franksen at online.de>**20181014082907
Ignore-this: e7aae98873b4c7a3f83536b2228cedc8de9ed534413f2ea7caa4e303d165bd884c7cf1d9c617ec8
]
[fix in patch index: avoid generating repeated move patch mods
Ben Franksen <ben.franksen at online.de>**20181015070530
Ignore-this: 5f246dec28097e7d82880012fa61dcecb782eb181c91bb8bb3d6d3300dfbbed34833da3548f11816
This regression was due to a mistake in the AnchoredPatch refactor.
]
[adapt a test script: darcs no longer fails to detect this move
Ben Franksen <ben.franksen at online.de>**20181012200829
Ignore-this: ad85570badfc7869b787b22eca3ebafc17a8084c3f99981642111298d30857d2a4d559435a3763ba
This was fixed by the FileName->AnchoredPath cleanup. I have no idea how or
why in particular, except that we save a lot of tricky Char/String fiddling
some of which may have been buggy.
]
[bugfix in remove command: don't allow removal of root
Ben Franksen <ben.franksen at online.de>**20181013192349
Ignore-this: d750b33928bd5db447f67b0491866a0b72fab222fc9a38eda0e7df01e75732d6b91eabfac9604856
This will otherwise create an invalid pending patch causing subsequent darcs
invocations to crash.
]
[bugfix in whatsnew: must use chooseTouching, not choosePreTouching
Ben Franksen <ben.franksen at online.de>**20181009110101
Ignore-this: 9048dafd0e2f4f2a07f9096a556517a27c0979d1dd2b7d678d97d4a17719f432c62b75486c7c9102
This bug was previously hidden because the old effectOnFilePaths did not
always do the right thing. I trust the much simpler version that works with
AnchoredPaths more that the old version that fiddles with the String
representation. chooseTouching also makes more sense when you think about
it: if we invert the patch that adds the new files then its effect on the
paths is to remove them; thus choosePreTouching removes the interesting
paths from its input before it calls chooseTouching, which gives us wrong
results (now).
]
[improve wording of warning message in maybeFixSubPaths
Ben Franksen <ben.franksen at online.de>**20181013225723
Ignore-this: bc539b5d6e5d0c5783d0c157b4078a3f1878ac48ded39eeaa74a5d591a37dae163910373cd217fd8
]
[fix: fail if pending patch cannot be parsed
Ben Franksen <ben.franksen at online.de>**20181011000440
Ignore-this: b471afc641930b77419f83273225c7fcc8de7ab0c1999aceccac389f30e92ccf5f7b794ed8fa9cd3
The previous behavior was to silently ignore pending. This is bad because we
want to know if the pending patch is corrupt. Note that parsing is now
stricter and requires the leading "./". This invalidates some of the tests
for darcs repair since we cannot record a pending patch with an invalid
file path.
]
[make test script independent from the order in which prim patches are offered
Ben Franksen <ben.franksen at online.de>**20181012200408
Ignore-this: 86430d193e96149c52111830861a788557e2c3e74dcba80241b0b173e8296a3693df98d05943c987
The specific sorting order for prim patches in a record or amend is
something we never specified (and I guess we don't want to do that), so our
tests should not rely on it.
]
[make some test scripts more robust against change in wording of messages
Ben Franksen <ben.franksen at online.de>**20181012125518
Ignore-this: 1e73f8551767f39caf4120e1874bd3528a5acb353b6dbccb6e721e714b49eb8d1836965feb6142b6
It shouldn't matter whether darcs says "We have conflicts..." or "There are
conflicts..." etc.
]
[rename FileName to AnchoredPath and remove the type synonym
Ben Franksen <ben.franksen at online.de>**20181011212536
Ignore-this: 884cf842b0855404bb9300f92aaac123040e122ca3963ce4fef20880ff80ac8789379834ed1d2561
]
[use AnchoredPath instead of FileName for internal path representation
Ben Franksen <ben.franksen at online.de>**20181011211834
Ignore-this: 4a62454e764a04280bc2fe153fce932dc5e5f555e8629be860c5e261167434e5e2ecf3564f551d8
This is a large patch that touches many files. I have tried hard to make
reviewing it as easy as possible by avoiding changes that aren't necessary
to achieve the goal. For instance, in this patch, FileName is still used but
is a synonym for AnchoredPath. I have resisted the temptation to include
cleanup changes, except where it was necessary for me to make sense of
existing code.
AnchoredPath is now used throughout, from the UI down to the patches
themselves, for all paths that potentially reference user content in a
repository. This means paths under _darcs are /not/ included, and neither
are paths /to/ a repository or a cache or other files not under darcs
control.
Arguments from the command line are sanitized and converted to AnchoredPath
early on. This is now concentrated in two routines: pathsFromArgs, and
pathSetFromArgs, see their documentation for details. We convert to FilePath
only for IO operations or for display to the user.
Parsing of prim V1 patches is a bit stricter now: it fails if paths are not
explicitly relative i.e. start with "./". The standard constructor for the
Name type (makeName) now checks that the invariants aren't violated, that
is, a Name is never empty, ".", or "..". Unfortunately, the index code still
needs to use unsafeMakeName because it violates these invariants, at least
temporarily.
]
[handle binary patches in applyAndTryToFixFL (for prim V1)
Ben Franksen <ben.franksen at online.de>**20181018192647
Ignore-this: f1d85fc00500c489122222d183c05db3ea6c118b6f5f7dd61db26465191d2941bffb56a07b6f36aa
Darcs's conflict resolution of binary patches is completely broken.
Apparently, it leaves pending in an inconsistent state which then gets
recorded by unwitting users. This happens a lot lately where I work.
With this patch I can at least use 'darcs repair' to fix the broken repos.
]
[fix nonsense cases for decoalesce
Ben Franksen <ben.franksen at online.de>**20181017075132
Ignore-this: d358e0a62ba953deb90c465a9de6ea5b1a4ebf68c54a0d7190de4c7334a8c7e8d54c3d83779afd62
]
[add test that decoalescing a move works properly
Ganesh Sittampalam <ganesh at earth.li>**20181016173931
Ignore-this: b29b3df0f261b383b7ef147e4615126b8b3e8489183edaaad0118e72933c47b21eb9fbbaa36884c7
]
[delete commented out code
Ganesh Sittampalam <ganesh at earth.li>**20181017054933
Ignore-this: 141d9e1511190a3bc6dd0d60c263a356
]
[move mangleUnravelled to new class PrimMangleUnravelled
Ben Franksen <ben.franksen at online.de>**20181003184913
Ignore-this: 1ba0a4b9437bc75f58db069ed33277c4067516fe61fa9da92d2706fe6232ecd3b8fcb2029724071
This refactor serves two purposes: First, we isolate yet another bunch of
code that heavily depends on Prim.V1, similar to the recent introduction of
PrimSift. Second, while this is support code for generating the conflict
resolution markup, it is not related to conflictors or conflicts per se; in
fact, it works on and uses only features of prim patches.
]
[remove excessive debug output in D.R.HashedIO
Ben Franksen <ben.franksen at online.de>**20180930172235
Ignore-this: e874542daf908b7bbbd67aa6fa1636b5f42799d1a6f2c01f187b11495532282d1de5b1da39eceffd
]
[eliminate hard-coded repo paths from the UI layer
Ben Franksen <ben.franksen at online.de>**20181003185748
Ignore-this: f90032e9a8e52b7f3fc55295befa08f03ac3fede42a495a2b0c91feda1b963431ae757f6c2f48010
There is one exception in darcs convert where we create a "marks" file
inside _darcs but I guess this is an ad-hoc addition.
Note that this is the first time this operation of concentrating repo paths
to a single module actually pays off: in the convert implementation we used
a wrong file name _darcs/tentative_hashed_pristine (the correct name is
_darcs/pristine.tentative). So this also fixes a bug.
]
[fix in output of log command
Ben Franksen <ben.franksen at online.de>**20181007165339
Ignore-this: 1c8666e31ec6b5103bad9b9864b09faa70849f2e357350e75b11ed7345d912f39f823dc9b643ed80
I think the 'not' here got lost during a refactor.
]
[rename test for issue1702 to mark as failing
Ben Franksen <ben.franksen at online.de>**20181011221811
Ignore-this: 7520b0434b9aad32d36aca23914164e765bc3843dcaeacee7c8df5ebd349c2b63b91b1fd34188dfa
]
[fix typo in test comment
Ben Franksen <ben.franksen at online.de>**20181011095256
Ignore-this: 8b2d09eb719fea4c38420d15ea286fc0225f3ba56e0cb97876547eb06d91214c8e6b4bdb1a12d14f
]
[bugfix in identifyRepositoryFor
Ben Franksen <ben.franksen at online.de>**20180930170316
Ignore-this: 294bceca658be9156aea2fb1092c428
The problem may be due to a misunderstanding on my part when I refactored
this code for the first time. The first parameter is not necessarily teh
source and the second not necessarily the target. In fact, these roles are
different for e.g. push and pull. Instead, the first is the local repo and
the second is the remote one. To call transferProblem correctly requires
that we know whether we are going to read or write so we pass that as an
additional argument.
]
[fix test for issue1702
Ben Franksen <ben.franksen at online.de>**20181003182115
Ignore-this: 5ba08d9e367248f2f01b157503871de14a8b3066924c20dab76c28af94bd61a0fc34a6d8db45ba20
This test was completely broken and therefore always skipped.
]
[throw away test repo dirs before running test
Ben Franksen <ben.franksen at online.de>**20181003145126
Ignore-this: b7f0639cba50a400e3c1a5b8a5cb8d703906be2d64322c3771d24edce5f9703838f1f86fbb65a205
]
[fix location of global cache dir in tests
Ben Franksen <ben.franksen at online.de>**20181003144928
Ignore-this: 9b0ea47155c51b4ec56369281f50bb309df8cc2b9f7e57a889dae0e42831b3da9a7ad054ddd7c88f
]
[fix in tests/lib for parallel testing
Ben Franksen <ben.franksen at online.de>**20181003143651
Ignore-this: caeba3eb6860a6573d7512974f8539131c58113b6cf883e3c0836ca16669f778a2eb26f4468eeee9
]
[resolve issue1959: catch permission errors when accessing the index
Ben Franksen <ben.franksen at online.de>**20181002230526
Ignore-this: 2477c259bf7e9998c699b56a13dccc2187839f5271be678f85e6f2c86bc102e313526f4799d14da9
]
[fix: don't throw away pending in 'optimize upgrade'
Ben Franksen <ben.franksen at online.de>**20180922154303
Ignore-this: c3c6175aeec5aa523bca344542a5dadf
There is really no need to do that since pending isn't hashed anyway.
]
[cleanups in D.P.Named.Wrapped and D.P.Rebase.Container
Ben Franksen <ben.franksen at online.de>**20180923165257
Ignore-this: 3bb837839402225f08a6a98845817561
This mostly removes or fixes outdated docs.
]
[use cryptonite instead of cryptohash and random
Ben Franksen <ben.franksen at online.de>**20180921142554
Ignore-this: 331cdff4ee3a495fd0c8fbcb2a2563d5
This also replaces our own implementation of SHA1.
It is unfortunate that we have to add the memory package as a dependency
but there is currently no other way to get at the content of a Digest.
]
[fix ./tests/network/issue1932-remote.sh
Ben Franksen <ben.franksen at online.de>**20180918020909
Ignore-this: 6880443e0790ca5878d66d8f48ba4bee
The error message from ssh has slightly changed. We now test it in a more
tolerant way.
]
[include clone command in test for new-style rebase
Ben Franksen <ben.franksen at online.de>**20180923171442
Ignore-this: eced0894ee72c548e10975cb771b12d9
]
[fix error messages for clone/transfer from repo with old-style rebase in progress
Ben Franksen <ben.franksen at online.de>**20180923171927
Ignore-this: 38e289ce63daf097136a68beabbea4be
]
[add new repo format new-style-rebase-in-progress
Ben Franksen <ben.franksen at online.de>**20180922212954
Ignore-this: 3079b6c35835cc0dec6bdd0b4e519083
]
[factor yet another bunch of repo paths to D.R.Paths
Ben Franksen <ben.franksen at online.de>**20180922153612
Ignore-this: 4be35b34f99043bb88979727aa0c7a6
]
[avoid needless String/ByteString conversions when reading format file
Ben Franksen <ben.franksen at online.de>**20180922122839
Ignore-this: d9ebfdc76eda57e29f7dba52b122f0af
]
[adapt rebase tests to new style of storing rebase patch
Ben Franksen <ben.franksen at online.de>**20180923130710
Ignore-this: 837a29cce94a5b868cf29ee568a73385
It is now okay to transfer patches between repos with new-style rebase in
progress; these operations ignore the rebase patch.
]
[reliably fail if we detect that an old-style rebase is in progress
Ben Franksen <ben.franksen at online.de>**20180920135615
Ignore-this: fc4023a78ddae501af398916c1b4554f
The trick is to check if the repo type is tagged with SIsRebase, which means
that the repo format has rebase-in-progress, and then count the suspended
patches in the new-style rebase patch. If it is zero we can assume that we
have an old-style rebase in progress.
While the check itself is simple, making sure it is called with the right
parameters at the right time is not. One problem is that we must make an
exception for the 'rebase upgrade' command. This is achieved by adding a new
kind of RepoJob (OldRebaseJob) just for this command. A further complication
arises because startRebaseJob is called with an SIsRebase-typed repo
regardless of whether a rebase was in progress initially or not. In this
case we cannot decide whether to run the check based on the repo type alone,
but instead have to (re-)test the format stored in repository token.
]
[add command 'rebase upgrade'
Ben Franksen <ben.franksen at online.de>**20180919201151
Ignore-this: 2336365ca25c08b3366c2a05f2a6ac8
This required a few additional refactorings mostly in D.R.Hashed. We lift a
local function to the top level that (lazily) reads the patches from a
single inventory. Since this does not return a PatchSet but only an RL of
PatchInfoAnd, we can generalize it to return PatchInfoAndG and so can be
used with WrappedNamed instead of Named. The WrappedNamed has been
resurrected and largely cut down to what is needed for this single purpose.
]
[use englishNum for correct grammar in rebase status line
Ben Franksen <ben.franksen at online.de>**20180919231029
Ignore-this: cfca8a805b760612c7ddef031445daef
]
[add PatchInfoAndG which is polymorphic in the named patch type
Ben Franksen <ben.franksen at online.de>**20180919095655
Ignore-this: aa2fdfd81cb236f2db7886dcbc7fb7cc
The standard PatchInfoAnd is now a type synonym that fixes the named patch
type as 'Named'. Unfortunately this required the addition of Eq2 constraints
in lots of places.
The goal of this generalization is to be able to convert old-style rebasing
repos, for which we need to read PatchInfoAndG with a simplified version of
the old WrappedNamed as the named patch type.
]
[remove the WrappedNamed layer
Ben Franksen <ben.franksen at online.de>**20180918171323
Ignore-this: 2f29e084bd43127dcda265f3729ee882
]
[two fixes in clone and convert import commands
Ben Franksen <ben.franksen at online.de>**20180918021046
Ignore-this: 151345be0c286e0ef17c07cb67593fe0
The bug was in both cases that finalizeRepositoryChanges was not correctly
paired with revertRepositoryChanges. This was exposed by the new way of
storing the rebase patch, which crashes when it tries to rename the
tentative rebase patch back to its final version.
]
[store rebase patch at the repo layer instead of mixing it with normal patches
Ben Franksen <ben.franksen at online.de>**20180918170040
Ignore-this: b53e98ddc25a3b21a5a30eb552e1f5b0
This does not yet do away with the WrappedNamed layer and the
RepoType/PatchType cruft, which will be done in a second and third step.
Some tests now fail which is due to bugs which are only weakly related to
the change made here, so will be fixed in a follow-up patch.
Note that this changes is incompatible in that previous versions of darcs
can't handle a repo with a new-style rebase in progress and vice versa. This
is something we cannot avoid unless we keep all the old code around, which
would reap us us of most of the benefits we get from this change.
]
[move more repo paths to D.R.Paths
Ben Franksen <ben.franksen at online.de>**20180702165826
Ignore-this: 8d1d58ce13ee439349aaffd04d956dba
]
[fix updatePending and rewrite docs
Ben Franksen <ben.franksen at online.de>**20180826172620
Ignore-this: 83074870244355839343b5df4147662
The previous specification and implementation was invalid, because it did
not take hunk splitting into account. This resulted in crashes when we use
interactive hunk editing with a non-empty but unrelated pending.
]
[simplify decoalescing and add all missing cases
Ben Franksen <ben.franksen at online.de>**20180922090228
Ignore-this: 2d01ab230c49ea50f29d60620f146078
Decoalescing can /almost/ be defined as decoalesce x y = coalesce y^ x.
There are only a few cases that need to be handled specially, see comments
in the code for details. The simplified implementation can now handle hunks
and token replaces, too.
]
[clean up imports in Darcs.Patch.Ident to avoid warnings
Ben Franksen <ben.franksen at online.de>**20180917115841
Ignore-this: 432ee51baa22ac2711e83bba3a24ef75
]
[add class Ident to abstract over patches with an identity
Ben Franksen <ben.franksen at online.de>**20171029221412
Ignore-this: 4fc76e8ecaca72ffc59c9f54e0444788
This change is a preparation for the addition of identifiers to prim
patches, so we can use the same algorithms for them.
]
[document D.P.V2.RepoPatch.allConflictsWith
Ben Franksen <ben.franksen at online.de>**20180524155330
Ignore-this: 947153a5cc6415fd3c317e913b71d391
]
[added foldRL_M, foldwFL, and foldwRL, renamed foldlFL/RL to foldFL/RL
Ben Franksen <ben.franksen at online.de>**20171101004239
Ignore-this: 36ac70895a164b1f81af8cbd463b20a
First, the renamings (removing the 'l') have been made because (a) the name
is wrong for RL, which is actually right associative, and (b) because these
are both the "natural" folds, i.e. the ones that replace the cons operator
with a function.
The other functions aren't used, yet, but will be used in the upcoming
addition of RepoPatchV3. The 'w' variants allow the transformation of
witnessed values, they are similar to foldRL/FL_M just not monadic.
]
[clean up partitioning functions and export primed versions
Ben Franksen <ben.franksen at online.de>**20180914070022
Ignore-this: 37e53e60e2aedb777502f7b3c2e44c48
The primed versions have been slightly modified in that they do not reverse
the result, leaving that to the caller, if needed. Also, partitionRL' now
returns a middle part similar to partitionFL'.
The implementation is now slightly optimized: instead of trying commute
first and only commuteWhatWeCan if that fails, we can use commuteWhatWeCan
right away and pattern match on the dependencies.
]
[layout fixes and a trivial refactor in D.T.P.Check
Ben Franksen <ben.franksen at online.de>**20180915075933
Ignore-this: 453ec8305f86cd2fe939c7b7d51f1c4d
]
[more informative output when permutivity tests fail
Ben Franksen <ben.franksen at online.de>**20180908210028
Ignore-this: bb552561a48ea4cc8c247fa5214ed515
]
[move mergeEitherWayValid from V1Set1 to Generic
Ben Franksen <ben.franksen at online.de>**20180502071708
Ignore-this: 2c925f24883f80cfe7b6e0e2bc91b57e
]
[fix comment and remove out-commented code in D.T.P.A.PrimFileUUID
Ben Franksen <ben.franksen at online.de>**20180502065405
Ignore-this: dc1ca6f29eae22a0142fea3f16cd87d2
]
[reformat parts of D.T.P.Arbitrary.Generic to avoid overlong lines
Ben Franksen <ben.franksen at online.de>**20180502065049
Ignore-this: b452772137b0382324ff993713766a0
]
[fix accidental module name change in import list
Ben Franksen <ben.franksen at online.de>**20180914210037
Ignore-this: 3f2effe014b59f6ce2c548cbe70825e4
]
[document laziness of commuter functions and slightly improve commuterRLFL
Ben Franksen <ben.franksen at online.de>**20180911184016
Ignore-this: 34e7f8b5428b88321be57de62093f869
The result lists of commuterRLFL are now produced in an alternating fashion,
so that both can be consumed lazily (from head to tail).
]
[make Commute a superclass of CommuteNoConflicts
Ben Franksen <ben.franksen at online.de>**20180911220005
Ignore-this: 1b0320b60ba26eb2638dd5848589d239
]
[make CommuteNoConflicts a superclass of PrimPatch
Ben Franksen <ben.franksen at online.de>**20180908165001
Ignore-this: 722e6ad73533f93801d5437ff2dcd4f8
This allows to use mergeNoConflicts for prim patches. An alternative would
be to scrap CommuteNoConflicts and instead add commuteNoCnflicts to the
Commute class.
]
[use generic commuter functions to scrap boilerplate
Ben Franksen <ben.franksen at online.de>**20180908143225
Ignore-this: 2c538f1c8f85f79709fe21a05fc00242
]
[factor CommuteNoConflicts to its own module
Ben Franksen <ben.franksen at online.de>**20180908111336
Ignore-this: c9bc4844fa5d5d9008a9628ca067f4e0
Also improved the documentation for it and for mergeNoConflicts.
]
[replace D.UI.C.Util.repoTags with D.P.Set.patchSetTags
Ben Franksen <ben.franksen at online.de>**20180718224724
Ignore-this: e6d6c3babd5ad98051284c7f4f9582b6
Also remove unused functions 'tags' and 'patchSetfMap' from D.P.Set.
]
[avoid access to PatchSet constructors where possible
Ben Franksen <ben.franksen at online.de>**20180611181705
Ignore-this: b7f88c9dccf9f50ed35824b06d452882
This includes the full UI subsystem but also parts of Patch and Repository.
]
[moved inOrderTags from convert command to D.P.Set
Ben Franksen <ben.franksen at online.de>**20180611171952
Ignore-this: ec6700455ba8bb3d51f0190c6bbdb748
]
[resolve issue2599: don't bother to update pending when cloning a repo
Ben Franksen <ben.franksen at online.de>**20180722154649
Ignore-this: 76090c1f10b3e4cf8c5c294d741214bd
]
[replace our rmRecursive with removeDirectoryRecursive from directory package
Ben Franksen <ben.franksen at online.de>**20180901093655
Ignore-this: 95f9308013bf8a20ab4081d240f6db7
This function has been fixed not to follow symbolic links since
directory-1.2.2.0, so we no longer need to roll our own.
]
[replace most calls to getDirectoryContent with listDirectory
Ben Franksen <ben.franksen at online.de>**20180715124309
Ignore-this: 7917d3ab42a320fe8ef6611a2ecafc98
This function has been around since directory-1.2.5.0 (we currently require
at least 1.2.7). Using it lets us avoid manually filtering out "." and ".."
entries.
]
[fix and extend docs in D.P.Depends
Ben Franksen <ben.franksen at online.de>**20180831115240
Ignore-this: 6115a88869884e9ea6521c62f9619588
Most importantly, the definition of terms now corresponds to what the code
does. This patch also adds a number of comments to the implementation of
some tricky functions, like taggedIntersection.
]
[simplify Darcs.Patch.Depends.slightlyOptimizePatchset
Ben Franksen <ben.franksen at online.de>**20180718163143
Ignore-this: e2309611f83acff1a1dc40aaab3a07be
]
[improve docs for crudeSift and v1siftForPending
Ben Franksen <ben.franksen at online.de>**20180827165549
Ignore-this: 18a6434d795d72bb5cbc7e49dd4c1405
]
[simplify v1siftForPending
Ben Franksen <ben.franksen at online.de>**20180827165528
Ignore-this: ad28511cb3e006aaec594fc505a67980
Using the Maybe monad here is completely unnecessary.
]
[simplify definition of local function sift
Ben Franksen <ben.franksen at online.de>**20180827165039
Ignore-this: a0aac43bf64c452c789b38e9a5fc2bbc
]
[move code from D.P.Prim.Sift to D.P.Prim.V1
Ben Franksen <ben.franksen at online.de>**20180827093641
Ignore-this: be2dd09f9b9003632e7ed182b02be74f
]
[extend and polish test script for issue2548
Ben Franksen <ben.franksen at online.de>**20180828093152
Ignore-this: 86b36d3f6d3d02fd0f6899a8f7b5f83b
]
[treeDiff: abbreviate 'anchorPath ""' with a local function
Ben Franksen <ben.franksen at online.de>**20180828091242
Ignore-this: bed0e8761895410a5423d96dea0488ba
]
[add comment to explain how treeDiff handles file vs. subtree removals
Ben Franksen <ben.franksen at online.de>**20180826172551
Ignore-this: ad166f87bcfc6d37901a7f7ed1844cea
]
[tests: add a missing shebang for bash interpreter
Ben Franksen <ben.franksen at online.de>**20180828091453
Ignore-this: 567e1de09e82e7da735e0ad2417bdea0
]
[tests: remove trailing removal of repo dir
Ben Franksen <ben.franksen at online.de>**20180827164952
Ignore-this: b1e1a62f20962a5e86914cbbffb6c3cf
]
[tests: remove duplicate definition of shell function 'not'
Ben Franksen <ben.franksen at online.de>**20180827164900
Ignore-this: c7905c8c24c0363edff68d4f7fd4bebe
]
[simplify canonizeFL for V1 prim patches
Ben Franksen <ben.franksen at online.de>**20180827150922
Ignore-this: f398b9febaaa8d5509a8506c4b7aaed5
]
[consistent naming for "working tree"
raichoo at googlemail.com**20180716163939
Ignore-this: c2ad7855940a5d4b1f96039b5c2913e2
]
[resolve the symmetric case for issue2548, tightened and extended test script
Ben Franksen <ben.franksen at online.de>**20180826103413
Ignore-this: 7fb95425e3b2183d317c9cab48eb2a6
The test script previously specified only that the unrecorded changes that a
'record -l' sees are consistent i.e. addfile or adddir but not both. We now
require that the state of the working tree wins over whatever is in pending.
This is justified because when the user issues 'darcs add' she does not
specify whether to add a file or a directory, so whether pending has an
addfile or an adddir is incidental.
]
[remove extraneous emptying of file object in treeDiff
Ben Franksen <ben.franksen at online.de>**20180826091815
Ignore-this: 27f4814b7579c5ff00bc0cb2b2ded7c2
The fix for issue2548 correctly added an rmFileP patch in the case where we
detect a file that is changed into a directory. However, the rmFileP already
contains a patch that makes the file empty, so we don't have to do it again.
]
[document lazyness of spanRL, breakRL, takeWhileRL
Ben Franksen <ben.franksen at online.de>**20180825151125
Ignore-this: 95dff617e95e97e89565f2e2ad73c615
]
[avoid warning in D.R.State on non-Windows OS
Ben Franksen <ben.franksen at online.de>**20180825084425
Ignore-this: ae818ac8646082bbfd4cd1c172e3455
]
[avoid warning in Darcs.Prelude for base < 4.11
Ben Franksen <ben.franksen at online.de>**20180825084314
Ignore-this: 3629d5ec5f94691831d7bed8d356d05f
]
[rolled back an accidental semantic change in record
Ben Franksen <ben.franksen at online.de>**20180825133656
Ignore-this: 3872d779f9d8d760adfed122b883d0f6
]
[add docs for tentativelyRemoveFromPW
Ben Franksen <ben.franksen at online.de>**20180825111821
Ignore-this: 6004860fa0eb1be65b8d171bf8be3e3c
]
[re-add docs to explain what tentativelyRemoveFromPending is used for
Ben Franksen <ben.franksen at online.de>**20180825111644
Ignore-this: e3e6777c0954889f6c96834660e14ff
]
[tightened repo witnesses to demand wR~wT for more functions in in D.R.State
Ben Franksen <ben.franksen at online.de>**20180825091243
Ignore-this: e3eff4f91c0ee52fa8d075b481d67531
This started out with readPending and propagates to
readPendingAndMovesAndUnrecorded, readUnrecorded, readUnrecordedFiltered,
readRecordedAndPending, readIndex, updateIndex, getMoves. Requires a small
code change in finalizeRepositoryChanges and a corresponding tightening in
D.R.Repair.checkIndex.
]
[fix docs for finalizeRepositoryChanges
Ben Franksen <ben.franksen at online.de>**20180825090512
Ignore-this: a8c0fc990ce726cd171893832e88d935
]
[restrictSubpathsAfter, maybeRestrictSubpaths: restrict witnesses
Ben Franksen <ben.franksen at online.de>**20180825090044
Ignore-this: d4d233e215d0f008c17febd8c03e5ef
The passed-in pending must now start at the recorded state.
]
[writeNewPending, makeNewPending: restrict witnesses
Ben Franksen <ben.franksen at online.de>**20180825085907
Ignore-this: d5bbab658630a30bfc2bebfc8893b207
The prospective pending must now start at the tentative state.
]
[fix doc for addToSpecificInventory and addToTentativeInventory
Ben Franksen <ben.franksen at online.de>**20180825085832
Ignore-this: e3ef72a6e1787524bccab6c56c44ba9b
]
[remove commented code that is no longer needed
Ben Franksen <ben.franksen at online.de>**20180729152153
Ignore-this: a83a8fc224971a7fa53d86796a9b8b7a
]
[adapt tests after fix to detection of conflicts with unrecorded
Ben Franksen <ben.franksen at online.de>**20180713181243
Ignore-this: a4b47803204ac77a388e3ab08ba07fc5
We now get prompted for confirmation whenever we create a conflict with
unrecorded changes, instead of only for conflicts with pending. This patch
makes the necessary adaptions to the test scripts.
Some test deliberately pull patches on top of unrecorded changes; for these,
we prepend "echo y | ..." to simulate the users consent. Other tests issue
multiple conflicting pull commands; the conflict with unrecorded changes
here is accidental due to the conflict markup generated by earlier pulls, so
they are adapted by adding --allow-conflicts to suppress generation of
conflict markup.
]
[fix and simplify checkUnrecordedConflicts and then inline
Ben Franksen <ben.franksen at online.de>**20180722122446
Ignore-this: 62da36f754c62647520b0cb1f2f0f592
The implementation in checkUnrecordedConflicts really only checked for
conflicts with pending, but we need to check for conflicts with pending and
working; and the merge that gives us this information has already been
calculated in tentativelyMergePatches: all new conflicts are contained in
them'' and new conflicts with pending and working are contained in pw'.
Also, when tentativelyMergePatches is called by a remote apply (during
execution of a push command), there is no interactive stdin, so promptYorn
throws an exception, which is now cought. This fixes an existing bug that
was hidden because the prompting happened only for conflicts with the remote
pending, whereas it now happens for all conflicts with unrecorded changes.
]
[extended test for issue1522 with success case
Ben Franksen <ben.franksen at online.de>**20180723072843
Ignore-this: edba77f87e64f03c3d9bca7fde8a0a56
]
[in D.R.Resolution, throw an error if cleanly merging conflict resolutions fails
Ben Franksen <ben.franksen at online.de>**20180604154921
Ignore-this: aeae746a8b3a681d6bd1acd2d330ed4
This is clearly an internal error and should be handled as such. It was
previously ignored by silently dropping the patch that could not be merged.
]
[resolve issue2594: add UseIndex parameter to addToPending
Ben Franksen <ben.franksen at online.de>**20180719171008
Ignore-this: 2c0f949e4b95af39807ec2fca8ac2255
]
[fix: must not siftForPending in revertPending
Ben Franksen <ben.franksen at online.de>**20180719171004
Ignore-this: 53c02a5e44597eb90b772b7c9debc32d
The reason is that we want the checks that attempt to apply pending to
pristine to fail as early as possible and also consistently regardless of
whether we are in a transaction or not. If we siftForPending with a buggy
pending such as constructed in tests/pending_has_conflicts.sh applyToTree no
longer fails.
]
[accept issue2594: darcs show index crashes replace with unrecorded force hunk
Ben Franksen <ben.franksen at online.de>**20180702140939
Ignore-this: 73ac92ef41ab16c811453bb2d827f71c
]
[no longer lie about repo witnesses
Ben Franksen <ben.franksen at online.de>**20180719170744
Ignore-this: b689ab3e73b43e13977bb157669aa3b2
In particular, this means that most of the procedures in D.R.State now
require that the recorded and the tentative state coincide, so that reading
the recorded state is justified even if we are in a "transaction" i.e.
revertRepositoryChanges has been called (via withRepoLock). Also,
finalizeRepositoryChanges now returns a properly casted Repository.
We now track the Repository token using a single local variable that gets
shadowed by each successive "update". This makes it impossible to
accidentally use an old version. To avoid warnings, these variables are
prefixed with an underscore.
]
[add regression test for (already resolved) issue2536
Ben Franksen <ben.franksen at online.de>**20180719110108
Ignore-this: ddb6b84dbdea76fccbf73c0e3b26e6b8
]
[fix test for issue2310 and rename because it does not actually fail
Ben Franksen <ben.franksen at online.de>**20180719103541
Ignore-this: e100019e44090418207d085bcfedd399
]
[simplify readRecorded and readPending
Ben Franksen <ben.franksen at online.de>**20180619204359
Ignore-this: 1ffe804603dc34fc1793c3cc8638d173
...using peekPristineHash and the new D.R.Paths module.
]
[define repo paths in a separate module
Ben Franksen <ben.franksen at online.de>**20180619203930
Ignore-this: 4096a66894bd124171161508c4c1fa6c
]
[move applyToTentativePristine to before repo changes
Ben Franksen <ben.franksen at online.de>**20180702131930
Ignore-this: 5695f7a39381cf488c7054687bf2fcdf
This is pure code aesthetics. The call gets the original r (Repository)
passed, so it looks better if we make it before we call the functions that
return the new (coerced) Repository.
]
[explain how tentativelyMergePatches works
Ben Franksen <ben.franksen at online.de>**20180702131923
Ignore-this: 29c052902fade67f56b241acf4dc63a0
This patch also renames a few local variables in this function.
]
[resolve issue2593: network test can collide with shell tests
Ben Franksen <ben.franksen at online.de>**20180629195825
Ignore-this: 7e8b520a2daf96e01109b902c6f6b43d
]
[tests for issue1316 no longer fail
Ben Franksen <ben.franksen at online.de>**20180713134449
Ignore-this: 8e56008c9a59f438c72591c7bf182715
This is most probably due to the recent fix for how the amend command
handles the pending patch.
]
[resolve issue2592: update pending with coalesced look-for changes
Ben Franksen <ben.franksen at online.de>**20180702163803
Ignore-this: 433b715f2787c1199c4309581eb1ea36
]
[simplified setTentativePending and fix its type witnesses
Ben Franksen <ben.franksen at online.de>**20180702145112
Ignore-this: a20b32a92265091a1d81c9d963949cd1
]
[make D.R.Pending.prepend more type safe (by removing it)
Ben Franksen <ben.franksen at online.de>**20180702145101
Ignore-this: 4dd145953c7168603ca8a3694c9109ec
This function coerced witnesses and had corresponding warnings attached. The
need for coercing was that it reads the pending patch and also writes it
back with some changes that were removed from the repo prepended. If we
split this action up and read pending before adding the patches to the repo
and afterwards write the pending, then the witnesses all match up just fine.
This requires removeFromTentativeInventory to return a repo with
appropriately coerced witnesses.
The cost of this operation is that we must export read/writeTentativePending.
]
[fix handling of pending patch in amend command
Ben Franksen <ben.franksen at online.de>**20180702134008
Ignore-this: 4f95452e8c4bdc28cd3ed20be14f0035
In case of look-for-moves/replaces, the code called
tentativelyRemoveFromPending on the old patch. This was done after
tentativelyRemovePatch and tentativelyAddPatch had already adapted the
pending patch (via YesUpdatePending). This is clearly wrong and worked only
because tentativelyRemovePatches called prepend, which pre-filtered the new
prim patches with crudeSift. This is no longer done, and so we now get
failures when we try to apply pending.
The clean solution is to pass NoUpdatePending to both tentativelyRemovePatch
and tentativelyAddPatch and then adapt pending in one go with the difference
between old and new patch. The function tentativelyRemoveFromPending now
takes an FL of prim patches, has more correct type witnesses, uses less
coercion, and has its UpdatePending parameter removed.
This restores the regression of issue2209-look_for_replaces after the fix
for issue2548-inconsistent-pending. It also makes the previously failing
test look_for_replaces1 succeed.
]
[accept issue2592: unclean pending with look-for options
Ben Franksen <ben.franksen at online.de>**20180618190530
Ignore-this: 7d3d1d113694143bde626d0d8ed3a5ed
]
[resolve issue2548: inconsistent pending
Ben Franksen <ben.franksen at online.de>**20180613175034
Ignore-this: 5d58862fb1261d61ced3b121650ecca1
In Darcs.Repository.Diff.treeDiff we did not correctly handle the case where
a file is changed to a subTree: we only emptied the file but failed to add
an rmfile patch before adding the dir.
With a pending "addfile ./f" and a working tree where f has been changed to
a directory, we now get only the "adddir ./f" when recording with -l.
However, this leaves us with a new pending "rmdir ./f; addfile ./f". This
pending change can be reverted but does not show up with whatsnew -l and
cannot be recorded with record -l.
]
[remove UpdatePending parameter from tentativelyAddToPending
Ben Franksen <ben.franksen at online.de>**20180702143403
Ignore-this: 49e37e39bbac54cfdff71900c3a6416a
All call sites passed YesUpdatePending, literally.
]
[add revertPending to complement finalizePending
Ben Franksen <ben.franksen at online.de>**20180702141814
Ignore-this: b9175e36e417254dede371d6573c6dcf
]
[removed UpdatePending parameter from a few functions
Ben Franksen <ben.franksen at online.de>**20180702131536
Ignore-this: 137a392994f408bcd843ce4deb5b0487
Affected are setTentativePending, prepend, the functions in D.R.Merge,
addToPending, and addPendingDiffToPending. The parameter could be removed
because either all call sites passed YesUpdatePending (literally), or the
same or closely related case distinction was already done at the call site.
]
[rename UpdateWorking to UpdatePending
Ben Franksen <ben.franksen at online.de>**20180702131409
Ignore-this: b32c179994ff299dfc1598bab875b454
The name of this type (and the parameter names) now reflect what it does,
namely configure for certain calls whether the pending patch should be
updated or not.
]
[remove writePatchSet and patchSetToRepository from D.R.Clone
Ben Franksen <ben.franksen at online.de>**20180610151003
Ignore-this: a6c059b9450839f7ac46f0524f93e4dd
patchSetToRepository was already commented out and writePatchSet was used
only in D.UI.Commands.Repair, where the relevant parts are now inlined. Also
did some refactorings there while we're at it.
]
[move filterNonInternal from tag command to D.P.Match
Ben Franksen <ben.franksen at online.de>**20180611173502
Ignore-this: ad9429c268fdb84055c681e4500accfc
]
[move matchingHead to D.P.Match, move contextPatches to D.P.Depends
Ben Franksen <ben.franksen at online.de>**20180611171139
Ignore-this: d9560cc892e65e5a2ac6244df9bbc6d5
]
[simplify return type of splitOnTag
Ben Franksen <ben.franksen at online.de>**20180611102459
Ignore-this: a724190d1f45336cd4e538377a3e5a87
Instead of returning a PatchSet with an empty trailing list of patches plus
trailing patches separately, we as well return just a PatchSet and put the
trailig patches back.
]
[refactor matching of PatchSets
Ben Franksen <ben.franksen at online.de>**20180609222350
Ignore-this: 8263b213cb129ade39454183349f9361
This affects the commands annotate, clone, diff, dist, show contents, and
show files. For these, selecting a single patch or a range of patches makes
no sense; instead matching means to select the version (PatchSet) consisting
of all patches up to (including) the latest matching patch, except for --tag
where we get the exact version corresponding to the tag.
The functions findAPatch and matchPatch and the data type
InclusiveOrExclusive are now obsolete have been removed. Other functions are
superseded: getPatchesBeyondTag is replaced by the more general
splitOnMatchingTag; getTagS and getMatcherS have been inlined into
getNonrangeMatchS, which has been renamed to rollbackToPatchSetMatch;
havePatchsetMatch is replaced by patchSetMatch. The new data type
PatchSetMatch precisely captures the different ways to match a PatchSet;
patchSetMatch returns it and rollbackToPatchSetMatch and getOnePatchSet take
it as argument. Also, getNonrangeMatch is now called getRecordedUpToMatch,
and dropn is renamed to patchSetDrop and exported.
There are now separate DarcsFlags and MatchFlags for --index=N (OneIndex)
versus --index=N-M (MatchIndexRange), which streamlines index matching.
]
[make spanRL lazy, add takeWhileRL
Ben Franksen <ben.franksen at online.de>**20180609222232
Ignore-this: 4bd05d0fc5146aac6be7934056d18716
]
[inlined a where clause in splitOnTag
Ben Franksen <ben.franksen at online.de>**20180609221946
Ignore-this: df78934f07e25f690a9839073f96d1ef
]
[simplify D.P.Match.matchExists
Ben Franksen <ben.franksen at online.de>**20180609142356
Ignore-this: 6b66004d0117c5256a30f5defbfa22f5
]
[removed unsused (incl. darcsden) function getFirstMatchS
Ben Franksen <ben.franksen at online.de>**20180609121825
Ignore-this: 1dc69395d33727eaaab76ed6525102c4
]
[simplify D.R.Hashed.reorderInventory
Ben Franksen <ben.franksen at online.de>**20180608093343
Ignore-this: 2d59b83971455f2f76a51fddc48028dc
This gets rid of the last use of tentativelyReplacePatches which has been
removed. Instead of removing patches from the repo and then adding them
back, we directly write the new patchset. tentativelyReplacePatches filtered
out the rebase patch from the patches it removes. This was brittle and also
unnecessary: we can assume the rebase patch is not covered by any tag and
thus automatically belongs to the untagged tail of patches.
Finding the latest tag and cleaning it is now optimized by using the new
utility function breakRL. This avoids searching for the latest tag twice
(first in misplacedPatches and then again in splitOnTag). The fused
functionality is now in function D.P.Depends.cleanLatestTag.
The test for darcs optimize has been enhanced to actually test that optimize
reorder does what it should.
]
[fix tests/network/clone-http-packed*
Ben Franksen <ben.franksen at online.de>**20180718125938
Ignore-this: f3fcb6d7418edb426bbd5c15f9628dc0
These tests were broken by patch d31c169a48cb4c63953eefe0c61ff1e7aa1edd9e
because the name of the repodir is "repo", not "laziness-complete". You
need to have lighttpd installed and able to run to reproduce.
]
[add class PrimSift so we can avoid using PrimConstruct and PrimClassify in Pending
Ben Franksen <ben.franksen at online.de>**20180505065806
Ignore-this: a236357241048ec8e0eb26a99250bedb
]
[move tryShrinkingInverse to D.P.Invert, rename to dropInverses
Ben Franksen <ben.franksen at online.de>**20180301225601
Ignore-this: 8dc5633d478d66135dfa2f36898edc7f
The function is defined solely in terms of Invert and Eq2.
]
[remove commuteFLorComplain and replace with commuteFL
Ben Franksen <ben.franksen at online.de>**20180516074050
Ignore-this: 22c884f446084a9a87abe9175db1e817
The extra information provided by commuteFLorComplain was nowhere used.
]
[respect verbosity options in amend command
Ben Franksen <ben.franksen at online.de>**20180713170751
Ignore-this: 47054467ad82cadc305e6373154d11db
]
[fix haddocks for maybeApplyToTree
Ben Franksen <ben.franksen at online.de>**20180701224639
Ignore-this: 68c8569a1d36ef12781dc8c650559df6
]
[fix: show pristine is not an alias of show index
Ben Franksen <ben.franksen at online.de>**20180701084126
Ignore-this: 814cfc5e36aab335ee013082776a91bd
]
[renamed a local variable in tentativelyMergePatches
Ben Franksen <ben.franksen at online.de>**20180613103242
Ignore-this: 211a7f51ae2780843f309232e51357cd
The content of a named patch does not consist of prim patches.
]
[add/change some comments in optimize upgrade command
Ben Franksen <ben.franksen at online.de>**20180612174221
Ignore-this: 2411d122f587c7d49a9b12f38f1ce182
]
[save one reverseFL in D.P.Depends.patchSetUnion
Ben Franksen <ben.franksen at online.de>**20180610092826
Ignore-this: fd19e8c3c31a3574566a2d8dd76702a0
]
[export getPrefLines for darcsden
Ben Franksen <ben.franksen at online.de>**20180609112943
Ignore-this: b5c24b98188f95c845c680e418c889de
]
[use +<<+ in D.P.Set.appendPSFL
Ben Franksen <ben.franksen at online.de>**20180608120457
Ignore-this: 932a5ac2ba0aa305746698d9212ffe85
]
[remove "withSignalsHandled:" from message when we are interrupted (Ctrl-C)
Ben Franksen <ben.franksen at online.de>**20180325234211
Ignore-this: 18bd6b4ee62258e9689b19cfbdb05bf8
Prepending the function name makes sense for debug messages but not for
messages intended for users (except bugs).
]
[simplified withUMaskFlag
Ben Franksen <ben.franksen at online.de>**20180528145029
Ignore-this: 6180d9ef433426c2c9c43073022d122a
]
[remove method anIdentity from PrimConstruct
Ben Franksen <ben.franksen at online.de>**20180501154124
Ignore-this: 2a4afd0048567d73c35245274c286ec7
This method was used only in the test harness to extract pairs and triples
of adjacent patches from an arbitrary patch tree, in case the tree does not
contain enough patches. Rather than conjuring meaningless patches out of
thin air, a better solution is to reject starting states with not enough
patches. Along the way, some unused functions and instances in the test
harness were deleted.
]
[re-add test for issue1609
Ben Franksen <ben.franksen at online.de>**20180614181258
Ignore-this: 31249ec87b8f4d3b5f71df1cf25e2f27
]
[in a few test scripts, clean test repos before creating them
Ben Franksen <ben.franksen at online.de>**20180713140201
Ignore-this: d256e939dd5ad6b1a41d093988e78df2
]
[tests: cleanup chmod -w else cannot remove testdir
Ben Franksen <ben.franksen at online.de>**20180627090404
Ignore-this: ed4273946454df124e94da165062d75d
]
[fix a few tests that erroneously fail when run with --testdir
Ben Franksen <ben.franksen at online.de>**20180627085523
Ignore-this: f879ceb3ddf63d41f9fee894d095c9f1
]
[tests: remove an mkdir for an unused test dir
Ben Franksen <ben.franksen at online.de>**20180615105541
Ignore-this: da51a334b087304e20908daef9f7a8f5
]
[issue1461 is no longer failing
Ben Franksen <ben.franksen at online.de>**20180614181516
Ignore-this: 758a0629be1cdac3c712e0a0eb161c7b
]
[fix a wrong comment in failing test for issue1610
Ben Franksen <ben.franksen at online.de>**20180614164116
Ignore-this: 7f198bfd54bc7316e52909994d96e8e5
]
[renamed and fixed test for issue 2548
Ben Franksen <ben.franksen at online.de>**20180613080333
Ignore-this: dda93c1adb6833a528843a285af3877c
]
[fix clone-http-packed tests
Ben Franksen <ben.franksen at online.de>**20180609083954
Ignore-this: 4a19ec27cfd3a779f5fa242499a94d3a
It seems newer versions of lighttpd need an empty list for the
index-file.name configuration setting, otherwise requests for directories
cannot be served.result in a 404 error.
]
[add a failing test for resolution of conflict chains
Ben Franksen <ben.franksen at online.de>**20180608110441
Ignore-this: bb48bb3c0575ef04afe877780f7342d2
]
[issue1522 is not failing, we just tested the wrong thing
Ben Franksen <ben.franksen at online.de>**20180607153513
Ignore-this: 6f6aeeb2732884f978c4eb868ae32f9b
The issue, as originally reported, was that darcs did /not/ fail here.
The test now checks that it does and thus succeeds as required.
]
[harness: improve output when property invertRollback fails
Ben Franksen <ben.franksen at online.de>**20180309094212
Ignore-this: 7e704668d497f7c01f99784679e9423d
]
[added my HZB email to .authorspellings
Ben Franksen <ben.franksen at online.de>**20180327233136
Ignore-this: aaccd92629376e779cf4f4fb5583aa1d
]
[consistently use skip-formats from tests/lib in test scripts
Ben Franksen <benjamin.franksen at helmholtz-berlin.de>**20180425163402
Ignore-this: 6dd56b13327fcb28407cebcf033fe175
]
[add _forceCommute to D.P.Merge
Ben Franksen <ben.franksen at online.de>**20180516080235
Ignore-this: 682098dba1246528553a081308940d31
The only purpose of this function is to document how the merge operation,
together with the square commute law, allows to commute any pair of adjacent
patches.
]
[add laws to classes Commute and CommuteNoConflicts
Ben Franksen <ben.franksen at online.de>**20180607195130
Ignore-this: 9b2be35019e7b0210db0eaaf4a85f4a1
]
[replace naturalMerge with mergeNoConflicts
Ben Franksen <ben.franksen at online.de>**20180607181432
Ignore-this: 7a4b0793074bb3be28a8693100d2978b
This change is a consequence of my improved understanding of what
commuteNoConflicts is about and how non-conflicting merge should work, see
the haddocks for details. The new function is also more efficient because
(a) commuteNoConflicts has to consider fewer cases and (b) we can now drop
the extra commute check on the result of the merge.
]
[in D.P.V1.Commute, remove commuteNoMerger and replace with commuteNoConflicts
Ben Franksen <ben.franksen at online.de>**20180604154812
Ignore-this: 52691e31f7822683c67d1768a94bcbe4
]
[simplify V1 merge by calculating both branches in one go
Ben Franksen <ben.franksen at online.de>**20180530163134
Ignore-this: ba1d3de13df7724f5aeec898e8cb5915
]
[factor swapMerge from D.P.V2.RepoPatch to D.P.Merge
Ben Franksen <ben.franksen at online.de>**20180530163032
Ignore-this: 4492404a94fe2704aad86c0fdded992c
]
[refactor the instance Commute RepoPatchV2
Ben Franksen <ben.franksen at online.de>**20180529130151
Ignore-this: e58fe2aad17250793d1f4b38e9fbbb90
To avoid repeated calls to commuteNoConflicts in cases where we know it will
fail, add commuteConflicting as a separate top-level function. Also factor
out invertCommuter which is now used for both commuteConflicting and
commuteNoConflicts.
]
[improved haddocks for CommuteNoConflicts
Ben Franksen <ben.franksen at online.de>**20180529125540
Ignore-this: 66fd77d34e106b6edd693193e9e02771
]
[remove out-commented code line from mangleUnravelledHunks
Ben Franksen <ben.franksen at online.de>**20180426071255
Ignore-this: 7116db02cb6ab3b75b392aafbdbcbec
]
[add haddocks for D.P.Conflict.IsConflictedPrim
Ben Franksen <ben.franksen at online.de>**20180426071209
Ignore-this: 1c66041eff309d484cfbbb3ead0d2867
]
[rename 'conflictedEffect' to 'isConflicted'
Ben Franksen <ben.franksen at online.de>**20180426070037
Ignore-this: 59ea355b5af257a5be76236361107be0
This function (class method) is used to classify patches and has nothing to
do with the effect of a patch.
]
[apply hunks for the same file in one go for V2, too
Ben Franksen <ben.franksen at online.de>**20180216111952
Ignore-this: 6cf6e1421a30221c95762a02f0869f09
It seems this optimization was never done for RepoPatchV2.
]
[rebase: use die instead of error
raichoo at googlemail.com**20180614072937
Ignore-this: 320248b9c073e02491762d83ef704cec
]
[boring: add .stack-work to default boring
raichoo at googlemail.com**20180612105914
Ignore-this: 12f2fec14ac82a9f593b3e7159c180bd
]
[support containers 0.6.x
Ganesh Sittampalam <ganesh at earth.li>**20180622115811
Ignore-this: cec9331750943804a68430ff5d177321
]
[Quick fix for malicious path checking on Windows
Ganesh Sittampalam <ganesh at earth.li>**20180617180358
Ignore-this: 62f35d80671b44a4e4c4d7b33368f761
This fixes the tests, but is not comprehensive
]
[Acknowledge encoding failures/regressions on Windows
Ganesh Sittampalam <ganesh at earth.li>**20180617175025
Ignore-this: 3bce9f9dec9c558d08773c8e2623b423
]
[Disable git_quoted_filenames test on Windows
Ganesh Sittampalam <ganesh at earth.li>**20180617162939
Ignore-this: e8b69291f60f45dd9da6cab51cdd075a
Having filenames with quotes in is not easy/natural on Windows
]
[skip send-external test on Windows
Ganesh Sittampalam <ganesh at earth.li>**20180612060349
Ignore-this: 8b34fd5fccf468b4ffa8624a939e1a24
]
[fix issue1857 test on Windows
Ganesh Sittampalam <ganesh at earth.li>**20180610184054
Ignore-this: 6fc9b0a9ee752b0e615cbe82fef20776
]
[re-added autogen-modules entries in darcs.cabal
Ben Franksen <benjamin.franksen at helmholtz-berlin.de>**20180419120031
Ignore-this: 8c81e9a6aa8da23618fbdec14edc3ca9
]
[Fix show_tags test on Windows - compare output ignoring newlines
Ganesh Sittampalam <ganesh at earth.li>**20180610115900
Ignore-this: 55c5e30831a56601ecfbd229940a2215
Not sure why this doesn't come up in other similar tests
]
[fix test on Windows: having 0 as a unixtime doesn't seem to work
Ganesh Sittampalam <ganesh at earth.li>**20180610113906
Ignore-this: 9770bfa762c398ba23aa14ec6a0171a0
toClockTime was throwing errors
]
[blacklist shelly>=1.7.2 on Windows
Ganesh Sittampalam <ganesh at earth.li>**20180610094903
Ignore-this: 414449858d83bba869200a0b21494204
It "normalises" environment variables to lower-case which breaks
our tests.
]
[support QuickCheck 2.11
Ganesh Sittampalam <ganesh at earth.li>**20180609153034
Ignore-this: 13b7a0fa536221ade5575148670d8b7c
]
[support shelly 1.7 and 1.8
Ganesh Sittampalam <ganesh at earth.li>**20180609153027
Ignore-this: a549f0372bbb0fab02e59c796db02c66
]
[support network 2.7
Ganesh Sittampalam <ganesh at earth.li>**20180609153020
Ignore-this: f48aa0ab0ce0b01628c3a11c8c36a20b
]
[support time 1.9
Ganesh Sittampalam <ganesh at earth.li>**20180609153010
Ignore-this: 7873028f2ebcde567a8d513c2704a184
]
[support fgl 5.6
Ganesh Sittampalam <ganesh at earth.li>**20180609152957
Ignore-this: 149deeaa411e6d46519464679db62787
]
[support binary 0.9
Ganesh Sittampalam <ganesh at earth.li>**20180609152858
Ignore-this: 6076692833100fc65413388f60a770d3
]
[resolve conflicts after pulling fix for issue2588 from branch-2.14
Ben Franksen <ben.franksen at online.de>**20180530163509
Ignore-this: 7485755b42ffc02fb2aa18934af2453b
]
[resolve issue2588: no longer use withTempDirectory in withNewDirectory
Ben Franksen <ben.franksen at online.de>**20180530122732
Ignore-this: eac9533fe5cb418c1bf3ebfdd68619fe
]
[increase upper bound for graphviz dependency to 2999.20.1
Ben Franksen <ben.franksen at online.de>**20180529101919
Ignore-this: 29fb75b1219c07393384da5f80846cf7
]
[require GHC 8.2 and Cabal 2.2
Guillaume Hoffmann <guillaumh at gmail.com>**20180406191827
Ignore-this: 8443a5288cc669f47f49a00df59d47f1
]
[require directory 1.2.7 and use doesPathExist
Guillaume Hoffmann <guillaumh at gmail.com>**20180406191709
Ignore-this: d79bca93c75e072254f35921ffc3fef5
]
[bump async upper bound
Guillaume Hoffmann <guillaumh at gmail.com>**20180406174503
Ignore-this: bffa195ae2ff3a8f28cf491398cf6f1b
]
[bump darcs version to 2.15.0
Guillaume Hoffmann <guillaumh at gmail.com>**20180404144712
Ignore-this: 63caa342b85cf4375b6efae5261bb222
]
[TAG 2.14.0
Guillaume Hoffmann <guillaumh at gmail.com>**20180404143457
Ignore-this: b65f09f1e7a78e00ba98e63108be2833
]
Patch bundle hash:
7553abb13ff2e7e0c4d21e737edba697b8d1578c
More information about the darcs-devel
mailing list