[darcs-users] [patch420] resolve issue1809: don't call modernizePatch during co...

Reinier Lamers bugs at darcs.net
Sun Oct 31 16:34:41 UTC 2010


Reinier Lamers <tux_rocker at reinier.de> added the comment:

Hi,

This looks as if it doesn't break things, so I am applying it. I do have a
question about the generated data files below however, out of curiosity :)

> New patches:
> 
> [resolve issue1809: don't call modernizePatch during conversion
> Ganesh Sittampalam <ganesh at earth.li>**20101016224848
>  Ignore-this: 884eedd93a6718c791494c995eedcc03
>  
>  The call to modernizePatch was introduced to fix issue744, but:
>  (a) It seems to have been ineffective as it's only called for
>  patches where isMerger is true, so none of the patch transformations
>  can kick in.
>  (b) It had the apparently unwanted side-effect of completely disabling
>  any attempts to convert mergers into conflictors.
>  
>  This patch reverts that, and adds some test material for the
>  'darcs convert' command.
>  
> hunk ./src/Darcs/Commands/Convert.lhs 189
>                       Just d -> p : concatMap fixDep d
>                       Nothing -> [p]
>            convertOne :: Patch C(x y) -> FL RealPatch C(x y)
> -          convertOne x | isMerger x = case mergeUnravelled $ publicUnravel $ modernizePatch x of
> +          convertOne x | isMerger x = case mergeUnravelled $ publicUnravel x of

So this is the real change here: we remove a call to modernizePatch. Notice
the "isMerger" guard, which means that modernizePatch will never be invoked
on the ComP patches that contain the weird "mv a b ; add b" sequences that it
is supposed to get rid of.

> hunk ./src/Darcs/Patch/Prim.lhs 953
>                       then Nothing
>                       else Just $ before : tok : rest
>  
> -modernizePrim :: Prim C(x y) -> FL Prim C(x y)
> -modernizePrim (Split ps) = concatFL $ mapFL_FL modernizePrim ps
> -modernizePrim p = p :>: NilFL
> -
>  instance MyEq Prim where
>      unsafeCompare (Move a b) (Move c d) = a == c && b == d
>      unsafeCompare (DP d1 p1) (DP d2 p2)
> hunk ./src/Darcs/Patch/V1/Commute.lhs 693
>      isHunk p = do PP p' <- return p
>                    isHunk p'
>  
> --- |@modernizePatch@ is used during conversion to Darcs 2 format.
> --- It does the following:
> ---
> ---   * removes mergers by linearising them, thus removing the ability
> ---     to commute them
> ---
> ---   * drops mv a b ; add b which was introduced by an error in earlier
> ---     versions of darcs (TODO: check this; identify the versions)
> -modernizePatch :: Patch C(x y) -> Patch C(x y)
> -modernizePatch p@(Merger _ _ _ _) = fromPrims $ effect p
> -modernizePatch p@(Regrem _ _ _ _) = fromPrims $ effect p
> -modernizePatch (ComP ps) = ComP $ filtermv $ mapFL_FL modernizePatch ps
> -    where filtermv :: FL Patch C(x y) -> FL Patch C(x y)
> -          filtermv (PP (Move _ b :: Prim C(x z)):>:xs)
> -            | IsEq <- hasadd xs = filtermv xs
> -              where hasadd :: FL Patch C(a b) -> EqCheck C(x z)
> -                    hasadd (PP (FP b' AddFile):>:_) | b' == b = unsafeCoerceP IsEq
> -                    hasadd (PP (DP b' AddDir):>:_) | b' == b = unsafeCoerceP IsEq
> -                    hasadd (PP (FP b' RmFile):>:_) | b' == b = NotEq
> -                    hasadd (PP (DP b' RmDir):>:_) | b' == b = NotEq
> -                    hasadd (_:>:z) = hasadd z
> -                    hasadd NilFL = NotEq
> -          filtermv (x:>:xs) = x :>: filtermv xs
> -          filtermv NilFL = NilFL
> -
> -modernizePatch (PP p) = fromPrims $ modernizePrim p
> -
>  instance FromPrims Patch where
>      fromPrims (p :>: NilFL) = PP p
>      fromPrims ps = joinPatchesFL $ mapFL_FL PP ps

And so we completely remove modernizePatch. It is apparently unused now.

In the following primitive patches, Ganesh adds a test for the convert
command. It uses data files in the tests/data/convert directory.

> addfile ./tests/bin/convert-writer.sh
> hunk ./tests/bin/convert-writer.sh 1
> +#!/usr/bin/env bash
> hunk ./tests/bin/convert-writer.sh 3
> +## Copyright (C) 2009 Ganesh Sittampalam
> +##
> +## Permission is hereby granted, free of charge, to any person
> +## obtaining a copy of this software and associated documentation
> +## files (the "Software"), to deal in the Software without
> +## restriction, including without limitation the rights to use, copy,
> +## modify, merge, publish, distribute, sublicense, and/or sell copies
> +## of the Software, and to permit persons to whom the Software is
> +## furnished to do so, subject to the following conditions:
> +##
> +## The above copyright notice and this permission notice shall be
> +## included in all copies or substantial portions of the Software.
> +##
> +## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> +## EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> +## MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> +## NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
> +## BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
> +## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
> +## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
> +## SOFTWARE.
> +
> +# This script is a convenient hack for generating test material
> +# for convert.sh.
> +
> +# To generate new test material, move this into the tests
> +# directory temporarily, set up the test repo in the relevant
> +# section of this code, set the test name, then
> +# 'cabal test convert-writer.sh', then manually inspect the
> +# test data and/or play with the repo it made to be sure it's
> +# as wanted.
> +
> +# Note that the script is deliberately setup to fail so we
> +# can inspect the output of darcs convert, and also get hold of
> +# the generated test repos easily for playing with.
> +
> +. lib
> +
> +# only run this once
> +grep darcs-2 $HOME/.darcs/defaults || exit 200
> +
> +rm -rf temp
> +mkdir temp
> +cd temp
> +
> +# set up the test repo here
> +mkdir repo
> +cd repo
> +darcs init --hashed
> +echo wibble > wibble
> +darcs rec -lam 'wibble'
> +cd ..
> +
> +darcs get repo repoA
> +cd repoA
> +echo 'A' >> wibble
> +darcs rec -lam 'A'
> +cd ..
> +
> +darcs get repo repoB
> +cd repoB
> +echo 'B' >> wibble
> +darcs rec -lam 'B'
> +cd ..
> +
> +darcs get repoA repoAB
> +cd repoAB
> +darcs pull -a --allow-conflicts ../repoB
> +echo 'AB' >> wibble
> +darcs rec -lam 'AB'
> +cd ..
> +
> +darcs get repo repoC
> +cd repoC
> +echo 'C' >> wibble
> +darcs rec -lam 'C'
> +cd ..
> +
> +darcs get repoAB repoABC
> +cd repoABC
> +darcs pull -a --allow-conflicts ../repoC
> +echo 'ABC' >> wibble
> +darcs rec -lam 'ABC'
> +cd ..
> +
> +darcs get repo repoD
> +cd repoD
> +echo 'D' >> wibble
> +darcs rec -lam 'D'
> +cd ..
> +
> +
> +cd repo
> +darcs pull -a --allow-conflicts ../repoABC
> +darcs pull -a --allow-conflicts ../repoD
> +cd ..
> +
> +# end test repo setup: change the test name below too
> +testname=tworesolutions
> +
> +echo 'I understand the consequences of my action' | darcs convert repo repo2
> +
> +mkdir empty-hashed
> +cd empty-hashed
> +darcs init --hashed
> +cd ..
> +
> +mkdir empty-darcs2
> +cd empty-darcs2
> +darcs init --darcs-2
> +cd ..
> +
> +cd repo
> +darcs send -a -o $TESTDATA/convert/darcs1/$testname.dpatch ../empty-hashed
> +cd ..
> +
> +cd repo2
> +darcs send -a -o $TESTDATA/convert/darcs2/$testname.dpatch ../empty-darcs2
> +cd ..
> +
> +# fail so we can see the output
> +exit 1

This is a script called convert-writer that creates repositories that contain
conflicts and resolutions in a couple of ways.  It only creates hunk-hunk
conflicts though. It was used to make the test data in tests/data/convert.

> addfile ./tests/convert.sh
> hunk ./tests/convert.sh 1
> +#!/usr/bin/env bash
> +
> +## Tests for convert command based on previously checked results
> +## to generate new test material for this test,
> +## see bin/convert-writer.sh
> +##
> +## Copyright (C) 2009 Ganesh Sittampalam
> +##
> +## Permission is hereby granted, free of charge, to any person
> +## obtaining a copy of this software and associated documentation
> +## files (the "Software"), to deal in the Software without
> +## restriction, including without limitation the rights to use, copy,
> +## modify, merge, publish, distribute, sublicense, and/or sell copies
> +## of the Software, and to permit persons to whom the Software is
> +## furnished to do so, subject to the following conditions:
> +##
> +## The above copyright notice and this permission notice shall be
> +## included in all copies or substantial portions of the Software.
> +##
> +## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> +## EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> +## MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> +## NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
> +## BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
> +## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
> +## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
> +## SOFTWARE.
> +
> +. lib
> +
> +grep old-fashioned $HOME/.darcs/defaults || grep hashed $HOME/.darcs/defaults || exit 200
> +
> +runtest() {
> +    rm -rf temp
> +    mkdir temp
> +    cd temp
> +
> +    mkdir repo
> +    cd repo
> +    darcs init
> +    darcs apply --allow-conflicts $TESTDATA/convert/darcs1/$1.dpatch
> +    cd ..
> +    echo 'I understand the consequences of my action' | darcs convert repo repo2
> +    mkdir empty-darcs2
> +    cd empty-darcs2
> +    darcs init --darcs-2
> +    cd ..
> +    cd repo2
> +    darcs send -a -o ../$1-darcs2.dpatch ../empty-darcs2
> +    cd ..
> +    diff -I'1 patch for repository ' -I'patches for repository ' -u $TESTDATA/convert/darcs2/$1.dpatch $1-darcs2.dpatch
> +}
> +
> +runtest simple
> +runtest twowayconflict
> +runtest threewayconflict
> +runtest threewayanddep
> +runtest threewayandmultideps
> +runtest resolution
> +runtest tworesolutions

So this is the actual test scripts. For every .dpatch file from the data
directory, it applies it to an empty repo, converts the resulting repo to
darcs-2, and compares the repository contents to a stored reference copy.

Now follows the test data (both the darcs-1 input and darcs-2 reference
copies). In for example the files test/data/convert/darcs1/resolution.dpatch
and tests/data/convert/darcs2/resolution.dpatch, we see that it is tested
that mergers are turned into conflictors.

Comparing the darcs-1 and darcs-2 versions of these files is actually a good
way to learn how darcs handles conflicts :)

I have a question about tests/data/convert/darcs2threewayandmultipdeps.dpatch.
It contains an empty patch B2. If I apply the bundle to an empty repo, I can
unpull B2 just fine without unpulling anything else. This surprises me quite
a bit. Is this an example of the lossy conversion done by 'darcs convert'?

> adddir ./tests/data/convert
> adddir ./tests/data/convert/darcs1
> addfile ./tests/data/convert/darcs1/resolution.dpatch
> hunk ./tests/data/convert/darcs1/resolution.dpatch 1
> +5 patches for repository /tmp/tmp6648/temp/empty-hashed:
> +
> +Sat Oct 16 23:32:07 BST 2010  tester
> +  * wibble
> +
> +Sat Oct 16 23:32:07 BST 2010  tester
> +  * A
> +
> +Sat Oct 16 23:32:07 BST 2010  tester
> +  * B
> +
> +Sat Oct 16 23:32:07 BST 2010  tester
> +  * AB
> +
> +Sat Oct 16 23:32:07 BST 2010  tester
> +  * C
> +
> +New patches:
> +
> +[wibble
> +tester**20101016223207
> + Ignore-this: 64b5a1e603ddf61e59421bdde45b3bc
> +] {
> +addfile ./wibble
> +hunk ./wibble 1
> ++wibble
> +}
> +[A
> +tester**20101016223207
> + Ignore-this: bc0d30ac5170e1a25ccb20e6cb06ac86
> +] hunk ./wibble 2
> + wibble
> ++A
> +[B
> +tester**20101016223207
> + Ignore-this: 3bbebcf8fa444bdcb31ab799c6754067
> +] merger 0.0 (
> +hunk ./wibble 2
> ++A
> +hunk ./wibble 2
> ++B
> +)
> +[AB
> +tester**20101016223207
> + Ignore-this: 8fa03d26b9dbbcdb50a323e5c58b16dd
> +] hunk ./wibble 2
> + wibble
> ++AB
> +[C
> +tester**20101016223207
> + Ignore-this: e7c0716361e411645066f8a3c2eff769
> +] merger 0.0 (
> +hunk ./wibble 2
> ++AB
> +merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 2
> ++A
> +hunk ./wibble 2
> ++B
> +)
> +merger 0.0 (
> +hunk ./wibble 2
> ++A
> +hunk ./wibble 2
> ++C
> +)
> +)
> +)
> +
> +Context:
> +
> +Patch bundle hash:
> +b23d175b10d6fdaee3bb25ac92b55723de2822cd
> addfile ./tests/data/convert/darcs1/simple.dpatch
> hunk ./tests/data/convert/darcs1/simple.dpatch 1
> +1 patch for repository /tmp/tmp5746/temp/empty-hashed:
> +
> +Sat Oct 16 23:28:30 BST 2010  tester
> +  * wibble
> +
> +New patches:
> +
> +[wibble
> +tester**20101016222830
> + Ignore-this: f155bc27211e0233c23b8c0a757b8071
> +] {
> +addfile ./wibble
> +hunk ./wibble 1
> ++wibble
> +}
> +
> +Context:
> +
> +Patch bundle hash:
> +1bfa82f0941e1dcc13f9f94179dd6a7426ca0b6f
> addfile ./tests/data/convert/darcs1/threewayanddep.dpatch
> hunk ./tests/data/convert/darcs1/threewayanddep.dpatch 1
> +5 patches for repository /tmp/tmp5530/temp/empty-hashed:
> +
> +Sat Oct 16 23:27:54 BST 2010  tester
> +  * wibble
> +
> +Sat Oct 16 23:27:54 BST 2010  tester
> +  * A1
> +
> +Sat Oct 16 23:27:54 BST 2010  tester
> +  * A2
> +
> +Sat Oct 16 23:27:54 BST 2010  tester
> +  * B
> +
> +Sat Oct 16 23:27:54 BST 2010  tester
> +  * C
> +
> +New patches:
> +
> +[wibble
> +tester**20101016222754
> + Ignore-this: 355914edd0f88f0ea7c2ef60aec9c2a1
> +] {
> +addfile ./wibble
> +hunk ./wibble 1
> ++wibble
> +}
> +[A1
> +tester**20101016222754
> + Ignore-this: 54df34ebd488b772c37c3d43a38b0bfa
> +] hunk ./wibble 2
> + wibble
> ++A1
> +[A2
> +tester**20101016222754
> + Ignore-this: 4d1b08c7274743e7d0d2f210518d5a19
> +] hunk ./wibble 3
> + wibble
> + A1
> ++A2
> +[B
> +tester**20101016222754
> + Ignore-this: 9ba51da6bb1506afa2104326cd5df54b
> +] merger 0.0 (
> +hunk ./wibble 3
> ++A2
> +merger 0.0 (
> +hunk ./wibble 2
> ++A1
> +hunk ./wibble 2
> ++B
> +)
> +)
> +[C
> +tester**20101016222754
> + Ignore-this: 295e8a851b7a936b3d08b0ce7eaaf2ac
> +] merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 3
> ++A2
> +merger 0.0 (
> +hunk ./wibble 2
> ++A1
> +hunk ./wibble 2
> ++B
> +)
> +)
> +merger 0.0 (
> +hunk ./wibble 3
> ++A2
> +merger 0.0 (
> +hunk ./wibble 2
> ++A1
> +hunk ./wibble 2
> ++C
> +)
> +)
> +)
> +
> +Context:
> +
> +Patch bundle hash:
> +3c77da1c02a49215134a9607493af93d55608f56
> addfile ./tests/data/convert/darcs1/threewayandmultideps.dpatch
> hunk ./tests/data/convert/darcs1/threewayandmultideps.dpatch 1
> +7 patches for repository /tmp/tmp5411/temp/empty-hashed:
> +
> +Sat Oct 16 23:27:21 BST 2010  tester
> +  * wibble
> +
> +Sat Oct 16 23:27:21 BST 2010  tester
> +  * A1
> +
> +Sat Oct 16 23:27:21 BST 2010  tester
> +  * A2
> +
> +Sat Oct 16 23:27:21 BST 2010  tester
> +  * B1
> +
> +Sat Oct 16 23:27:21 BST 2010  tester
> +  * B2
> +
> +Sat Oct 16 23:27:21 BST 2010  tester
> +  * C1
> +
> +Sat Oct 16 23:27:21 BST 2010  tester
> +  * C2
> +
> +New patches:
> +
> +[wibble
> +tester**20101016222721
> + Ignore-this: 64432ba123d81c8f0e688b44feb8f587
> +] {
> +addfile ./wibble
> +hunk ./wibble 1
> ++wibble
> +}
> +[A1
> +tester**20101016222721
> + Ignore-this: d749f48333e6ff2e994b1df71e76933b
> +] hunk ./wibble 2
> + wibble
> ++A1
> +[A2
> +tester**20101016222721
> + Ignore-this: 6f006a52975a708a8038d52e5e39ef0f
> +] hunk ./wibble 3
> + wibble
> + A1
> ++A2
> +[B1
> +tester**20101016222721
> + Ignore-this: f4d4b5b1c73bd6fa8abe6e5e680d66a7
> +] merger 0.0 (
> +hunk ./wibble 3
> ++A2
> +merger 0.0 (
> +hunk ./wibble 2
> ++A1
> +hunk ./wibble 2
> ++B1
> +)
> +)
> +[B2
> +tester**20101016222721
> + Ignore-this: 1d60b6c0ba913fff4d1e32ad26ae07bb
> +] merger 0.0 (
> +merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 2
> ++A1
> +hunk ./wibble 2
> ++B1
> +)
> +hunk ./wibble 3
> ++A2
> +)
> +merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 2
> ++B1
> +hunk ./wibble 2
> ++A1
> +)
> +hunk ./wibble 3
> ++B2
> +)
> +)
> +[C1
> +tester**20101016222721
> + Ignore-this: 25b6a6959d19980ad16983a542c6825
> +] merger 0.0 (
> +merger 0.0 (
> +merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 2
> ++A1
> +hunk ./wibble 2
> ++B1
> +)
> +hunk ./wibble 3
> ++A2
> +)
> +merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 2
> ++B1
> +hunk ./wibble 2
> ++A1
> +)
> +hunk ./wibble 3
> ++B2
> +)
> +)
> +merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 3
> ++A2
> +merger 0.0 (
> +hunk ./wibble 2
> ++A1
> +hunk ./wibble 2
> ++B1
> +)
> +)
> +merger 0.0 (
> +hunk ./wibble 3
> ++A2
> +merger 0.0 (
> +hunk ./wibble 2
> ++A1
> +hunk ./wibble 2
> ++C1
> +)
> +)
> +)
> +)
> +[C2
> +tester**20101016222721
> + Ignore-this: c16d607216c36d5f7727c64d2ec103d4
> +] merger 0.0 (
> +merger 0.0 (
> +merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 3
> ++A2
> +merger 0.0 (
> +hunk ./wibble 2
> ++A1
> +hunk ./wibble 2
> ++B1
> +)
> +)
> +merger 0.0 (
> +hunk ./wibble 3
> ++A2
> +merger 0.0 (
> +hunk ./wibble 2
> ++A1
> +hunk ./wibble 2
> ++C1
> +)
> +)
> +)
> +merger 0.0 (
> +merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 2
> ++A1
> +hunk ./wibble 2
> ++B1
> +)
> +hunk ./wibble 3
> ++A2
> +)
> +merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 2
> ++B1
> +hunk ./wibble 2
> ++A1
> +)
> +hunk ./wibble 3
> ++B2
> +)
> +)
> +)
> +merger 0.0 (
> +merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 3
> ++A2
> +merger 0.0 (
> +hunk ./wibble 2
> ++A1
> +hunk ./wibble 2
> ++C1
> +)
> +)
> +merger 0.0 (
> +hunk ./wibble 3
> ++A2
> +merger 0.0 (
> +hunk ./wibble 2
> ++A1
> +hunk ./wibble 2
> ++B1
> +)
> +)
> +)
> +merger 0.0 (
> +merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 2
> ++A1
> +hunk ./wibble 2
> ++C1
> +)
> +hunk ./wibble 3
> ++A2
> +)
> +merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 2
> ++C1
> +hunk ./wibble 2
> ++A1
> +)
> +hunk ./wibble 3
> ++C2
> +)
> +)
> +)
> +)
> +
> +Context:
> +
> +Patch bundle hash:
> +1069761dac242f9583871b27db2fabbd00d6f805
> addfile ./tests/data/convert/darcs1/threewayconflict.dpatch
> hunk ./tests/data/convert/darcs1/threewayconflict.dpatch 1
> +4 patches for repository /tmp/tmp5605/temp/empty-hashed:
> +
> +Sat Oct 16 23:28:14 BST 2010  tester
> +  * wibble
> +
> +Sat Oct 16 23:28:14 BST 2010  tester
> +  * A
> +
> +Sat Oct 16 23:28:14 BST 2010  tester
> +  * B
> +
> +Sat Oct 16 23:28:14 BST 2010  tester
> +  * C
> +
> +New patches:
> +
> +[wibble
> +tester**20101016222814
> + Ignore-this: c125275c671c210086eccb12de9f6c1c
> +] {
> +addfile ./wibble
> +hunk ./wibble 1
> ++wibble
> +}
> +[A
> +tester**20101016222814
> + Ignore-this: 653be63c1f8a6f4bc1de1e45c0ae9084
> +] hunk ./wibble 2
> + wibble
> ++A
> +[B
> +tester**20101016222814
> + Ignore-this: 1a8e3f57d2baeca09f2dda003e4df58d
> +] merger 0.0 (
> +hunk ./wibble 2
> ++A
> +hunk ./wibble 2
> ++B
> +)
> +[C
> +tester**20101016222814
> + Ignore-this: 9d40b33ef1b73b9a950f39c4e8a75dfe
> +] merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 2
> ++A
> +hunk ./wibble 2
> ++B
> +)
> +merger 0.0 (
> +hunk ./wibble 2
> ++A
> +hunk ./wibble 2
> ++C
> +)
> +)
> +
> +Context:
> +
> +Patch bundle hash:
> +c189b5635aed28be92cfbcf0de65c0f40c79da7a
> addfile ./tests/data/convert/darcs1/tworesolutions.dpatch
> hunk ./tests/data/convert/darcs1/tworesolutions.dpatch 1
> +7 patches for repository /tmp/tmp6805/temp/empty-hashed:
> +
> +Sat Oct 16 23:34:33 BST 2010  tester
> +  * wibble
> +
> +Sat Oct 16 23:34:33 BST 2010  tester
> +  * A
> +
> +Sat Oct 16 23:34:33 BST 2010  tester
> +  * B
> +
> +Sat Oct 16 23:34:33 BST 2010  tester
> +  * AB
> +
> +Sat Oct 16 23:34:33 BST 2010  tester
> +  * C
> +
> +Sat Oct 16 23:34:33 BST 2010  tester
> +  * ABC
> +
> +Sat Oct 16 23:34:33 BST 2010  tester
> +  * D
> +
> +New patches:
> +
> +[wibble
> +tester**20101016223433
> + Ignore-this: 577185c51e4839dd1041372fbfa8515b
> +] {
> +addfile ./wibble
> +hunk ./wibble 1
> ++wibble
> +}
> +[A
> +tester**20101016223433
> + Ignore-this: 580c4417986d5c56590bf36f5a125f38
> +] hunk ./wibble 2
> + wibble
> ++A
> +[B
> +tester**20101016223433
> + Ignore-this: a9f2335fe2dc972fd0bc09edc6252256
> +] merger 0.0 (
> +hunk ./wibble 2
> ++A
> +hunk ./wibble 2
> ++B
> +)
> +[AB
> +tester**20101016223433
> + Ignore-this: cba095e78e2bdfe15dbdf2cb5c69cc6d
> +] hunk ./wibble 2
> + wibble
> ++AB
> +[C
> +tester**20101016223433
> + Ignore-this: da2a7e05abed8dba0077e69e55bd926
> +] merger 0.0 (
> +hunk ./wibble 2
> ++AB
> +merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 2
> ++A
> +hunk ./wibble 2
> ++B
> +)
> +merger 0.0 (
> +hunk ./wibble 2
> ++A
> +hunk ./wibble 2
> ++C
> +)
> +)
> +)
> +[ABC
> +tester**20101016223433
> + Ignore-this: db94de3935df87d0a991c0ab6a58e5b1
> +] hunk ./wibble 2
> + wibble
> ++ABC
> +[D
> +tester**20101016223433
> + Ignore-this: 829adb4326b290aa6f741b3a15fbabfc
> +] merger 0.0 (
> +hunk ./wibble 2
> ++ABC
> +merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 2
> ++AB
> +merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 2
> ++A
> +hunk ./wibble 2
> ++B
> +)
> +merger 0.0 (
> +hunk ./wibble 2
> ++A
> +hunk ./wibble 2
> ++C
> +)
> +)
> +)
> +merger 0.0 (
> +hunk ./wibble 2
> ++AB
> +merger 0.0 (
> +merger 0.0 (
> +hunk ./wibble 2
> ++A
> +hunk ./wibble 2
> ++B
> +)
> +merger 0.0 (
> +hunk ./wibble 2
> ++A
> +hunk ./wibble 2
> ++D
> +)
> +)
> +)
> +)
> +)
> +
> +Context:
> +
> +Patch bundle hash:
> +5fc1d0ff89472d10a0b19ae4f7849b1b99d500b4
> addfile ./tests/data/convert/darcs1/twowayconflict.dpatch
> hunk ./tests/data/convert/darcs1/twowayconflict.dpatch 1
> +3 patches for repository /tmp/tmp5677/temp/empty-hashed:
> +
> +Sat Oct 16 23:28:22 BST 2010  tester
> +  * wibble
> +
> +Sat Oct 16 23:28:22 BST 2010  tester
> +  * A
> +
> +Sat Oct 16 23:28:22 BST 2010  tester
> +  * B
> +
> +New patches:
> +
> +[wibble
> +tester**20101016222822
> + Ignore-this: 88662d08dd524d92ad4cca6df0d643e4
> +] {
> +addfile ./wibble
> +hunk ./wibble 1
> ++wibble
> +}
> +[A
> +tester**20101016222822
> + Ignore-this: 2d69de402438481946682efcad5e20cd
> +] hunk ./wibble 2
> + wibble
> ++A
> +[B
> +tester**20101016222822
> + Ignore-this: 9c8daaedcb674c022ddbcef19752d694
> +] merger 0.0 (
> +hunk ./wibble 2
> ++A
> +hunk ./wibble 2
> ++B
> +)
> +
> +Context:
> +
> +Patch bundle hash:
> +1e2ce71b56e4666c1b086b09ae351a6c3c768b8c
> adddir ./tests/data/convert/darcs2
> addfile ./tests/data/convert/darcs2/resolution.dpatch
> hunk ./tests/data/convert/darcs2/resolution.dpatch 1
> +5 patches for repository /tmp/tmp6648/temp/empty-darcs2:
> +
> +Sat Oct 16 23:32:07 BST 2010  tester
> +  * wibble
> +
> +Sat Oct 16 23:32:07 BST 2010  tester
> +  * A
> +
> +Sat Oct 16 23:32:07 BST 2010  tester
> +  * B
> +
> +Sat Oct 16 23:32:07 BST 2010  tester
> +  * AB
> +
> +Sat Oct 16 23:32:07 BST 2010  tester
> +  * C
> +
> +New patches:
> +
> +[wibble
> +tester**20101016223207
> + Ignore-this: 64b5a1e603ddf61e59421bdde45b3bc
> +] addfile ./wibble
> +hunk ./wibble 1
> ++wibble
> +[A
> +tester**20101016223207
> + Ignore-this: bc0d30ac5170e1a25ccb20e6cb06ac86
> +] hunk ./wibble 2
> + wibble
> ++A
> +[B
> +tester**20101016223207
> + Ignore-this: 3bbebcf8fa444bdcb31ab799c6754067
> +] conflictor [
> +hunk ./wibble 2
> ++A
> +]
> +:
> +hunk ./wibble 2
> ++B
> +[AB
> +tester**20101016223207
> + Ignore-this: 8fa03d26b9dbbcdb50a323e5c58b16dd
> +] hunk ./wibble 2
> + wibble
> ++AB
> +[C
> +tester**20101016223207
> + Ignore-this: e7c0716361e411645066f8a3c2eff769
> +] conflictor [
> +hunk ./wibble 2
> ++AB
> +]
> +:
> +hunk ./wibble 2
> ++C
> +
> +Context:
> +
> +Patch bundle hash:
> +cc43b921f6010f451b2dbe275b7fcd04c3862335
> addfile ./tests/data/convert/darcs2/simple.dpatch
> hunk ./tests/data/convert/darcs2/simple.dpatch 1
> +1 patch for repository /tmp/tmp5746/temp/empty-darcs2:
> +
> +Sat Oct 16 23:28:30 BST 2010  tester
> +  * wibble
> +
> +New patches:
> +
> +[wibble
> +tester**20101016222830
> + Ignore-this: f155bc27211e0233c23b8c0a757b8071
> +] addfile ./wibble
> +hunk ./wibble 1
> ++wibble
> +
> +Context:
> +
> +Patch bundle hash:
> +75ced55c52362a8b2ff171b48751d19000fe1790
> addfile ./tests/data/convert/darcs2/threewayanddep.dpatch
> hunk ./tests/data/convert/darcs2/threewayanddep.dpatch 1
> +5 patches for repository /tmp/tmp5530/temp/empty-darcs2:
> +
> +Sat Oct 16 23:27:54 BST 2010  tester
> +  * wibble
> +
> +Sat Oct 16 23:27:54 BST 2010  tester
> +  * A1
> +
> +Sat Oct 16 23:27:54 BST 2010  tester
> +  * A2
> +
> +Sat Oct 16 23:27:54 BST 2010  tester
> +  * B
> +
> +Sat Oct 16 23:27:54 BST 2010  tester
> +  * C
> +
> +New patches:
> +
> +[wibble
> +tester**20101016222754
> + Ignore-this: 355914edd0f88f0ea7c2ef60aec9c2a1
> +] addfile ./wibble
> +hunk ./wibble 1
> ++wibble
> +[A1
> +tester**20101016222754
> + Ignore-this: 54df34ebd488b772c37c3d43a38b0bfa
> +] hunk ./wibble 2
> + wibble
> ++A1
> +[A2
> +tester**20101016222754
> + Ignore-this: 4d1b08c7274743e7d0d2f210518d5a19
> +] hunk ./wibble 3
> + wibble
> + A1
> ++A2
> +[B
> +tester**20101016222754
> + Ignore-this: 9ba51da6bb1506afa2104326cd5df54b
> +] conflictor [
> +hunk ./wibble 2
> ++A1
> ++A2
> +]
> +:
> +hunk ./wibble 2
> ++B
> +[C
> +tester**20101016222754
> + Ignore-this: 295e8a851b7a936b3d08b0ce7eaaf2ac
> +] conflictor {{
> +:
> +hunk ./wibble 2
> ++A1
> ++A2
> +:
> +hunk ./wibble 2
> ++B
> +}} []
> +:
> +hunk ./wibble 2
> ++C
> +
> +Context:
> +
> +Patch bundle hash:
> +f9974a2fdbdea580b1be0eaba951e6285f9bfb5d
> addfile ./tests/data/convert/darcs2/threewayandmultideps.dpatch
> hunk ./tests/data/convert/darcs2/threewayandmultideps.dpatch 1
> +7 patches for repository /tmp/tmp5411/temp/empty-darcs2:
> +
> +Sat Oct 16 23:27:21 BST 2010  tester
> +  * wibble
> +
> +Sat Oct 16 23:27:21 BST 2010  tester
> +  * A1
> +
> +Sat Oct 16 23:27:21 BST 2010  tester
> +  * A2
> +
> +Sat Oct 16 23:27:21 BST 2010  tester
> +  * B1
> +
> +Sat Oct 16 23:27:21 BST 2010  tester
> +  * B2
> +
> +Sat Oct 16 23:27:21 BST 2010  tester
> +  * C1
> +
> +Sat Oct 16 23:27:21 BST 2010  tester
> +  * C2
> +
> +New patches:
> +
> +[wibble
> +tester**20101016222721
> + Ignore-this: 64432ba123d81c8f0e688b44feb8f587
> +] addfile ./wibble
> +hunk ./wibble 1
> ++wibble
> +[A1
> +tester**20101016222721
> + Ignore-this: d749f48333e6ff2e994b1df71e76933b
> +] hunk ./wibble 2
> + wibble
> ++A1
> +[A2
> +tester**20101016222721
> + Ignore-this: 6f006a52975a708a8038d52e5e39ef0f
> +] hunk ./wibble 3
> + wibble
> + A1
> ++A2
> +[B1
> +tester**20101016222721
> + Ignore-this: f4d4b5b1c73bd6fa8abe6e5e680d66a7
> +] conflictor [
> +hunk ./wibble 2
> ++A1
> ++A2
> +]
> +:
> +hunk ./wibble 2
> ++B1
> +[B2
> +tester**20101016222721
> + Ignore-this: 1d60b6c0ba913fff4d1e32ad26ae07bb
> +] 
> +[C1
> +tester**20101016222721
> + Ignore-this: 25b6a6959d19980ad16983a542c6825
> +] conflictor {{
> +:
> +hunk ./wibble 2
> ++A1
> ++A2
> +:
> +hunk ./wibble 2
> ++B1
> ++B2
> +}} []
> +:
> +hunk ./wibble 2
> ++C1
> +[C2
> +tester**20101016222721
> + Ignore-this: c16d607216c36d5f7727c64d2ec103d4
> +] conflictor {{
> +:
> +hunk ./wibble 2
> ++A1
> ++A2
> +:
> +hunk ./wibble 2
> ++B1
> ++B2
> +}} []
> +:
> +hunk ./wibble 2
> ++C1
> ++C2
> +
> +Context:
> +
> +Patch bundle hash:
> +7f2bd6324e6e1f2d4efe67f98696ca0ead048fe5
> addfile ./tests/data/convert/darcs2/threewayconflict.dpatch
> hunk ./tests/data/convert/darcs2/threewayconflict.dpatch 1
> +4 patches for repository /tmp/tmp5605/temp/empty-darcs2:
> +
> +Sat Oct 16 23:28:14 BST 2010  tester
> +  * wibble
> +
> +Sat Oct 16 23:28:14 BST 2010  tester
> +  * A
> +
> +Sat Oct 16 23:28:14 BST 2010  tester
> +  * B
> +
> +Sat Oct 16 23:28:14 BST 2010  tester
> +  * C
> +
> +New patches:
> +
> +[wibble
> +tester**20101016222814
> + Ignore-this: c125275c671c210086eccb12de9f6c1c
> +] addfile ./wibble
> +hunk ./wibble 1
> ++wibble
> +[A
> +tester**20101016222814
> + Ignore-this: 653be63c1f8a6f4bc1de1e45c0ae9084
> +] hunk ./wibble 2
> + wibble
> ++A
> +[B
> +tester**20101016222814
> + Ignore-this: 1a8e3f57d2baeca09f2dda003e4df58d
> +] conflictor [
> +hunk ./wibble 2
> ++A
> +]
> +:
> +hunk ./wibble 2
> ++B
> +[C
> +tester**20101016222814
> + Ignore-this: 9d40b33ef1b73b9a950f39c4e8a75dfe
> +] conflictor {{
> +:
> +hunk ./wibble 2
> ++A
> +:
> +hunk ./wibble 2
> ++B
> +}} []
> +:
> +hunk ./wibble 2
> ++C
> +
> +Context:
> +
> +Patch bundle hash:
> +ba3e1ce15840fd37358fcd43c4c03273d1779153
> addfile ./tests/data/convert/darcs2/tworesolutions.dpatch
> hunk ./tests/data/convert/darcs2/tworesolutions.dpatch 1
> +7 patches for repository /tmp/tmp6805/temp/empty-darcs2:
> +
> +Sat Oct 16 23:34:33 BST 2010  tester
> +  * wibble
> +
> +Sat Oct 16 23:34:33 BST 2010  tester
> +  * A
> +
> +Sat Oct 16 23:34:33 BST 2010  tester
> +  * B
> +
> +Sat Oct 16 23:34:33 BST 2010  tester
> +  * AB
> +
> +Sat Oct 16 23:34:33 BST 2010  tester
> +  * C
> +
> +Sat Oct 16 23:34:33 BST 2010  tester
> +  * ABC
> +
> +Sat Oct 16 23:34:33 BST 2010  tester
> +  * D
> +
> +New patches:
> +
> +[wibble
> +tester**20101016223433
> + Ignore-this: 577185c51e4839dd1041372fbfa8515b
> +] addfile ./wibble
> +hunk ./wibble 1
> ++wibble
> +[A
> +tester**20101016223433
> + Ignore-this: 580c4417986d5c56590bf36f5a125f38
> +] hunk ./wibble 2
> + wibble
> ++A
> +[B
> +tester**20101016223433
> + Ignore-this: a9f2335fe2dc972fd0bc09edc6252256
> +] conflictor [
> +hunk ./wibble 2
> ++A
> +]
> +:
> +hunk ./wibble 2
> ++B
> +[AB
> +tester**20101016223433
> + Ignore-this: cba095e78e2bdfe15dbdf2cb5c69cc6d
> +] hunk ./wibble 2
> + wibble
> ++AB
> +[C
> +tester**20101016223433
> + Ignore-this: da2a7e05abed8dba0077e69e55bd926
> +] conflictor [
> +hunk ./wibble 2
> ++AB
> +]
> +:
> +hunk ./wibble 2
> ++C
> +[ABC
> +tester**20101016223433
> + Ignore-this: db94de3935df87d0a991c0ab6a58e5b1
> +] hunk ./wibble 2
> + wibble
> ++ABC
> +[D
> +tester**20101016223433
> + Ignore-this: 829adb4326b290aa6f741b3a15fbabfc
> +] conflictor [
> +hunk ./wibble 2
> ++ABC
> +]
> +:
> +hunk ./wibble 2
> ++D
> +
> +Context:
> +
> +Patch bundle hash:
> +b0ac3265aeb09b15b7dbc1dcf9447dae35d00a86
> addfile ./tests/data/convert/darcs2/twowayconflict.dpatch
> hunk ./tests/data/convert/darcs2/twowayconflict.dpatch 1
> +3 patches for repository /tmp/tmp5677/temp/empty-darcs2:
> +
> +Sat Oct 16 23:28:22 BST 2010  tester
> +  * wibble
> +
> +Sat Oct 16 23:28:22 BST 2010  tester
> +  * A
> +
> +Sat Oct 16 23:28:22 BST 2010  tester
> +  * B
> +
> +New patches:
> +
> +[wibble
> +tester**20101016222822
> + Ignore-this: 88662d08dd524d92ad4cca6df0d643e4
> +] addfile ./wibble
> +hunk ./wibble 1
> ++wibble
> +[A
> +tester**20101016222822
> + Ignore-this: 2d69de402438481946682efcad5e20cd
> +] hunk ./wibble 2
> + wibble
> ++A
> +[B
> +tester**20101016222822
> + Ignore-this: 9c8daaedcb674c022ddbcef19752d694
> +] conflictor [
> +hunk ./wibble 2
> ++A
> +]
> +:
> +hunk ./wibble 2
> ++B
> +
> +Context:
> +
> +Patch bundle hash:
> +33bebb546403626fc8539d4709fbcdb99e47e94c

__________________________________
Darcs bug tracker <bugs at darcs.net>
<http://bugs.darcs.net/patch420>
__________________________________


More information about the darcs-users mailing list