[darcs-devel] Re: [darcs-users] Bug in patch reversal

Tommy Pettersson ptp at lysator.liu.se
Sun Jan 15 14:38:17 PST 2006


I think the bug is in the patch:

  Sun Apr 24 21:10:33 CEST 2005  Ian Lynagh <igloo at earth.li>
    * 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 <ptp at lysator.liu.se>
-------------- next part --------------

Context:

[Avoid multiple file reads when applying hunks to a file
Ian Lynagh <igloo at earth.li>**20050418224517] 

[Avoid unnecessary lines/unlines of files when applying patches
Ian Lynagh <igloo at earth.li>**20050418200353] 

[Small tidy-up
Ian Lynagh <igloo at earth.li>**20050417130858] 

[Don't put SCCs in Record or SelectChanges
Ian Lynagh <igloo at earth.li>**20050416160628] 

[Stringalike class
Ian Lynagh <igloo at earth.li>**20050413034412] 

[Remove tab
Ian Lynagh <igloo at earth.li>**20050419022849] 

[Extend the win32 Posix emulation
Josef Svenningsson <josef.svenningsson at gmail.com>**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 <igloo at earth.li>**20050416180306] 

[Avoid submerge_in_dir when diffing
Ian Lynagh <igloo at earth.li>**20050416170419] 

[add trivial test for 'optimize --reorder-patches'
Mark Stosberg <mark at summersault.com>**20050408160306] 

[initial test for optimize
Mark Stosberg <mark at summersault.com>**20050403023609] 

[More tweaking
Ian Lynagh <igloo at earth.li>**20050416160651] 

[More tweaks
Ian Lynagh <igloo at earth.li>**20050416025802] 

[Keep filenames reversed until we need them
Ian Lynagh <igloo at earth.li>**20050416011742] 

[Use getSymbolicLinkStatus more
Ian Lynagh <igloo at earth.li>**20050416002512] 

[Use getSymbolicLinkStatus to save on stat calls
Ian Lynagh <igloo at earth.li>**20050415235648] 

[Tweak SlurpDirectory
Ian Lynagh <igloo at earth.li>**20050415231336] 

[Tweak Diff.lhs
Ian Lynagh <igloo at earth.li>**20050415231250] 

[Remove unnecessary code and withSignalsBlocked
Ian Lynagh <igloo at earth.li>**20050412005145] 

[turns out we don't want "multiple" conflictors...
David Roundy <droundy at abridgegame.org>**20050409200107] 

[Add verbose message for timestamp syncing
Ian Lynagh <igloo at earth.li>**20050411225806] 

[Remove verbose message that got copied elsewhere
Ian Lynagh <igloo at earth.li>**20050411225741] 

[Change a can't happen error to an impossible
Ian Lynagh <igloo at earth.li>**20050411212735] 

[fix newlines in stringify.
David Roundy <droundy at abridgegame.org>**20050409154243] 

[No need to use C for Context
Ian Lynagh <igloo at earth.li>**20050409145935] 

[The "David Is Lame" patch! (fixing bug in is_null_patch conflict resolution.)
David Roundy <droundy at abridgegame.org>**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 <droundy at abridgegame.org>**20050410131116] 

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

[remove incorrect commute rule from simple_unforce.
David Roundy <droundy at abridgegame.org>**20050316134058] 

[fix bug in is_null_patch that lead to false positive when resolving.
David Roundy <droundy at abridgegame.org>**20050409145947] 

[preproc.hs: Calculate the_commands from command_control_list
Florian Weimer <fw at deneb.enyo.de>**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 <droundy at abridgegame.org>**20050409141855] 

[Guess at what the docs for --reorder-patches should be.
Mark Stosberg <mark at summersault.com>**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 <beschmi at cloaked.de>**20050408174913] 

[read patches lazily in Repair.
David Roundy <droundy at abridgegame.org>**20050409125642] 

[read patches lazily in Get.
David Roundy <droundy at abridgegame.org>**20050409125557] 

[finish off implementation of apply.
David Roundy <droundy at abridgegame.org>**20050409104929] 

[eliminate pthreads dependency, writing gzipped files with gzWriteFilePSs.
David Roundy <droundy at abridgegame.org>**20050409000949] 

[resolve conflicts in darcs.lhs.
David Roundy <droundy at abridgegame.org>**20050408120053] 

[command grouping in darcs --help
peter at syncad.com**20050407211626
 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 <josef.svenningsson at gmail.com>**20050403220400] 

