[darcs-devel] [patch1730] add RepoPatchV3 aka camp conflictors, now with almost complete integration

Ben Franksen bugs at darcs.net
Wed Jun 12 17:46:09 UTC 2019


Ben Franksen <ben.franksen at online.de> added the comment:

Same as previous bundle but with one patch amended:

patch d04e12c10444dea24960406be14129da05c73e22
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sun Feb 17 21:50:01 CET 2019
  * do white space en/decoding directly on the ByteStrings

It no longer compiled after I threw out the isSpace from
Darcs.Util.ByteString and also included an unintended behavior change: the
whitespace encoding for filenames has always used the isSpace from Data.Char
and this should not be changed.

53 patches for repository /home/ben/src/darcs/sent:

patch 201588ce705f87b17bcb800c113b91d75d3a450e
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb  8 16:50:41 CET 2019
  * add some functions we need for V3 to Darcs.Patch.Ident

patch 2ab2d6ea7d3b4299dee37bc81e36fa35bc9c035d
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb  8 17:45:13 CET 2019
  * add RepoPatchV3 aka camp conflictors

patch 41d9f81cb0bb0c89d3589440cd2959d0b5df7361
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb  8 17:45:38 CET 2019
  * add V3 stuff to the test suite (quickcheck tests only)

patch 39e45329fa32f4a682ba1e557ee756a7a1d74327
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb  8 17:46:49 CET 2019
  * renamed fromPrim to fromAnonymousPrim

patch 9e6f89e0479a740cf4b7ff28150f5f9d284cb400
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb  8 17:46:49 CET 2019
  * add prim patch identifier when constructing Named patches
  
  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.

patch d0bbd4aa6e41c41459f09e64239d74f2e64d5850
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb  8 17:46:49 CET 2019
  * move Darcs.Patch.V3.Prim to Darcs.Patch.Prim.Named
  
  This is actually a fully generic wrapper for any PrimPatch type and
  technically not tied to V3.

patch 3a797b9fc225df6dbb031b29307f4e30c891fa6c
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb  8 17:46:49 CET 2019
  * add new Darcs3 format option

patch f6b41d01a4487e2d5004f5175113d9dfd90ecc98
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb  8 17:46:49 CET 2019
  * trivial refactor in D.R.Create

patch 0107cb750c63795b3cd1fb17f94478102ab7dc5d
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb  8 17:46:49 CET 2019
  * allow runnign the test scripts with darcs-3 format

patch 47609c8e55be5be81dfed655514762c51140f343
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb  8 17:46:49 CET 2019
  * adapt test skip based on repo format
  
  Now that we have three formats, we can no longer assume that skip-formats
  darcs-1 implies test is run only for darcs-2.

patch f7fc2f06d8e41aeeafb76ddf2457fbca1b3c04e2
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb  8 17:46:49 CET 2019
  * restore alphabetical order of exposed-modules in darcs.cabal

patch 4e79a8698e04ff031c1f3697114777357ce26ac8
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sat Feb  9 14:43:32 CET 2019
  * fix in the QC generator for prim patch IDs

patch 2c68e35e4a324ece160ff5e50bdfdaa21c3491ec
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sat Feb  9 14:51:59 CET 2019
  * fix instance MightBeEmptyHunk for NamedPrim
  
  Property effectPreserving fails for Prim.V1 empty hunks, and so it does for
  its NamedPrim wrapper.

patch 1b723556f68d6ea9fcc71b9348c74a2c2163a4d5
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sat Feb  9 13:27:16 CET 2019
  * separate class Summary out from class Conflict
  
  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).

patch 160164bb4f50312093ab83c721488caea21ffe8e
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sat Feb  9 17:10:00 CET 2019
  * add Darcs.Util.Graph
  
  This contains an efficient algorithm to determine maximal independent sets
  of an undirected graph.

patch d61e91e261ee659ff98225948038258dc7df0a34
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sun Feb 10 13:43:32 CET 2019
  * fix a typo in a comment

patch fffd7cd29873f3c9f5529c79bb859ac86e51887a
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sun Feb 10 19:28:06 CET 2019
  * fix cloning of darcs-3 format repos

