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