[add hashPS to FastPackedString
Benedikt Schmidt <beschmi at cloaked.de>**20050405234517] 

[rename Map module, add missing insertWith function
Benedikt Schmidt <beschmi at cloaked.de>**20050406210939] 

[resolve conflict in PatchShow's import from Printer
Tommy Pettersson <ptp at lysator.liu.se>**20050407235424] 

[fix put.pl test to work with new put code.
David Roundy <droundy at abridgegame.org>**20050408104455] 

[resolve conflict in unit.
David Roundy <droundy at abridgegame.org>**20050406120505] 

[replace Hunt/Szymanski diff algorithm with one by Myers
Benedikt Schmidt <beschmi at cloaked.de>**20050406005000] 

[make unit work with new ColourPrinters.
David Roundy <droundy at abridgegame.org>**20050406115006] 

[Stylistic changes to Slurpy-pruning code (David's suggestions).
Kannan Goundan <kannan at cakoose.com>**20050306213842] 

[resolve conflict with symlink error message fix.
David Roundy <droundy at abridgegame.org>**20050305164054] 

[When creating replicas to run "diff" on, only copy what's necessary.
kannan at cakoose.com**20050303042827] 

[Added functions to selectively prune a Slurpy tree.
kannan at cakoose.com**20050303042606] 

[resolve conflicts in Put.
David Roundy <droundy at abridgegame.org>**20050407132558] 

[get rid of tab in RemoteApply.
David Roundy <droundy at abridgegame.org>**20050401123126] 

[get rid of tabs in Put.lhs.
David Roundy <droundy at abridgegame.org>**20050401123114] 

[resolve conflict in Patch.
David Roundy <droundy at abridgegame.org>**20050401112959] 

[be a bit quicker in unit.
David Roundy <droundy at abridgegame.org>**20050330142629] 

[RT#225 - get rid of some warnings in the put.pl test
Mark Stosberg <mark at summersault.com>**20050320204357] 

[RT#225 - some first tests for 'put', including TODO tests for setting the default REPO
Mark Stosberg <mark at summersault.com>**20050320195440] 

[RT#225 - a better "do nothing" message for put.
Mark Stosberg <mark at summersault.com>**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 <mark at summersault.com>**20050320165530] 

[give more detail in test_commute.
David Roundy <droundy at abridgegame.org>**20050316132849] 

[add missing newline to 'put'
Mark Stosberg <mark at summersault.com>**20050315011639] 

[fix ghc 6.4 issue in SlurpDirectory.
David Roundy <droundy at abridgegame.org>**20050312130245] 

[resolve conflict in SlurpDirectory.
David Roundy <droundy at abridgegame.org>**20050311134239] 

[improve tests on commutation.
David Roundy <droundy at abridgegame.org>**20050302125743] 

[give more info when new_elegant_merge fails.
David Roundy <droundy at abridgegame.org>**20050302125717] 

[use commute_no_merger in simple_commute_conflict.
David Roundy <droundy at abridgegame.org>**20050302125640] 

[be more stubborn when running quickCheck tests patiently.
David Roundy <droundy at abridgegame.org>**20050224134503] 

[remove tests that ought to fail for conflictors.
David Roundy <droundy at abridgegame.org>**20050110134914] 

[fix commute bug in Conflictors.
David Roundy <droundy at abridgegame.org>**20050110134755] 

[Be less lazy at the end of lists
Ian Lynagh <igloo at earth.li>**20050109174414] 

[remove debug traces from PatchCommute.
David Roundy <droundy at abridgegame.org>**20050109142321] 

[add test for pulling a binary patch with conflicting working directory removal.
David Roundy <droundy at abridgegame.org>**20050628121211] 

[license aclocal.m4 with a more liberal license.
David Roundy <droundy at abridgegame.org>**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 <tomasz.zielonka at gmail.com>**20050524225643] 

[No interactive patch selection in put (and other fixes)
Josef Svenningsson <josef.svenningsson at gmail.com>**20050406180405] 

[Change Repository to DarcsRepo.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20050424140132] 

[add compatibility module between Data.Map and Data.FiniteMap, taken from Yi
Benedikt Schmidt <beschmi at cloaked.de>**20050406002216] 

[A new command: put
Josef Svenningsson <josef.svenningsson at gmail.com>**20050305153255] 

[make check read patches lazily.
David Roundy <droundy at abridgegame.org>**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 <droundy at abridgegame.org>**20050409111931] 

[change Conflictor data type to support multiple (as opposed to repeated) conflicts.
David Roundy <droundy at abridgegame.org>**20050313200940] 

[fix bugs and simplify code in conflictor commutation.
David Roundy <droundy at abridgegame.org>**20050302125452] 

[fix bug in new confictor commute code.
David Roundy <droundy at abridgegame.org>**20050219192453] 

[implement some of the conflictor commutation in a more testable manner.
David Roundy <droundy at abridgegame.org>**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 <droundy at abridgegame.org>**20050214134235] 

[extend subcommute tests.
David Roundy <droundy at abridgegame.org>**20050209135706] 

[add subcommutation tests.
David Roundy <droundy at abridgegame.org>**20050208135139] 

[fix commuteFP.
David Roundy <droundy at abridgegame.org>**20050208134536] 

[fix bug in simple_commute_conflict.
David Roundy <droundy at abridgegame.org>**20050116144700] 

[fix bug in commuting secondary conflictors.
David Roundy <droundy at abridgegame.org>**20050111122439] 

[fix check_patch on Conflictors.
David Roundy <droundy at abridgegame.org>**20050110134856] 

[Infrastructure for lazy patch parsing
Ian Lynagh <igloo at earth.li>**20050104233618] 

[Create and use applyPristine for recording patches
Ian Lynagh <igloo at earth.li>**20050411224757] 

[Don't hold patch in memory when recording
Ian Lynagh <igloo at earth.li>**20050411025804] 

[Move the apply_to_slurpy deeper
Ian Lynagh <igloo at earth.li>**20050411013748] 

[add --reorder-patches option to optimize.
David Roundy <droundy at abridgegame.org>**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 <droundy at abridgegame.org>**20050402201902] 

[make Patch export really_eq_patches.
David Roundy <droundy at abridgegame.org>**20050314135346] 

[use slurp_recordeds in Record.lhs.
David Roundy <droundy at abridgegame.org>**20050201125158] 

[add slurp_recordeds, which does multiple slurps simultaneously and efficiently.
David Roundy <droundy at abridgegame.org>**20050129114939] 

[Eliminate write_dirty_Pristine from Unrecord
Ian Lynagh <igloo at earth.li>**20050509211418] 

[Pass in number of patches (when easy) to select changes
Ian Lynagh <igloo at earth.li>**20050506014747] 

[Avoid extra patch selection pass in the simple (no restriction) case
Ian Lynagh <igloo at earth.li>**20050506010752] 

[Apply patch choice selection optimisation to other cases
Ian Lynagh <igloo at earth.li>**20050423023203] 

[Unsafe pull_firsts_middles optimisation
Ian Lynagh <igloo at earth.li>**20050412233738] 

[Rename get_first_middle__last_choice to separate_first_middle_from_last
Ian Lynagh <igloo at earth.li>**20050412214602] 

[Avoid code duplication
Ian Lynagh <igloo at earth.li>**20050411212931] 

[get_first_middle__last_choice
Ian Lynagh <igloo at earth.li>**20050411013701] 

[Eliminate slurp_write_dirty from Unrecord
Ian Lynagh <igloo at earth.li>**20050509203955] 

[make apply_patches avoid using slurpy at all.
David Roundy <droundy at abridgegame.org>**20050409122312] 

[fix darcs-unstable to work with ghc 6.4.
David Roundy <droundy at abridgegame.org>**20050212162509] 

[use DarcsIO classes for apply_to_filepaths.
David Roundy <droundy at abridgegame.org>**20050206142024] 

[new DarcsIO framework (as yet unused).
David Roundy <droundy at abridgegame.org>**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 <droundy at abridgegame.org>**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 <droundy at abridgegame.org>**20050114125130] 

[fix bug in Conflictor commutation.
David Roundy <droundy at abridgegame.org>**20050109141251] 

[fix bug in Conflictor commutation of recursive conflicts.
David Roundy <droundy at abridgegame.org>**20050109131414] 

[conflictor code does need Control.Monad.when.
David Roundy <droundy at abridgegame.org>**20050108172544] 

[add Conflictor patch type.
David Roundy <droundy at abridgegame.org>**20050102154349] 

[TAG 1.0.3
Tomasz Zielonka <tomasz.zielonka at gmail.com>**20050524215127] 
-------------- next part --------------

New patches:

[TMP RESOLVE doc in Optimize
Tommy Pettersson <ptp at lysator.liu.se>**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 <ptp at lysator.liu.se>**20060115173051] {
hunk ./Record.lhs 41
+                    slurp_recorded,
}

[TMP RESOLV cleanboth/iswanted in SelectChanges
Tommy Pettersson <ptp at lysator.liu.se>**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 <ptp at lysator.liu.se>**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; \
+	) > $@.tmp
+	mv $@.tmp $@
+
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 <igloo at earth.li>**20050418224517] 
[Avoid unnecessary lines/unlines of files when applying patches
Ian Lynagh <igloo at earth.li>**20050418200353] 
[Small tidy-up
Ian Lynagh <igloo at earth.li>**20050417130858] 
[Don't put SCCs in Record or SelectChanges
Ian Lynagh <igloo at earth.li>**20050416160628] 
[Stringalike class
Ian Lynagh <igloo at earth.li>**20050413034412] 
[Remove tab
Ian Lynagh <igloo at earth.li>**20050419022849] 
[Extend the win32 Posix emulation
Josef Svenningsson <josef.svenningsson at gmail.com>**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 <igloo at earth.li>**20050416180306] 
[Avoid submerge_in_dir when diffing
Ian Lynagh <igloo at earth.li>**20050416170419] 
[add trivial test for 'optimize --reorder-patches'
Mark Stosberg <mark at summersault.com>**20050408160306] 
[initial test for optimize
Mark Stosberg <mark at summersault.com>**20050403023609] 
[More tweaking
Ian Lynagh <igloo at earth.li>**20050416160651] 
[More tweaks
Ian Lynagh <igloo at earth.li>**20050416025802] 
[Keep filenames reversed until we need them
Ian Lynagh <igloo at earth.li>**20050416011742] 
[Use getSymbolicLinkStatus more
Ian Lynagh <igloo at earth.li>**20050416002512] 
[Use getSymbolicLinkStatus to save on stat calls
Ian Lynagh <igloo at earth.li>**20050415235648] 
[Tweak SlurpDirectory
Ian Lynagh <igloo at earth.li>**20050415231336] 
[Tweak Diff.lhs
Ian Lynagh <igloo at earth.li>**20050415231250] 
[Remove unnecessary code and withSignalsBlocked
Ian Lynagh <igloo at earth.li>**20050412005145] 
[turns out we don't want "multiple" conflictors...
David Roundy <droundy at abridgegame.org>**20050409200107] 
[Add verbose message for timestamp syncing
Ian Lynagh <igloo at earth.li>**20050411225806] 
[Remove verbose message that got copied elsewhere
Ian Lynagh <igloo at earth.li>**20050411225741] 
[Change a can't happen error to an impossible
Ian Lynagh <igloo at earth.li>**20050411212735] 
[fix newlines in stringify.
David Roundy <droundy at abridgegame.org>**20050409154243] 
[No need to use C for Context
Ian Lynagh <igloo at earth.li>**20050409145935] 
[The "David Is Lame" patch! (fixing bug in is_null_patch conflict resolution.)
David Roundy <droundy at abridgegame.org>**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 <droundy at abridgegame.org>**20050410131116] 
[don't bother running unit for "normal" make test, and add slowtest target.
David Roundy <droundy at abridgegame.org>**20050409200128] 
[remove incorrect commute rule from simple_unforce.
David Roundy <droundy at abridgegame.org>**20050316134058] 
[fix bug in is_null_patch that lead to false positive when resolving.
David Roundy <droundy at abridgegame.org>**20050409145947] 
[preproc.hs: Calculate the_commands from command_control_list
Florian Weimer <fw at deneb.enyo.de>**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 <droundy at abridgegame.org>**20050409141855] 
[Guess at what the docs for --reorder-patches should be.
Mark Stosberg <mark at summersault.com>**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 <beschmi at cloaked.de>**20050408174913] 
[read patches lazily in Repair.
David Roundy <droundy at abridgegame.org>**20050409125642] 
[read patches lazily in Get.
David Roundy <droundy at abridgegame.org>**20050409125557] 
[finish off implementation of apply.
David Roundy <droundy at abridgegame.org>**20050409104929] 
[eliminate pthreads dependency, writing gzipped files with gzWriteFilePSs.
David Roundy <droundy at abridgegame.org>**20050409000949] 
[resolve conflicts in darcs.lhs.
David Roundy <droundy at abridgegame.org>**20050408120053] 
[command grouping in darcs --help
peter at syncad.com**20050407211626
 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 <josef.svenningsson at gmail.com>**20050403220400] 