patch 7cd237bf9a779540fe19c332e759e359a1b4cb0d
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sun Feb 10 21:48:03 CET 2019
  * bugfix in instance ShowContextPatch for NamedPrim

patch dc879f6671f4dbff633ebeeb635a83e8d05337ac
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sun Feb 10 23:09:51 CET 2019
  * hack: disable showContextSeries for darcs-3 format
  
  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.

patch dcceaa03b5ae8ce0c7670e056a1f6ef9eec8aa16
Author: Ben Franksen <ben.franksen at online.de>
Date:   Tue Feb 12 18:17:39 CET 2019
  * show the PrimPatchId only ForStorage, not ForDisplay
  
  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.

patch f6fa434b182eb283aec29cc5ea8a077cb2c70923
Author: Ben Franksen <ben.franksen at online.de>
Date:   Tue Feb 12 18:21:32 CET 2019
  * fix expected output in look_for_moves test for darcs-3
  
  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.

patch 1850f72913a5057fb12bbfeeff5b5e93ce278c37
Author: Ben Franksen <ben.franksen at online.de>
Date:   Tue Feb 12 18:36:09 CET 2019
  * tests/pull.sh: expect the correct behavior for darcs-3, too

patch d22ee446187b4954744092a410530b23d2866aad
Author: Ben Franksen <ben.franksen at online.de>
Date:   Wed Feb 13 09:23:01 CET 2019
  * disable repair tests when format is darcs-3
  
  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.

patch e46cc62d1d40c0f98d33b7d850efcc172d3b6be6
Author: Ben Franksen <ben.franksen at online.de>
Date:   Wed Feb 13 18:20:58 CET 2019
  * fix rebase unsuspend for v3 with a dirty hack
  
  See comment in the code for the why and how.

patch dcb2738aa6f37a04a803b5b92e7c000f22ecd32e
Author: Ben Franksen <ben.franksen at online.de>
Date:   Wed Feb 13 18:24:09 CET 2019
  * change the type of resolveConflicts
  
  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).

patch 1a5c552ad9c8192fc3254f3e3dfcdd7c1ee525dd
Author: Ben Franksen <ben.franksen at online.de>
Date:   Wed Feb 13 20:14:19 CET 2019
  * implement resolveConflicts for RepoPatchV3

patch cb7f2f109d05d80e662b019e9fb581cbea757e78
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb 15 12:12:30 CET 2019
  * add a number of INLINE or INLINABLE pragmas

patch d06188e92994e0f9d27b6c4c0164c781ecdc099f
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb 15 16:58:17 CET 2019
  * fix prop_conflictsCommutePastConflictor
  
  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.

patch 3a78254c82d906c54ca487b5b383293804e67255
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb 15 17:12:23 CET 2019
  * add more detailed comments for some cases of findConflicts

patch e11285095b9b167b32e4ae1a160d41a69d378dcb
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sat Feb 16 12:37:44 CET 2019
  * optimize parsing of PrimPatchId
  
  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.

patch 0cae5acc67078b6cc2b6b0cbe5137a19522ec553
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sun Feb 17 12:12:56 CET 2019
  * replace our own patch parser with attoparsec
  
  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.

patch 27448d5c3ee98412c4331329bbcf874c8e87812f
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sun Feb 17 12:22:58 CET 2019
  * take advantage of attoparsec error message for patches and inventories
  
  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.

patch bbe57ddc7d2380c0d2b2f568f32b1e1c7ab6d659
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sun Feb 17 17:20:19 CET 2019
  * replace parseStrictly with parse everywhere
  
  This is not a simple rename but changes the output type from Maybe to Either
  String throughout.

patch 2ef519691d75adbcef8638f7164f9184fb2911a8
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sun Feb 17 17:27:57 CET 2019
  * clean up import and export lists in Darcs.Patch.Read

patch 3dc3501824692790cf4bcfa487416c76b77073c8
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sun Feb 17 21:32:00 CET 2019
  * restore alphabetical order of modules in darcs.cabal

patch f0c8eecb250f549298d5bcb541c46f1f0d18d6e6
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb 22 15:00:25 CET 2019
  * optimize ctxNoConflicts

patch 6251fd817e81f40523eae8d0556a8d657d736593
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb 22 15:01:40 CET 2019
  * break overlong lines in Darcs.Patch.Ident

