I think the bug is in the patch:

  Sun Apr 24 21:10:33 CEST 2005  Ian Lynagh <[EMAIL PROTECTED]>
    * Only go through file once when applying hunks

I have a repo without the bug, where I get the bug if I pull
this patch.  I had to resolve some conflicts to get the repo
without the bug working.

I attach the context for the working repo, a patch bundle
with the resolve patches and the unpull_test I used.

Unfortunately some of the recent bugs in darcs show up when
I test to set this up from scratch.

  darcs get --context working.context darcs-unstable tmp
  cd tmp
  darcs apply ../resolve.dpatch

gives a repo that 'darcs check' complains about.  A 'darcs
resolve' followed by some 'darcs revert --all' and then some
repeated 'make config' 'darcs revert --all' and when the config
succeeds, 'make darcs' (possibly with some 'darcs revert --all;
make darcs') should build a darcs that passes the unpull_test.
(Building the ChangeLog and possibly other things will fail.)

Pulling the patch named above and compiling again produces
a darcs that fails the unpull_test.


-- 
Tommy Pettersson <[EMAIL PROTECTED]>
Context:

[Avoid multiple file reads when applying hunks to a file
Ian Lynagh <[EMAIL PROTECTED]>**20050418224517] 

[Avoid unnecessary lines/unlines of files when applying patches
Ian Lynagh <[EMAIL PROTECTED]>**20050418200353] 

[Small tidy-up
Ian Lynagh <[EMAIL PROTECTED]>**20050417130858] 

[Don't put SCCs in Record or SelectChanges
Ian Lynagh <[EMAIL PROTECTED]>**20050416160628] 

[Stringalike class
Ian Lynagh <[EMAIL PROTECTED]>**20050413034412] 

[Remove tab
Ian Lynagh <[EMAIL PROTECTED]>**20050419022849] 

[Extend the win32 Posix emulation
Josef Svenningsson <[EMAIL PROTECTED]>**20050418171423
 Unfortunately win32 doesn't know anything about symbolic links so
 this patch simply ignores all symbol link stuff.
] 

[Avoid nested list appends when diffing
Ian Lynagh <[EMAIL PROTECTED]>**20050416180306] 

[Avoid submerge_in_dir when diffing
Ian Lynagh <[EMAIL PROTECTED]>**20050416170419] 

[add trivial test for 'optimize --reorder-patches'
Mark Stosberg <[EMAIL PROTECTED]>**20050408160306] 

[initial test for optimize
Mark Stosberg <[EMAIL PROTECTED]>**20050403023609] 

[More tweaking
Ian Lynagh <[EMAIL PROTECTED]>**20050416160651] 

[More tweaks
Ian Lynagh <[EMAIL PROTECTED]>**20050416025802] 

[Keep filenames reversed until we need them
Ian Lynagh <[EMAIL PROTECTED]>**20050416011742] 

[Use getSymbolicLinkStatus more
Ian Lynagh <[EMAIL PROTECTED]>**20050416002512] 

[Use getSymbolicLinkStatus to save on stat calls
Ian Lynagh <[EMAIL PROTECTED]>**20050415235648] 

[Tweak SlurpDirectory
Ian Lynagh <[EMAIL PROTECTED]>**20050415231336] 

[Tweak Diff.lhs
Ian Lynagh <[EMAIL PROTECTED]>**20050415231250] 

[Remove unnecessary code and withSignalsBlocked
Ian Lynagh <[EMAIL PROTECTED]>**20050412005145] 

[turns out we don't want "multiple" conflictors...
David Roundy <[EMAIL PROTECTED]>**20050409200107] 

[Add verbose message for timestamp syncing
Ian Lynagh <[EMAIL PROTECTED]>**20050411225806] 

[Remove verbose message that got copied elsewhere
Ian Lynagh <[EMAIL PROTECTED]>**20050411225741] 

[Change a can't happen error to an impossible
Ian Lynagh <[EMAIL PROTECTED]>**20050411212735] 

[fix newlines in stringify.
David Roundy <[EMAIL PROTECTED]>**20050409154243] 

[No need to use C for Context
Ian Lynagh <[EMAIL PROTECTED]>**20050409145935] 

[The "David Is Lame" patch! (fixing bug in is_null_patch conflict resolution.)
David Roundy <[EMAIL PROTECTED]>**20050410135358
 I didn't bother to compile.  Now that I've switched to 'smoke testing'
 rather than testing on send, everyone gets to see the stupid things I
 do... Doh!
] 

[resolve conflict with stable on is_null_patch fix.
David Roundy <[EMAIL PROTECTED]>**20050410131116] 

[don't bother running unit for "normal" make test, and add slowtest target.
David Roundy <[EMAIL PROTECTED]>**20050409200128] 

[remove incorrect commute rule from simple_unforce.
David Roundy <[EMAIL PROTECTED]>**20050316134058] 

[fix bug in is_null_patch that lead to false positive when resolving.
David Roundy <[EMAIL PROTECTED]>**20050409145947] 

[preproc.hs: Calculate the_commands from command_control_list
Florian Weimer <[EMAIL PROTECTED]>**20050408143221
 
 This patch fixes a fallout from the command grouping patch which breaks
 building from scratch.
] 

[add warning to the docs for --reorder.
David Roundy <[EMAIL PROTECTED]>**20050409141855] 

[Guess at what the docs for --reorder-patches should be.
Mark Stosberg <[EMAIL PROTECTED]>**20050408160103
 
 I would like help improving these to mention specific benefits for this 
command,
 and notes any drawbacks on running it as well. 
] 

[remove debug trace from lcs
Benedikt Schmidt <[EMAIL PROTECTED]>**20050408174913] 

[read patches lazily in Repair.
David Roundy <[EMAIL PROTECTED]>**20050409125642] 

[read patches lazily in Get.
David Roundy <[EMAIL PROTECTED]>**20050409125557] 

[finish off implementation of apply.
David Roundy <[EMAIL PROTECTED]>**20050409104929] 

[eliminate pthreads dependency, writing gzipped files with gzWriteFilePSs.
David Roundy <[EMAIL PROTECTED]>**20050409000949] 

[resolve conflicts in darcs.lhs.
David Roundy <[EMAIL PROTECTED]>**20050408120053] 

[command grouping in darcs --help
[EMAIL PROTECTED]
 This implements the grouping as it was originally proposed. Nobody realy
  indicated which gouping is better ... so I left the one I think is better.
] 

[Fix spelling error
Josef Svenningsson <[EMAIL PROTECTED]>**20050403220400] 

[add hashPS to FastPackedString
Benedikt Schmidt <[EMAIL PROTECTED]>**20050405234517] 

[rename Map module, add missing insertWith function
Benedikt Schmidt <[EMAIL PROTECTED]>**20050406210939] 

[resolve conflict in PatchShow's import from Printer
Tommy Pettersson <[EMAIL PROTECTED]>**20050407235424] 

[fix put.pl test to work with new put code.
David Roundy <[EMAIL PROTECTED]>**20050408104455] 

[resolve conflict in unit.
David Roundy <[EMAIL PROTECTED]>**20050406120505] 

[replace Hunt/Szymanski diff algorithm with one by Myers
Benedikt Schmidt <[EMAIL PROTECTED]>**20050406005000] 

[make unit work with new ColourPrinters.
David Roundy <[EMAIL PROTECTED]>**20050406115006] 

[Stylistic changes to Slurpy-pruning code (David's suggestions).
Kannan Goundan <[EMAIL PROTECTED]>**20050306213842] 

[resolve conflict with symlink error message fix.
David Roundy <[EMAIL PROTECTED]>**20050305164054] 

[When creating replicas to run "diff" on, only copy what's necessary.
[EMAIL PROTECTED] 

[Added functions to selectively prune a Slurpy tree.
[EMAIL PROTECTED] 

[resolve conflicts in Put.
David Roundy <[EMAIL PROTECTED]>**20050407132558] 

[get rid of tab in RemoteApply.
David Roundy <[EMAIL PROTECTED]>**20050401123126] 

[get rid of tabs in Put.lhs.
David Roundy <[EMAIL PROTECTED]>**20050401123114] 

[resolve conflict in Patch.
David Roundy <[EMAIL PROTECTED]>**20050401112959] 

[be a bit quicker in unit.
David Roundy <[EMAIL PROTECTED]>**20050330142629] 

[RT#225 - get rid of some warnings in the put.pl test
Mark Stosberg <[EMAIL PROTECTED]>**20050320204357] 

[RT#225 - some first tests for 'put', including TODO tests for setting the 
default REPO
Mark Stosberg <[EMAIL PROTECTED]>**20050320195440] 

[RT#225 - a better "do nothing" message for put.
Mark Stosberg <[EMAIL PROTECTED]>**20050320175622
 
 No need to get sassy and tell the user what they want.
] 

[RT#225 - provide a more helpful message when 'put' fails
Mark Stosberg <[EMAIL PROTECTED]>**20050320165530] 

[give more detail in test_commute.
David Roundy <[EMAIL PROTECTED]>**20050316132849] 

[add missing newline to 'put'
Mark Stosberg <[EMAIL PROTECTED]>**20050315011639] 

[fix ghc 6.4 issue in SlurpDirectory.
David Roundy <[EMAIL PROTECTED]>**20050312130245] 

[resolve conflict in SlurpDirectory.
David Roundy <[EMAIL PROTECTED]>**20050311134239] 

[improve tests on commutation.
David Roundy <[EMAIL PROTECTED]>**20050302125743] 

[give more info when new_elegant_merge fails.
David Roundy <[EMAIL PROTECTED]>**20050302125717] 

[use commute_no_merger in simple_commute_conflict.
David Roundy <[EMAIL PROTECTED]>**20050302125640] 

[be more stubborn when running quickCheck tests patiently.
David Roundy <[EMAIL PROTECTED]>**20050224134503] 

[remove tests that ought to fail for conflictors.
David Roundy <[EMAIL PROTECTED]>**20050110134914] 

[fix commute bug in Conflictors.
David Roundy <[EMAIL PROTECTED]>**20050110134755] 

[Be less lazy at the end of lists
Ian Lynagh <[EMAIL PROTECTED]>**20050109174414] 

[remove debug traces from PatchCommute.
David Roundy <[EMAIL PROTECTED]>**20050109142321] 

[add test for pulling a binary patch with conflicting working directory removal.
David Roundy <[EMAIL PROTECTED]>**20050628121211] 

[license aclocal.m4 with a more liberal license.
David Roundy <[EMAIL PROTECTED]>**20050622123111
 For the curious, I've gotten Benedikt and Will's permission for this
 change, who I believe are the only two other copyright holders on this
 file.
] 

[update web page to reflect new stable release (1.0.3)
Tomasz Zielonka <[EMAIL PROTECTED]>**20050524225643] 

[No interactive patch selection in put (and other fixes)
Josef Svenningsson <[EMAIL PROTECTED]>**20050406180405] 

[Change Repository to DarcsRepo.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050424140132] 

[add compatibility module between Data.Map and Data.FiniteMap, taken from Yi
Benedikt Schmidt <[EMAIL PROTECTED]>**20050406002216] 

[A new command: put
Josef Svenningsson <[EMAIL PROTECTED]>**20050305153255] 

[make check read patches lazily.
David Roundy <[EMAIL PROTECTED]>**20050409124213
 This change (and the plan is to make more commands read patches lazily)
 reduces memory usage on a linux kernel repository with just one huge patch
 by close to a factor of two, from over 700m to less than 400m.
] 

[simplify read_repo_private code.
David Roundy <[EMAIL PROTECTED]>**20050409111931] 

[change Conflictor data type to support multiple (as opposed to repeated) 
conflicts.
David Roundy <[EMAIL PROTECTED]>**20050313200940] 

[fix bugs and simplify code in conflictor commutation.
David Roundy <[EMAIL PROTECTED]>**20050302125452] 

[fix bug in new confictor commute code.
David Roundy <[EMAIL PROTECTED]>**20050219192453] 

[implement some of the conflictor commutation in a more testable manner.
David Roundy <[EMAIL PROTECTED]>**20050219164032
 This is the start to verifying individually that all the portions of the
 conflictor commutation are correct, since they form these little sets
 (which are checed in the unit test).
] 

[add a couple more commutation tests.
David Roundy <[EMAIL PROTECTED]>**20050214134235] 

[extend subcommute tests.
David Roundy <[EMAIL PROTECTED]>**20050209135706] 

[add subcommutation tests.
David Roundy <[EMAIL PROTECTED]>**20050208135139] 

[fix commuteFP.
David Roundy <[EMAIL PROTECTED]>**20050208134536] 

[fix bug in simple_commute_conflict.
David Roundy <[EMAIL PROTECTED]>**20050116144700] 

[fix bug in commuting secondary conflictors.
David Roundy <[EMAIL PROTECTED]>**20050111122439] 

[fix check_patch on Conflictors.
David Roundy <[EMAIL PROTECTED]>**20050110134856] 

[Infrastructure for lazy patch parsing
Ian Lynagh <[EMAIL PROTECTED]>**20050104233618] 

[Create and use applyPristine for recording patches
Ian Lynagh <[EMAIL PROTECTED]>**20050411224757] 

[Don't hold patch in memory when recording
Ian Lynagh <[EMAIL PROTECTED]>**20050411025804] 

[Move the apply_to_slurpy deeper
Ian Lynagh <[EMAIL PROTECTED]>**20050411013748] 

[add --reorder-patches option to optimize.
David Roundy <[EMAIL PROTECTED]>**20050408110344
 This is a pretty primitive --reorder implementation, which only tries to
 move all patches not included in the last tag to after that tag.  A smarter
 (but requiring more coding) solution would be to try to order all patches
 not included in the default (or sibling) repository such that they occur
 last.  I wouldn't be too hard, but would be just a bit more work, so I went
 with the simple method.
] 

[add --modernize-patches option to optimize.
David Roundy <[EMAIL PROTECTED]>**20050402201902] 

[make Patch export really_eq_patches.
David Roundy <[EMAIL PROTECTED]>**20050314135346] 

[use slurp_recordeds in Record.lhs.
David Roundy <[EMAIL PROTECTED]>**20050201125158] 

[add slurp_recordeds, which does multiple slurps simultaneously and efficiently.
David Roundy <[EMAIL PROTECTED]>**20050129114939] 

[Eliminate write_dirty_Pristine from Unrecord
Ian Lynagh <[EMAIL PROTECTED]>**20050509211418] 

[Pass in number of patches (when easy) to select changes
Ian Lynagh <[EMAIL PROTECTED]>**20050506014747] 

[Avoid extra patch selection pass in the simple (no restriction) case
Ian Lynagh <[EMAIL PROTECTED]>**20050506010752] 

[Apply patch choice selection optimisation to other cases
Ian Lynagh <[EMAIL PROTECTED]>**20050423023203] 

[Unsafe pull_firsts_middles optimisation
Ian Lynagh <[EMAIL PROTECTED]>**20050412233738] 

[Rename get_first_middle__last_choice to separate_first_middle_from_last
Ian Lynagh <[EMAIL PROTECTED]>**20050412214602] 

[Avoid code duplication
Ian Lynagh <[EMAIL PROTECTED]>**20050411212931] 

[get_first_middle__last_choice
Ian Lynagh <[EMAIL PROTECTED]>**20050411013701] 

[Eliminate slurp_write_dirty from Unrecord
Ian Lynagh <[EMAIL PROTECTED]>**20050509203955] 

[make apply_patches avoid using slurpy at all.
David Roundy <[EMAIL PROTECTED]>**20050409122312] 

[fix darcs-unstable to work with ghc 6.4.
David Roundy <[EMAIL PROTECTED]>**20050212162509] 

[use DarcsIO classes for apply_to_filepaths.
David Roundy <[EMAIL PROTECTED]>**20050206142024] 

[new DarcsIO framework (as yet unused).
David Roundy <[EMAIL PROTECTED]>**20050205163008
 This new framework is intended to unify the current apply_to_slurpy and
 (hopefully) patch_check codes.  It also will allow us to apply a patch
 directly to a filesystem, without first slurping the directory.  This
 should allow (for example) faster gets.
 
 The code isn't yet complete.  Both PatchApply.apply and the instance of
 WriteableDirectory in SlurpDirectory are incomplete, but hopefully you can
 get an idea of where this is going.
 
 We may be able to replace many places where slurpies are used with code
 written in the ReadableDirectory monad.
] 

[start making commutation more modular...
David Roundy <[EMAIL PROTECTED]>**20050119132816
 This is the first step in making the commutation code easier to test piece
 by piece.  The change is the introductio of a Perhaps type, which indicates
 whether the commutation succeeded, failed, or if the algorithm doesn't know
 how to do the commutation.  This way each sub-commute function should
 create a group on sets of patches where the result isn't unknown (I may be
 getting my terminology here mixed up as to what is a group).
 
 In any case, the idea is that if A and B commute to A' and B', then A' and
 B' must commute back of course to A and B, and invert B and invert A had
 better commute to invert A' and invert B', etc, forming a closed set of
 patches (a group?).  And all these operations must be achieved with the
 same subcommute function, which means we can test that subcommute function
 in isolation from the rest of the algorithm.
 
 So you can expect some new QuickCheck tests to be coming up, which will
 operate on individual (hopefully, ideally) "primitive" commute functions,
 which will be as small as is possible while still consistent with the above
 properties.
] 

[implement backwards force_commuting.
David Roundy <[EMAIL PROTECTED]>**20050114125130] 

[fix bug in Conflictor commutation.
David Roundy <[EMAIL PROTECTED]>**20050109141251] 

[fix bug in Conflictor commutation of recursive conflicts.
David Roundy <[EMAIL PROTECTED]>**20050109131414] 

[conflictor code does need Control.Monad.when.
David Roundy <[EMAIL PROTECTED]>**20050108172544] 

[add Conflictor patch type.
David Roundy <[EMAIL PROTECTED]>**20050102154349] 

[TAG 1.0.3
Tomasz Zielonka <[EMAIL PROTECTED]>**20050524215127] 
New patches:

[TMP RESOLVE doc in Optimize
Tommy Pettersson <[EMAIL PROTECTED]>**20060115173009] {
hunk ./Optimize.lhs 191
-By default the patches in the repository are compressed. These use less disk
-space, which translates into less bandwidth if repository is accessed 
remotely. 
-Note that patches will always have the ".gz" extension whether they are 
compressed
-or note. 
}

[TMP RESOLVE add import of slurp_recorded to Record
Tommy Pettersson <[EMAIL PROTECTED]>**20060115173051] {
hunk ./Record.lhs 41
+                    slurp_recorded,
}

[TMP RESOLV cleanboth/iswanted in SelectChanges
Tommy Pettersson <[EMAIL PROTECTED]>**20060115173118] {
hunk ./SelectChanges.lhs 370
-          cleanboth (a,b) = if isreversed then (cb, ca) else (ca, cb)
-              where ca = cleanup a
-                    cb = cleanup b
+          iswanted = let maybe_invert = if isreversed then invert else id
+                     in (match_a_patch opts . maybe_invert . tp_patch)
}

[TMP RESOLVE conflict changelog/slowtest in GNUmakefile
Tommy Pettersson <[EMAIL PROTECTED]>**20060115190629] {
hunk ./GNUmakefile 204
+ChangeLog: make_changelog changelog.in/ChangeLog.old $(wildcard 
changelog.in/entries/*)
+       ( \
+         set -e; \
+         echo; \
+         ./make_changelog $(wildcard changelog.in/entries/*); \
+         echo; \
+         sed -n '/^darcs (1\.0\.2)$$/,$$p' changelog.in/ChangeLog.old; \
+       ) > [EMAIL PROTECTED]
+       mv [EMAIL PROTECTED] $@
+
hunk ./GNUmakefile 216
+slowtest:      test test_unit
+
+test check:    test_coding_standards test_perl test_shell
+
hunk ./GNUmakefile 254
-       rm -f configure darcs.1 .depend AUTHORS c_context.c
+       rm -f configure darcs.1 .depend AUTHORS ChangeLog c_context.c
}

Context:

[Avoid multiple file reads when applying hunks to a file
Ian Lynagh <[EMAIL PROTECTED]>**20050418224517] 
[Avoid unnecessary lines/unlines of files when applying patches
Ian Lynagh <[EMAIL PROTECTED]>**20050418200353] 
[Small tidy-up
Ian Lynagh <[EMAIL PROTECTED]>**20050417130858] 
[Don't put SCCs in Record or SelectChanges
Ian Lynagh <[EMAIL PROTECTED]>**20050416160628] 
[Stringalike class
Ian Lynagh <[EMAIL PROTECTED]>**20050413034412] 
[Remove tab
Ian Lynagh <[EMAIL PROTECTED]>**20050419022849] 
[Extend the win32 Posix emulation
Josef Svenningsson <[EMAIL PROTECTED]>**20050418171423
 Unfortunately win32 doesn't know anything about symbolic links so
 this patch simply ignores all symbol link stuff.
] 
[Avoid nested list appends when diffing
Ian Lynagh <[EMAIL PROTECTED]>**20050416180306] 
[Avoid submerge_in_dir when diffing
Ian Lynagh <[EMAIL PROTECTED]>**20050416170419] 
[add trivial test for 'optimize --reorder-patches'
Mark Stosberg <[EMAIL PROTECTED]>**20050408160306] 
[initial test for optimize
Mark Stosberg <[EMAIL PROTECTED]>**20050403023609] 
[More tweaking
Ian Lynagh <[EMAIL PROTECTED]>**20050416160651] 
[More tweaks
Ian Lynagh <[EMAIL PROTECTED]>**20050416025802] 
[Keep filenames reversed until we need them
Ian Lynagh <[EMAIL PROTECTED]>**20050416011742] 
[Use getSymbolicLinkStatus more
Ian Lynagh <[EMAIL PROTECTED]>**20050416002512] 
[Use getSymbolicLinkStatus to save on stat calls
Ian Lynagh <[EMAIL PROTECTED]>**20050415235648] 
[Tweak SlurpDirectory
Ian Lynagh <[EMAIL PROTECTED]>**20050415231336] 
[Tweak Diff.lhs
Ian Lynagh <[EMAIL PROTECTED]>**20050415231250] 
[Remove unnecessary code and withSignalsBlocked
Ian Lynagh <[EMAIL PROTECTED]>**20050412005145] 
[turns out we don't want "multiple" conflictors...
David Roundy <[EMAIL PROTECTED]>**20050409200107] 
[Add verbose message for timestamp syncing
Ian Lynagh <[EMAIL PROTECTED]>**20050411225806] 
[Remove verbose message that got copied elsewhere
Ian Lynagh <[EMAIL PROTECTED]>**20050411225741] 
[Change a can't happen error to an impossible
Ian Lynagh <[EMAIL PROTECTED]>**20050411212735] 
[fix newlines in stringify.
David Roundy <[EMAIL PROTECTED]>**20050409154243] 
[No need to use C for Context
Ian Lynagh <[EMAIL PROTECTED]>**20050409145935] 
[The "David Is Lame" patch! (fixing bug in is_null_patch conflict resolution.)
David Roundy <[EMAIL PROTECTED]>**20050410135358
 I didn't bother to compile.  Now that I've switched to 'smoke testing'
 rather than testing on send, everyone gets to see the stupid things I
 do... Doh!
] 
[resolve conflict with stable on is_null_patch fix.
David Roundy <[EMAIL PROTECTED]>**20050410131116] 
[don't bother running unit for "normal" make test, and add slowtest target.
David Roundy <[EMAIL PROTECTED]>**20050409200128] 
[remove incorrect commute rule from simple_unforce.
David Roundy <[EMAIL PROTECTED]>**20050316134058] 
[fix bug in is_null_patch that lead to false positive when resolving.
David Roundy <[EMAIL PROTECTED]>**20050409145947] 
[preproc.hs: Calculate the_commands from command_control_list
Florian Weimer <[EMAIL PROTECTED]>**20050408143221
 
 This patch fixes a fallout from the command grouping patch which breaks
 building from scratch.
] 
[add warning to the docs for --reorder.
David Roundy <[EMAIL PROTECTED]>**20050409141855] 
[Guess at what the docs for --reorder-patches should be.
Mark Stosberg <[EMAIL PROTECTED]>**20050408160103
 
 I would like help improving these to mention specific benefits for this 
command,
 and notes any drawbacks on running it as well. 
] 
[remove debug trace from lcs
Benedikt Schmidt <[EMAIL PROTECTED]>**20050408174913] 
[read patches lazily in Repair.
David Roundy <[EMAIL PROTECTED]>**20050409125642] 
[read patches lazily in Get.
David Roundy <[EMAIL PROTECTED]>**20050409125557] 
[finish off implementation of apply.
David Roundy <[EMAIL PROTECTED]>**20050409104929] 
[eliminate pthreads dependency, writing gzipped files with gzWriteFilePSs.
David Roundy <[EMAIL PROTECTED]>**20050409000949] 
[resolve conflicts in darcs.lhs.
David Roundy <[EMAIL PROTECTED]>**20050408120053] 
[command grouping in darcs --help
[EMAIL PROTECTED]
 This implements the grouping as it was originally proposed. Nobody realy
  indicated which gouping is better ... so I left the one I think is better.
] 
[Fix spelling error
Josef Svenningsson <[EMAIL PROTECTED]>**20050403220400] 
[add hashPS to FastPackedString
Benedikt Schmidt <[EMAIL PROTECTED]>**20050405234517] 
[rename Map module, add missing insertWith function
Benedikt Schmidt <[EMAIL PROTECTED]>**20050406210939] 
[resolve conflict in PatchShow's import from Printer
Tommy Pettersson <[EMAIL PROTECTED]>**20050407235424] 
[fix put.pl test to work with new put code.
David Roundy <[EMAIL PROTECTED]>**20050408104455] 
[resolve conflict in unit.
David Roundy <[EMAIL PROTECTED]>**20050406120505] 
[replace Hunt/Szymanski diff algorithm with one by Myers
Benedikt Schmidt <[EMAIL PROTECTED]>**20050406005000] 
[make unit work with new ColourPrinters.
David Roundy <[EMAIL PROTECTED]>**20050406115006] 
[Stylistic changes to Slurpy-pruning code (David's suggestions).
Kannan Goundan <[EMAIL PROTECTED]>**20050306213842] 
[resolve conflict with symlink error message fix.
David Roundy <[EMAIL PROTECTED]>**20050305164054] 
[When creating replicas to run "diff" on, only copy what's necessary.
[EMAIL PROTECTED] 
[Added functions to selectively prune a Slurpy tree.
[EMAIL PROTECTED] 
[resolve conflicts in Put.
David Roundy <[EMAIL PROTECTED]>**20050407132558] 
[get rid of tab in RemoteApply.
David Roundy <[EMAIL PROTECTED]>**20050401123126] 
[get rid of tabs in Put.lhs.
David Roundy <[EMAIL PROTECTED]>**20050401123114] 
[resolve conflict in Patch.
David Roundy <[EMAIL PROTECTED]>**20050401112959] 
[be a bit quicker in unit.
David Roundy <[EMAIL PROTECTED]>**20050330142629] 
[RT#225 - get rid of some warnings in the put.pl test
Mark Stosberg <[EMAIL PROTECTED]>**20050320204357] 
[RT#225 - some first tests for 'put', including TODO tests for setting the 
default REPO
Mark Stosberg <[EMAIL PROTECTED]>**20050320195440] 
[RT#225 - a better "do nothing" message for put.
Mark Stosberg <[EMAIL PROTECTED]>**20050320175622
 
 No need to get sassy and tell the user what they want.
] 
[RT#225 - provide a more helpful message when 'put' fails
Mark Stosberg <[EMAIL PROTECTED]>**20050320165530] 
[give more detail in test_commute.
David Roundy <[EMAIL PROTECTED]>**20050316132849] 
[add missing newline to 'put'
Mark Stosberg <[EMAIL PROTECTED]>**20050315011639] 
[fix ghc 6.4 issue in SlurpDirectory.
David Roundy <[EMAIL PROTECTED]>**20050312130245] 
[resolve conflict in SlurpDirectory.
David Roundy <[EMAIL PROTECTED]>**20050311134239] 
[improve tests on commutation.
David Roundy <[EMAIL PROTECTED]>**20050302125743] 
[give more info when new_elegant_merge fails.
David Roundy <[EMAIL PROTECTED]>**20050302125717] 
[use commute_no_merger in simple_commute_conflict.
David Roundy <[EMAIL PROTECTED]>**20050302125640] 
[be more stubborn when running quickCheck tests patiently.
David Roundy <[EMAIL PROTECTED]>**20050224134503] 
[remove tests that ought to fail for conflictors.
David Roundy <[EMAIL PROTECTED]>**20050110134914] 
[fix commute bug in Conflictors.
David Roundy <[EMAIL PROTECTED]>**20050110134755] 
[Be less lazy at the end of lists
Ian Lynagh <[EMAIL PROTECTED]>**20050109174414] 
[remove debug traces from PatchCommute.
David Roundy <[EMAIL PROTECTED]>**20050109142321] 
[add test for pulling a binary patch with conflicting working directory removal.
David Roundy <[EMAIL PROTECTED]>**20050628121211] 
[license aclocal.m4 with a more liberal license.
David Roundy <[EMAIL PROTECTED]>**20050622123111
 For the curious, I've gotten Benedikt and Will's permission for this
 change, who I believe are the only two other copyright holders on this
 file.
] 
[update web page to reflect new stable release (1.0.3)
Tomasz Zielonka <[EMAIL PROTECTED]>**20050524225643] 
[No interactive patch selection in put (and other fixes)
Josef Svenningsson <[EMAIL PROTECTED]>**20050406180405] 
[Change Repository to DarcsRepo.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050424140132] 
[add compatibility module between Data.Map and Data.FiniteMap, taken from Yi
Benedikt Schmidt <[EMAIL PROTECTED]>**20050406002216] 
[A new command: put
Josef Svenningsson <[EMAIL PROTECTED]>**20050305153255] 
[make check read patches lazily.
David Roundy <[EMAIL PROTECTED]>**20050409124213
 This change (and the plan is to make more commands read patches lazily)
 reduces memory usage on a linux kernel repository with just one huge patch
 by close to a factor of two, from over 700m to less than 400m.
] 
[simplify read_repo_private code.
David Roundy <[EMAIL PROTECTED]>**20050409111931] 
[change Conflictor data type to support multiple (as opposed to repeated) 
conflicts.
David Roundy <[EMAIL PROTECTED]>**20050313200940] 
[fix bugs and simplify code in conflictor commutation.
David Roundy <[EMAIL PROTECTED]>**20050302125452] 
[fix bug in new confictor commute code.
David Roundy <[EMAIL PROTECTED]>**20050219192453] 
[implement some of the conflictor commutation in a more testable manner.
David Roundy <[EMAIL PROTECTED]>**20050219164032
 This is the start to verifying individually that all the portions of the
 conflictor commutation are correct, since they form these little sets
 (which are checed in the unit test).
] 
[add a couple more commutation tests.
David Roundy <[EMAIL PROTECTED]>**20050214134235] 
[extend subcommute tests.
David Roundy <[EMAIL PROTECTED]>**20050209135706] 
[add subcommutation tests.
David Roundy <[EMAIL PROTECTED]>**20050208135139] 
[fix commuteFP.
David Roundy <[EMAIL PROTECTED]>**20050208134536] 
[fix bug in simple_commute_conflict.
David Roundy <[EMAIL PROTECTED]>**20050116144700] 
[fix bug in commuting secondary conflictors.
David Roundy <[EMAIL PROTECTED]>**20050111122439] 
[fix check_patch on Conflictors.
David Roundy <[EMAIL PROTECTED]>**20050110134856] 
[Infrastructure for lazy patch parsing
Ian Lynagh <[EMAIL PROTECTED]>**20050104233618] 
[Create and use applyPristine for recording patches
Ian Lynagh <[EMAIL PROTECTED]>**20050411224757] 
[Don't hold patch in memory when recording
Ian Lynagh <[EMAIL PROTECTED]>**20050411025804] 
[Move the apply_to_slurpy deeper
Ian Lynagh <[EMAIL PROTECTED]>**20050411013748] 
[add --reorder-patches option to optimize.
David Roundy <[EMAIL PROTECTED]>**20050408110344
 This is a pretty primitive --reorder implementation, which only tries to
 move all patches not included in the last tag to after that tag.  A smarter
 (but requiring more coding) solution would be to try to order all patches
 not included in the default (or sibling) repository such that they occur
 last.  I wouldn't be too hard, but would be just a bit more work, so I went
 with the simple method.
] 
[add --modernize-patches option to optimize.
David Roundy <[EMAIL PROTECTED]>**20050402201902] 
[make Patch export really_eq_patches.
David Roundy <[EMAIL PROTECTED]>**20050314135346] 
[use slurp_recordeds in Record.lhs.
David Roundy <[EMAIL PROTECTED]>**20050201125158] 
[add slurp_recordeds, which does multiple slurps simultaneously and efficiently.
David Roundy <[EMAIL PROTECTED]>**20050129114939] 
[Eliminate write_dirty_Pristine from Unrecord
Ian Lynagh <[EMAIL PROTECTED]>**20050509211418] 
[Pass in number of patches (when easy) to select changes
Ian Lynagh <[EMAIL PROTECTED]>**20050506014747] 
[Avoid extra patch selection pass in the simple (no restriction) case
Ian Lynagh <[EMAIL PROTECTED]>**20050506010752] 
[Apply patch choice selection optimisation to other cases
Ian Lynagh <[EMAIL PROTECTED]>**20050423023203] 
[Unsafe pull_firsts_middles optimisation
Ian Lynagh <[EMAIL PROTECTED]>**20050412233738] 
[Rename get_first_middle__last_choice to separate_first_middle_from_last
Ian Lynagh <[EMAIL PROTECTED]>**20050412214602] 
[Avoid code duplication
Ian Lynagh <[EMAIL PROTECTED]>**20050411212931] 
[get_first_middle__last_choice
Ian Lynagh <[EMAIL PROTECTED]>**20050411013701] 
[Eliminate slurp_write_dirty from Unrecord
Ian Lynagh <[EMAIL PROTECTED]>**20050509203955] 
[make apply_patches avoid using slurpy at all.
David Roundy <[EMAIL PROTECTED]>**20050409122312] 
[fix darcs-unstable to work with ghc 6.4.
David Roundy <[EMAIL PROTECTED]>**20050212162509] 
[use DarcsIO classes for apply_to_filepaths.
David Roundy <[EMAIL PROTECTED]>**20050206142024] 
[new DarcsIO framework (as yet unused).
David Roundy <[EMAIL PROTECTED]>**20050205163008
 This new framework is intended to unify the current apply_to_slurpy and
 (hopefully) patch_check codes.  It also will allow us to apply a patch
 directly to a filesystem, without first slurping the directory.  This
 should allow (for example) faster gets.
 
 The code isn't yet complete.  Both PatchApply.apply and the instance of
 WriteableDirectory in SlurpDirectory are incomplete, but hopefully you can
 get an idea of where this is going.
 
 We may be able to replace many places where slurpies are used with code
 written in the ReadableDirectory monad.
] 
[start making commutation more modular...
David Roundy <[EMAIL PROTECTED]>**20050119132816
 This is the first step in making the commutation code easier to test piece
 by piece.  The change is the introductio of a Perhaps type, which indicates
 whether the commutation succeeded, failed, or if the algorithm doesn't know
 how to do the commutation.  This way each sub-commute function should
 create a group on sets of patches where the result isn't unknown (I may be
 getting my terminology here mixed up as to what is a group).
 
 In any case, the idea is that if A and B commute to A' and B', then A' and
 B' must commute back of course to A and B, and invert B and invert A had
 better commute to invert A' and invert B', etc, forming a closed set of
 patches (a group?).  And all these operations must be achieved with the
 same subcommute function, which means we can test that subcommute function
 in isolation from the rest of the algorithm.
 
 So you can expect some new QuickCheck tests to be coming up, which will
 operate on individual (hopefully, ideally) "primitive" commute functions,
 which will be as small as is possible while still consistent with the above
 properties.
] 
[implement backwards force_commuting.
David Roundy <[EMAIL PROTECTED]>**20050114125130] 
[fix bug in Conflictor commutation.
David Roundy <[EMAIL PROTECTED]>**20050109141251] 
[fix bug in Conflictor commutation of recursive conflicts.
David Roundy <[EMAIL PROTECTED]>**20050109131414] 
[conflictor code does need Control.Monad.when.
David Roundy <[EMAIL PROTECTED]>**20050108172544] 
[add Conflictor patch type.
David Roundy <[EMAIL PROTECTED]>**20050102154349] 
[TAG 1.0.3
Tomasz Zielonka <[EMAIL PROTECTED]>**20050524215127] 
Patch bundle hash:
f580fd4f6a7dd3000527f513bd6e4fecd4b71b95
d=$(pwd)/darcs
rm -rf foo
mkdir foo && cd foo
$d init
cat >f <<EOF
one
two
three
EOF
$d rec -alm init
cp f g
cat >f <<EOF
three
one
EOF
$d rec -am foo
echo y | $d unpull -p foo
cmp f g
_______________________________________________
darcs-devel mailing list
[email protected]
http://www.abridgegame.org/cgi-bin/mailman/listinfo/darcs-devel

Reply via email to