[add hashPS to FastPackedString
Benedikt Schmidt <beschmi at cloaked.de>**20050405234517] 
[rename Map module, add missing insertWith function
Benedikt Schmidt <beschmi at cloaked.de>**20050406210939] 
[resolve conflict in PatchShow's import from Printer
Tommy Pettersson <ptp at lysator.liu.se>**20050407235424] 
[fix put.pl test to work with new put code.
David Roundy <droundy at abridgegame.org>**20050408104455] 
[resolve conflict in unit.
David Roundy <droundy at abridgegame.org>**20050406120505] 
[replace Hunt/Szymanski diff algorithm with one by Myers
Benedikt Schmidt <beschmi at cloaked.de>**20050406005000] 
[make unit work with new ColourPrinters.
David Roundy <droundy at abridgegame.org>**20050406115006] 
[Stylistic changes to Slurpy-pruning code (David's suggestions).
Kannan Goundan <kannan at cakoose.com>**20050306213842] 
[resolve conflict with symlink error message fix.
David Roundy <droundy at abridgegame.org>**20050305164054] 
[When creating replicas to run "diff" on, only copy what's necessary.
kannan at cakoose.com**20050303042827] 
[Added functions to selectively prune a Slurpy tree.
kannan at cakoose.com**20050303042606] 
[resolve conflicts in Put.
David Roundy <droundy at abridgegame.org>**20050407132558] 
[get rid of tab in RemoteApply.
David Roundy <droundy at abridgegame.org>**20050401123126] 
[get rid of tabs in Put.lhs.
David Roundy <droundy at abridgegame.org>**20050401123114] 
[resolve conflict in Patch.
David Roundy <droundy at abridgegame.org>**20050401112959] 
[be a bit quicker in unit.
David Roundy <droundy at abridgegame.org>**20050330142629] 
[RT#225 - get rid of some warnings in the put.pl test
Mark Stosberg <mark at summersault.com>**20050320204357] 
[RT#225 - some first tests for 'put', including TODO tests for setting the default REPO
Mark Stosberg <mark at summersault.com>**20050320195440] 
[RT#225 - a better "do nothing" message for put.
Mark Stosberg <mark at summersault.com>**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 <mark at summersault.com>**20050320165530] 
[give more detail in test_commute.
David Roundy <droundy at abridgegame.org>**20050316132849] 
[add missing newline to 'put'
Mark Stosberg <mark at summersault.com>**20050315011639] 
[fix ghc 6.4 issue in SlurpDirectory.
David Roundy <droundy at abridgegame.org>**20050312130245] 
[resolve conflict in SlurpDirectory.
David Roundy <droundy at abridgegame.org>**20050311134239] 
[improve tests on commutation.
David Roundy <droundy at abridgegame.org>**20050302125743] 
[give more info when new_elegant_merge fails.
David Roundy <droundy at abridgegame.org>**20050302125717] 
[use commute_no_merger in simple_commute_conflict.
David Roundy <droundy at abridgegame.org>**20050302125640] 
[be more stubborn when running quickCheck tests patiently.
David Roundy <droundy at abridgegame.org>**20050224134503] 
[remove tests that ought to fail for conflictors.
David Roundy <droundy at abridgegame.org>**20050110134914] 
[fix commute bug in Conflictors.
David Roundy <droundy at abridgegame.org>**20050110134755] 
[Be less lazy at the end of lists
Ian Lynagh <igloo at earth.li>**20050109174414] 
[remove debug traces from PatchCommute.
David Roundy <droundy at abridgegame.org>**20050109142321] 
[add test for pulling a binary patch with conflicting working directory removal.
David Roundy <droundy at abridgegame.org>**20050628121211] 
[license aclocal.m4 with a more liberal license.
David Roundy <droundy at abridgegame.org>**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 <tomasz.zielonka at gmail.com>**20050524225643] 
[No interactive patch selection in put (and other fixes)
Josef Svenningsson <josef.svenningsson at gmail.com>**20050406180405] 
[Change Repository to DarcsRepo.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20050424140132] 
[add compatibility module between Data.Map and Data.FiniteMap, taken from Yi
Benedikt Schmidt <beschmi at cloaked.de>**20050406002216] 
[A new command: put
Josef Svenningsson <josef.svenningsson at gmail.com>**20050305153255] 
[make check read patches lazily.
David Roundy <droundy at abridgegame.org>**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 <droundy at abridgegame.org>**20050409111931] 
[change Conflictor data type to support multiple (as opposed to repeated) conflicts.
David Roundy <droundy at abridgegame.org>**20050313200940] 
[fix bugs and simplify code in conflictor commutation.
David Roundy <droundy at abridgegame.org>**20050302125452] 
[fix bug in new confictor commute code.
David Roundy <droundy at abridgegame.org>**20050219192453] 
[implement some of the conflictor commutation in a more testable manner.
David Roundy <droundy at abridgegame.org>**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 <droundy at abridgegame.org>**20050214134235] 
[extend subcommute tests.
David Roundy <droundy at abridgegame.org>**20050209135706] 
[add subcommutation tests.
David Roundy <droundy at abridgegame.org>**20050208135139] 
[fix commuteFP.
David Roundy <droundy at abridgegame.org>**20050208134536] 
[fix bug in simple_commute_conflict.
David Roundy <droundy at abridgegame.org>**20050116144700] 
[fix bug in commuting secondary conflictors.
David Roundy <droundy at abridgegame.org>**20050111122439] 
[fix check_patch on Conflictors.
David Roundy <droundy at abridgegame.org>**20050110134856] 
[Infrastructure for lazy patch parsing
Ian Lynagh <igloo at earth.li>**20050104233618] 
[Create and use applyPristine for recording patches
Ian Lynagh <igloo at earth.li>**20050411224757] 
[Don't hold patch in memory when recording
Ian Lynagh <igloo at earth.li>**20050411025804] 
[Move the apply_to_slurpy deeper
Ian Lynagh <igloo at earth.li>**20050411013748] 
[add --reorder-patches option to optimize.
David Roundy <droundy at abridgegame.org>**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 <droundy at abridgegame.org>**20050402201902] 
[make Patch export really_eq_patches.
David Roundy <droundy at abridgegame.org>**20050314135346] 
[use slurp_recordeds in Record.lhs.
David Roundy <droundy at abridgegame.org>**20050201125158] 
[add slurp_recordeds, which does multiple slurps simultaneously and efficiently.
David Roundy <droundy at abridgegame.org>**20050129114939] 
[Eliminate write_dirty_Pristine from Unrecord
Ian Lynagh <igloo at earth.li>**20050509211418] 
[Pass in number of patches (when easy) to select changes
Ian Lynagh <igloo at earth.li>**20050506014747] 
[Avoid extra patch selection pass in the simple (no restriction) case
Ian Lynagh <igloo at earth.li>**20050506010752] 
[Apply patch choice selection optimisation to other cases
Ian Lynagh <igloo at earth.li>**20050423023203] 
[Unsafe pull_firsts_middles optimisation
Ian Lynagh <igloo at earth.li>**20050412233738] 
[Rename get_first_middle__last_choice to separate_first_middle_from_last
Ian Lynagh <igloo at earth.li>**20050412214602] 
[Avoid code duplication
Ian Lynagh <igloo at earth.li>**20050411212931] 
[get_first_middle__last_choice
Ian Lynagh <igloo at earth.li>**20050411013701] 
[Eliminate slurp_write_dirty from Unrecord
Ian Lynagh <igloo at earth.li>**20050509203955] 
[make apply_patches avoid using slurpy at all.
David Roundy <droundy at abridgegame.org>**20050409122312] 
[fix darcs-unstable to work with ghc 6.4.
David Roundy <droundy at abridgegame.org>**20050212162509] 
[use DarcsIO classes for apply_to_filepaths.
David Roundy <droundy at abridgegame.org>**20050206142024] 
[new DarcsIO framework (as yet unused).
David Roundy <droundy at abridgegame.org>**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 <droundy at abridgegame.org>**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 <droundy at abridgegame.org>**20050114125130] 
[fix bug in Conflictor commutation.
David Roundy <droundy at abridgegame.org>**20050109141251] 
[fix bug in Conflictor commutation of recursive conflicts.
David Roundy <droundy at abridgegame.org>**20050109131414] 
[conflictor code does need Control.Monad.when.
David Roundy <droundy at abridgegame.org>**20050108172544] 
[add Conflictor patch type.
David Roundy <droundy at abridgegame.org>**20050102154349] 
[TAG 1.0.3
Tomasz Zielonka <tomasz.zielonka at gmail.com>**20050524215127] 
Patch bundle hash:
f580fd4f6a7dd3000527f513bd6e4fecd4b71b95
-------------- next part --------------
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


More information about the darcs-devel mailing list