patch b8386798be44a17c5e33cfaa130da7f94fc60941
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Feb 22 15:02:39 CET 2019
  * add a comment to commutePast

patch 964b37023032a7405527cbf429de569db669a192
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sat Feb 23 10:46:47 CET 2019
  * fold partialPermutivity into permutivity property

patch 0c5d7571d3f67fb78c470b6c068414dc0ecc1ada
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sat Feb 23 10:53:55 CET 2019
  * fold partialCommuteInverses into property commuteInverses

patch 17bac163e2dfccca41355f85870f0876b05c23db
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sat Feb 23 11:06:10 CET 2019
  * remove unused function namedEffect

patch 1ec49cd68573933323f79b9febd4148952a5eff2
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sat Feb 23 12:04:28 CET 2019
  * optimize ctxAdd* by using the better fold

patch 76f6c3e0a733811469d4ed362bf84b0b5d3ddad2
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sun Feb 24 09:08:14 CET 2019
  * declare instances of IdEq2 for Named, NamedPrim, and PatchInfoAnd

patch 5cedd4caaf09fd5bc04c612780ffdb547f4863d2
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sat Feb 23 14:00:00 CET 2019
  * clean up the foldXX mess in D.P.W.Ordered
  
  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.

patch 7f00dd7af4caa3ef34dac5435cd403a5a8ac5601
Author: Ben Franksen <ben.franksen at online.de>
Date:   Mon Feb 25 11:15:44 CET 2019
  * harness: remove qc_V2P1 and qc_V3P1
  
  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.

patch 2b6d20c8ce467b70be0f195908f68a7701738485
Author: Ben Franksen <ben.franksen at online.de>
Date:   Mon Feb 25 15:29:21 CET 2019
  * simplify type signatures in D.T.P.Properties.Generic

patch 6a5ff3ce98c15a9ba01a0cfdb104faba3da0aa01
Author: Ben Franksen <ben.franksen at online.de>
Date:   Tue Feb 26 10:13:01 CET 2019
  * harness: minor code cleanups

patch 9df0906bf4e70d6a540b7097812c2ff3cb228195
Author: Ben Franksen <ben.franksen at online.de>
Date:   Thu Feb 28 00:01:37 CET 2019
  * remove the obsolete PatchInspect superclass of Conflict

patch 7017bd5b1f438bce6b195db9edc171f8d783e59a
Author: Ben Franksen <ben.franksen at online.de>
Date:   Fri Mar  1 19:58:25 CET 2019
  * remove unused method isConflicted from class Conflict
  
  Besides, we already have it as (isNothing . toPrim).

patch 7ab9d4c2d08f03bc735ecd706fb923a04081cd03
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sat Mar  2 23:34:55 CET 2019
  * fix error message in function transferProblem

patch 09b0e70b01a5da9362b4c5714d87a93b7697be30
Author: Ben Franksen <ben.franksen at online.de>
Date:   Mon Feb 25 10:15:04 CET 2019
  * move v3 repo properties to harness
  
  This is so we can use Darcs.Test.Util.TestResult and give better output when
  testing the property fails.

patch 778f90783c8a7ad396efc6a8c3fdd9fd3cbc40c7
Author: Ben Franksen <ben.franksen at online.de>
Date:   Tue Feb 26 10:34:18 CET 2019
  * harness: more detailed fail output for some properties

patch d04e12c10444dea24960406be14129da05c73e22
Author: Ben Franksen <ben.franksen at online.de>
Date:   Sun Feb 17 21:50:01 CET 2019
  * do white space en/decoding directly on the ByteStrings

__________________________________
Darcs bug tracker <bugs at darcs.net>
<http://bugs.darcs.net/patch1730>
__________________________________
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-preview.txt
Type: text/x-darcs-patch
Size: 248948 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/darcs-devel/attachments/20190612/232bc71f/attachment-0002.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: add-some-functions-we-need-for-v3-to-darcs_patch_ident.dpatch
Type: application/x-darcs-patch
Size: 289659 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/darcs-devel/attachments/20190612/232bc71f/attachment-0003.bin>
-------------- next part --------------
.





More information about the darcs-devel mailing list