These comments could be completely bogus, or in any case too low-level
to be really helpful, but it was in my attempting to understand what
the rollback patch did...

Wed Sep 24 15:21:57 BST 2008  Eric Kow <[EMAIL PROTECTED]>
  * Haddock some primitive patch functions.

Wed Sep 24 15:23:04 BST 2008  Eric Kow <[EMAIL PROTECTED]>
  * More readable length comparison.

New patches:

[Haddock some primitive patch functions.
Eric Kow <[EMAIL PROTECTED]>**20080924142157] hunk ./src/Darcs/Patch/Prim.lhs 554
                Nothing -> Nothing
                Just (p' :< p1') -> try_one (p1':<:sofar) p' ps
 
+-- | 'sort_coalesceFL @ps@' coalesces as many patches in @ps@ as
+--   possible, sorting the results according to the scheme defined
+--   in 'comparePrim'
 sort_coalesceFL :: FL Prim C(x y) -> FL Prim C(x y)
 sort_coalesceFL = mapPrimFL sort_coalesceFL2
 
hunk ./src/Darcs/Patch/Prim.lhs 560
+-- | The heart of 'sort_coalesceFL'
 sort_coalesceFL2 :: FL Prim C(x y) -> FL Prim C(x y)
 sort_coalesceFL2 NilFL = NilFL
 sort_coalesceFL2 (x:>:xs) | IsEq <- nullP x = sort_coalesceFL2 xs
hunk ./src/Darcs/Patch/Prim.lhs 567
 sort_coalesceFL2 (x:>:xs) | IsEq <- is_identity x = sort_coalesceFL2 xs
 sort_coalesceFL2 (x:>:xs) = push_coalesce_patch x $ sort_coalesceFL2 xs
 
+-- | 'push_coalesce_patch' @new ps@ is almost like @new :>: ps@ except
+--   as an alternative to consing, we first try to coalesce @new@ with
+--   the head of @[EMAIL PROTECTED]  If this fails, we try again, using commutation
+--   to push @new@ down the list until we find a place where either
+--   (a) @new@ is @LT@ the next member of the list [see 'comparePrim']
+--   (b) commutation fails or
+--   (c) coalescing succeeds.
+--   The basic principle is to coalesce if we can and cons otherwise.
 push_coalesce_patch :: Prim C(x y) -> FL Prim C(y z) -> FL Prim C(x z)
 push_coalesce_patch new NilFL = new :>: NilFL
 push_coalesce_patch new ps@(p:>:ps')
hunk ./src/Darcs/Patch/Prim.lhs 878
 contents each time it is commuted.
 
 \begin{code}
+-- | 'coalesce @p2 :< p1@' tries to combine @p1@ and @p2@ into a single
+--   patch without intermediary changes.  For example, two hunk patches
+--   modifying adjacent lines can be coalesced into a bigger hunk patch.
+--   Or a patch which moves file A to file B can be coalesced with a
+--   patch that moves file B into file C, yielding a patch that moves
+--   file A to file C.
 coalesce :: (Prim :< Prim) C(x y) -> Maybe (Prim C(x y))
 coalesce (FP f1 _ :< FP f2 _) | f1 /= f2 = Nothing
 coalesce (p2 :< p1) | IsEq <- p2 =\/= invert p1 = Just null_patch
hunk ./src/Darcs/Patch/Prim.lhs 1100
 merge_orders LT _ = LT
 merge_orders GT _ = GT
 
+-- | 'comparePrim' @p1 p2@ is used to provide an arbitrary ordering between
+--   @p1@ and @[EMAIL PROTECTED]  Basically, identical patches are equal and
+--   @Move < DP < FP < Split < Identity < [EMAIL PROTECTED]
+--   Everything else is compared in dictionary order of its arguments.
 comparePrim :: Prim C(x y) -> Prim C(w z) -> Ordering
 comparePrim (Move a b) (Move c d) = compare (a, b) (c, d)
 comparePrim (Move _ _) _ = LT
[More readable length comparison.
Eric Kow <[EMAIL PROTECTED]>**20080924142304] hunk ./src/Darcs/Patch/Prim.lhs 585
                             else case commutex (p :< new) of
                                  Just (new' :< p') ->
                                      case push_coalesce_patch new' ps' of
-                                     r | lengthFL r < 1 + lengthFL ps'
+                                     r | lengthFL r <= lengthFL ps'
                                            -> push_coalesce_patch p' r
                                      r -> p' :>: r
                                  Nothing -> new:>:ps

Context:

[fix filepath code to work with FilePath package that preceded filepath.
[EMAIL PROTECTED]
 Ignore-this: 6aa0d8b357b0f966403ebe5965dcdec4
] 
[fix type witness bug in createRepository.
David Roundy <[EMAIL PROTECTED]>**20080922234321
 Ignore-this: 2c50393ca25740ce3e210dd24fe8d8fa
] 
[Resolve conflict between replace patches in Darcs.Arguments
Eric Kow <[EMAIL PROTECTED]>**20080922202647] 
[simplify fix for issue1041.
David Roundy <[EMAIL PROTECTED]>**20080922233019
 Ignore-this: a3002e9bba5271790c62ac634e08f472
 It turns out that the simple solution works once a bug in the
 conflict-doppleganger test was fixed!
] 
[translate conflict-doppleganger test to bash.
David Roundy <[EMAIL PROTECTED]>**20080922232839
 Ignore-this: de2a050022dea4251cdc2cc5e8b55c8c
] 
[Translate mark-conflicts test into shell.
Eric Kow <[EMAIL PROTECTED]>**20080922224858
 It was failing because it expects init to be completely silent.  Since we
 were going to tweak it anyway, we might as well simplify the script.
] 
[Stop calling the darcs-2 format experimental.
Eric Kow <[EMAIL PROTECTED]>**20080922221024] 
[Move repository creation to Darcs.Repository.
Eric Kow <[EMAIL PROTECTED]>**20080922215913
 This is just to avoid importing the DarcsRepo and HashedRepo code in higher
 level code.
] 
[remove test_unit from disttest to speed things up.
David Roundy <[EMAIL PROTECTED]>**20080922225355
 Ignore-this: b3b21bcd3fa72c8d602b5bd0e601021a
 The unit test is only affected by very rarely-modified code, and it's
 overkill to run it absolutely every single time we push code
 (particularly as it sometimes takes exponentially long to generate its
 test cases).
] 
[resolve issue1041: add test for issue1041.
David Roundy <[EMAIL PROTECTED]>**20080922183320
 Ignore-this: 5a6330158d16a24d45f58268c0edb823
 Note that this issue was actually resolved by Vlad Dogaru.  I just
 wrote the test.
] 
[Get: if URL is invalid, direcotry is not created (#1041)
Vlad Dogaru <[EMAIL PROTECTED]>**20080922171705] 
[Replace --without-docs with less ambiguous --without-manual (issue1082).
Trent W. Buck <[EMAIL PROTECTED]>**20080922002602
 It's confusing for ./configure --without-docs to complain about missing haddock.
] 
[Documentation for --allow-unrelated-repos.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080922121122
 Ignore-this: d2630826313c8aeb00acb6853030c22d
] 
[Rename --ignore-unrelated-repos to --allow-unrelated-repos.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080922120727
 Ignore-this: a5990f1741c867316a948e6721118651
] 
[Resolve issue53: check for windows filename validity in darcs add/mv.
Eric Kow <[EMAIL PROTECTED]>**20080922172004] 
[Use --reserved-ok to allow a file with ':' in it in tests.
Eric Kow <[EMAIL PROTECTED]>**20080922171519
 It's likely that this test will just fail under Windows and
 we will have to disable it.
] 
[Add test for issue53.
Eric Kow <[EMAIL PROTECTED]>**20080922152256] 
[Add --reserved-ok flag for darcs add and mv.
Eric Kow <[EMAIL PROTECTED]>**20080922141532
 This is just the flag, not the actual effect.
] 
[Check for filepath package in configure.
Eric Kow <[EMAIL PROTECTED]>**20080922140520] 
[fix  bug I introduced into issue1039 test.
David Roundy <[EMAIL PROTECTED]>**20080921213043
 Ignore-this: 5b3c6476abae6bb050be014555d05bbe
] 
[Fix hang after a user input error (for example, EOF).
Judah Jacobson <[EMAIL PROTECTED]>**20080918163017] 
[replace consRLSealed with a more  general mapFlipped.
David Roundy <[EMAIL PROTECTED]>**20080921185241
 Ignore-this: c28f73f165254582cba6a14ba6ce93
] 
[make issue1039 fix allow small dissimilar  repositories.
David Roundy <[EMAIL PROTECTED]>**20080921184515
 Ignore-this: 918a09df18ef48c649c1bfaa866d6176
] 
[revert refactor that breaks type witnesses.
David Roundy <[EMAIL PROTECTED]>**20080921182331
 Ignore-this: dd692cffc1a238d6726448bacfe9cacc
] 
[Add '--ignore-unrelated-repos' option to disable unrelated repositories check.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919152631] 
[Resolve issue1039: detect seemingly unrelated repositories when doing push, pull and send.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919144553] 
[Refactor in pull_cmd.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919135349
 Ignore-this: e26a489a7a53aeaba544ae5ad0006700
] 
[Test for issue1039.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919153011] 
[manual: add an example of record --pipe prompts similar to tag --pipe docs
Simon Michael <[EMAIL PROTECTED]>**20080918205353] 
[user manual corrections regarding what record and tag --pipe prompt for
Simon Michael <[EMAIL PROTECTED]>**20080918204500] 
[clarify the short help for --pipe
Simon Michael <[EMAIL PROTECTED]>**20080918193717] 
[Use gmakeisms for prettier output.
Trent W. Buck <[EMAIL PROTECTED]>**20080919071358] 
[Spaces in Darcs.Arguments.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919150440] 
[Spaces in Darcs.Commands.Send.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919150139] 
[Spaces in Darcs.Commands.Pull.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919145812] 
[Spaces in Darcs.Commands.Push.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919145553] 
[Print "We have the following patches to send:" only when we really have somthing to send.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919114229] 
[fix changes.pl test (translating to bash)
David Roundy <[EMAIL PROTECTED]>**20080917182432
 Ignore-this: 5f8bc7e1f9eadc073402a935142281c4
 This test made assumptions such as that darcs wouldn't ever add a long
 comment to its internal representation of changes, which are now
 broken.
] 
[hokey fix to allow unit tests to generate random input.
David Roundy <[EMAIL PROTECTED]>**20080917170913
 Ignore-this: 31e847e82eef741f4c6cc857fd79a245
 A nicer fix would be to move namepatch and patchinfo into some sort of
 random-number monad rather than leaving them in IO and using
 unsafePerformIO in the example-generation scripts.
] 
[resolve issue27: add junk to patch identifiers.
David Roundy <[EMAIL PROTECTED]>**20080917154657
 Ignore-this: b91ab6f6e05e0fda25488fa51653b741
] 
[TAG 2.0.3pre1
Eric Kow <[EMAIL PROTECTED]>**20080918023645] 
Patch bundle hash:
707e14cee1e965a9377c5d29058f44d967f8953c
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to