darcs

Patch 86 resolve issue1208: trackdown --bisect for binary search.

Title resolve issue1208: trackdown --bisect for binary search.
Superseder Nosy List darcs-users, dixiecko, fis, mornfall
Related Issues darcs trackdown --bisect
View: 1208
Status obsoleted Assigned To
Milestone

Created on 2009-11-15.20:02:01 by fis, last changed 2011-05-10.19:06:20 by darcswatch. Tracked on DarcsWatch.

Files
File name Status Uploaded Type Edit Remove
resolve-issue1208_-trackdown-__bisect-for-binary-search_.dpatch fis, 2009-11-15.20:02:00 text/x-darcs-patch
resolve-issue1208_-trackdown-__bisect-for-binary-search_.dpatch mornfall, 2009-11-18.15:59:50 text/x-darcs-patch
unnamed fis, 2009-11-15.20:02:00 text/plain
unnamed mornfall, 2009-11-18.15:59:50 text/plain
See mailing list archives for discussion on individual patches.
Messages
msg9371 (view) Author: fis Date: 2009-11-15.20:02:00
Sun Nov 15 20:42:43 CET 2009  mf-hcafe-15c311f0c@etc-network.de
  * resolve issue1208: trackdown --bisect for binary search.
Attachments
msg9372 (view) Author: darcswatch Date: 2009-11-15.20:06:09
This patch bundle (with 1 patch), which can be  applied to the repository http://darcs.net/ is now tracked  on DarcsWatch at http://darcswatch.nomeata.de/repo_http:__darcs.net_.html
msg9412 (view) Author: dixiecko Date: 2009-11-18.15:24:52
It can not by applied, since patch has dependency on non-existing patch (I can
not find it) :(

darcs apply
~/Download/resolve-issue1208_-trackdown-__bisect-for-binary-search_.dpatch 
darcs: Cannot apply this patch bundle, since we're missing:
Mon Nov  2 18:17:25 CET 2009  Eric Kow <kowey@darcs.net>
  * Fix haddock compile error.

I guess that it happened because of using kowey local repo instead of official
darcs.net (because of that outage at vienna sprint).
msg9413 (view) Author: mornfall Date: 2009-11-18.15:59:50
Hi,

this is a re-send of the same bundle, that should apply on top of
darcs.net. The context of the previous bundle seems to indeed include a change
not on the mainline.

Yours,
   Petr.

Sun Nov 15 20:42:43 CET 2009  mf-hcafe-15c311f0c@etc-network.de
  * resolve issue1208: trackdown --bisect for binary search.
Attachments
msg9414 (view) Author: darcswatch Date: 2009-11-18.16:02:05
This patch bundle (with 1 patch), which can be  applied to the repository http://darcs.net/ is now tracked  on DarcsWatch at http://darcswatch.nomeata.de/repo_http:__darcs.net_.html
msg9418 (view) Author: fis Date: 2009-11-18.16:49:08
yes, i think you are right about why.  i just submitted another
attempt.

 matthias


On Wed, Nov 18, 2009 at 03:24:53PM +0000, Radoslav Dorcik wrote:
> To: darcs-users@darcs.net, dixiecko@gmail.com,
> 	mf-hcafe-15c311f0c@etc-network.de
> From: Radoslav Dorcik <bugs@darcs.net>
> Date: Wed, 18 Nov 2009 15:24:53 +0000
> Subject: [patch86] resolve issue1208: trackdown --bisect for binary search.
> 
> 
> Radoslav Dorcik <dixiecko@gmail.com> added the comment:
> 
> It can not by applied, since patch has dependency on non-existing patch (I can
> not find it) :(
> 
> darcs apply
> ~/Download/resolve-issue1208_-trackdown-__bisect-for-binary-search_.dpatch 
> darcs: Cannot apply this patch bundle, since we're missing:
> Mon Nov  2 18:17:25 CET 2009  Eric Kow <kowey@darcs.net>
>   * Fix haddock compile error.
> 
> I guess that it happened because of using kowey local repo instead of official
> darcs.net (because of that outage at vienna sprint).
> 
> ----------
> nosy: +dixiecko
> 
> __________________________________
> Darcs bug tracker <bugs@darcs.net>
> <http://bugs.darcs.net/patch86>
> __________________________________
> 
> 
>  ** ACCEPT: CRM114 PASS osb unique microgroom Matcher **
> CLASSIFY succeeds; success probability: 0.9276  pR: 1.1079
> Best match to file #0 (nonspam.css) prob: 0.9276  pR: 1.1079
> Total features in input file: 2368
> #0 (nonspam.css): features: 761191, hits: 2630561, prob: 9.28e-01, pR:   1.11
> #1 (spam.css): features: 1678863, hits: 2961753, prob: 7.24e-02, pR:  -1.11
>
msg9420 (view) Author: fis Date: 2009-11-18.16:54:03
ok, please ignore the patch i just submitted.  it should be exactly
the same thing now.

m.


On Wed, Nov 18, 2009 at 03:59:50PM +0000, Petr Ročkai wrote:
> To: darcs-users@darcs.net, dixiecko@gmail.com, me@mornfall.net,
> 	mf-hcafe-15c311f0c@etc-network.de
> From: Petr Ročkai <bugs@darcs.net>
> Date: Wed, 18 Nov 2009 15:59:50 +0000
> Subject: [patch86] resolve issue1208: trackdown --bisect for binary search.
> 
> 
> Petr Ročkai <me@mornfall.net> added the comment:
> 
> Hi,
> 
> this is a re-send of the same bundle, that should apply on top of
> darcs.net. The context of the previous bundle seems to indeed include a change
> not on the mainline.
> 
> Yours,
>    Petr.
> 
> Sun Nov 15 20:42:43 CET 2009  mf-hcafe-15c311f0c@etc-network.de
>   * resolve issue1208: trackdown --bisect for binary search.
> 
> ----------
> nosy: +mornfall
> 
> __________________________________
> Darcs bug tracker <bugs@darcs.net>
> <http://bugs.darcs.net/patch86>
> __________________________________
> 
> New patches:
> 
> [resolve issue1208: trackdown --bisect for binary search.
> mf-hcafe-15c311f0c@etc-network.de**20091115194243
>  Ignore-this: 25d3774fb4207efe174c98d85334ba76
> ] hunk ./src/Darcs/Arguments.lhs 76
>                           match_several_or_last,
>                           set_default,
>                           fancy_move_add,
> -                         set_scripts_executable,
> +                         set_scripts_executable, bisect,
>                           sibling, flagsToSiblings, relink, relink_pristine, nolinks,
>                           files, directories, pending,
>                           posthook_cmd, posthook_prompt,
> hunk ./src/Darcs/Arguments.lhs 269
>  getContent Disable = NoContent
>  getContent SetScriptsExecutable = NoContent
>  getContent DontSetScriptsExecutable = NoContent
> +getContent Bisect = NoContent
>  getContent UseHashedInventory = NoContent
>  getContent UseOldFashionedInventory = NoContent
>  getContent UseFormat2 = NoContent
> hunk ./src/Darcs/Arguments.lhs 1269
>                                 DarcsNoArgOption [] ["dont-set-scripts-executable"] DontSetScriptsExecutable
>                                 "don't make scripts executable"]
>  
> +bisect :: DarcsOption
> +bisect = DarcsNoArgOption [] ["bisect"] Bisect
> +         "binary instead of linear search"
> +
>  relink, relink_pristine, sibling :: DarcsOption
>  relink = DarcsNoArgOption [] ["relink"] Relink
>           "relink random internal data to a sibling"
> hunk ./src/Darcs/Commands/TrackDown.lhs 20
>  
>  \darcsCommand{trackdown}
>  \begin{code}
> +
> +#include "gadts.h"
> +
>  module Darcs.Commands.TrackDown ( trackdown ) where
>  import Prelude hiding ( init )
>  import System.Exit ( ExitCode(..) )
> hunk ./src/Darcs/Commands/TrackDown.lhs 31
>  import Control.Monad( when )
>  
>  import Darcs.Commands ( DarcsCommand(..), nodefaults )
> -import Darcs.Arguments ( DarcsFlag(SetScriptsExecutable), working_repo_dir,
> +import Darcs.Arguments ( DarcsFlag(SetScriptsExecutable, Bisect), working_repo_dir, bisect,
>                           set_scripts_executable )
>  import Darcs.Hopefully ( hopefully )
>  import Darcs.Repository ( amInRepository, read_repo, withRepoReadLock, ($-), withRecorded,
> hunk ./src/Darcs/Commands/TrackDown.lhs 36
>                            setScriptsExecutable )
> -import Darcs.Ordered ( FL(..), mapRL_RL, concatRL )
> +import Darcs.Ordered ( FL(..), mapRL_RL, concatRL,
> +#ifndef GADT_WITNESSES
> +                       unsafeUnFL
> +#endif
> +                     )
>  import Darcs.Patch ( RepoPatch, Named, description, apply, invert, invertRL )
> hunk ./src/Darcs/Commands/TrackDown.lhs 42
> +import Darcs.Patch.Patchy  -- ( instance Invert )
>  import Printer ( putDocLn )
>  import Darcs.Test ( get_test )
>  import Darcs.Lock ( withTempDir )
> hunk ./src/Darcs/Commands/TrackDown.lhs 46
> -
> -#include "gadts.h"
> +import Control.Exception ( assert )
> +import Data.Tree
>  
>  trackdown_description :: String
>  trackdown_description = "Locate the most recent version lacking an error."
> hunk ./src/Darcs/Commands/TrackDown.lhs 58
>   "passes a test.  Given no arguments, it uses the default repository test.\n"++
>   "Given one argument, it treats it as a test command.  Given two arguments,\n"++
>   "the first is an initialization command with is run only once, and the\n"++
> - "second is the test command.\n"
> + "second is the test command.\n\n"++
> + "Without the --bisect option, it does linear search back in history\n"++
> + "staring from head.\n\n"++
> + "With the --bisect option, it does binary search.\n"++
> + "Under the assumption that failure is monotonous, trackdown produces\n"++
> + "the same result with and without --bisect. Monotonous means that test\n"++
> + "fails on head and starts working only once when going back in\n"++
> + "history. If failure is not monotonous, one of the versions at which\n"++
> + "the test breaks is found at random."
>  
>  trackdown :: DarcsCommand
>  trackdown = DarcsCommand {command_name = "trackdown",
> hunk ./src/Darcs/Commands/TrackDown.lhs 80
>                            command_get_arg_possibilities = return [],
>                            command_argdefaults = nodefaults,
>                            command_advanced_options = [set_scripts_executable],
> -                          command_basic_options = [working_repo_dir]}
> +                          command_basic_options = [working_repo_dir, bisect]}
>  
>  trackdown_cmd :: [DarcsFlag] -> [String] -> IO ()
>  trackdown_cmd opts args = withRepoReadLock opts $- \repository -> do
> hunk ./src/Darcs/Commands/TrackDown.lhs 100
>    withRecorded repository (withTempDir "trackingdown") $ \_ -> do
>      when (SetScriptsExecutable `elem` opts) setScriptsExecutable
>      init
> -    track_next opts test . invertRL . mapRL_RL hopefully . concatRL $ patches
> +    (if Bisect `elem` opts
> +     then track_bisect
> +     else track_next_linear) opts test (invertRL . mapRL_RL hopefully . concatRL $ patches)
> +
>  
> hunk ./src/Darcs/Commands/TrackDown.lhs 105
> -track_next :: RepoPatch p => [DarcsFlag] -> (IO ExitCode) -> FL (Named p) C(x y) -> IO ()
> -track_next opts test (p:>:ps) = do
> +-- linear search (without --bisect)
> +
> +track_next_linear :: RepoPatch p => [DarcsFlag] -> (IO ExitCode) -> FL (Named p) C(x y) -> IO ()
> +track_next_linear opts test (p:>:ps) = do
>      test_result <- test
>      if test_result == ExitSuccess
>         then putStrLn "Success!"
> hunk ./src/Darcs/Commands/TrackDown.lhs 116
>                 putStrLn "Trying without the patch:"
>                 putDocLn $ description $ invert p
>                 hFlush stdout
> -               track_next opts test ps
> -track_next _ _ NilFL = putStrLn "Noone passed the test!"
> +               track_next_linear opts test ps
> +track_next_linear _ _ NilFL = putStrLn "Noone passed the test!"
> +
> +
> +-- binary search (with --bisect)
> +
> +#ifdef GADT_WITNESSES
> +track_bisect :: (Invert p, ShowPatch p, Apply p) =>
> +                [DarcsFlag] -> IO ExitCode -> FL p C(x y) -> IO ()
> +track_bisect = error "--bisect and GADT don't like each other.  sorry."
> +#else
> +
> +{-
> +
> +generate: build a lazy search tree with the following semantics: in
> +each node, a list of patches allows the state of the repository to
> +move to the next point in time that is to be tested (either forward in
> +time or back in time, but always in form of a directly applicable FL).
> +once traversed there, the test is executed.  in case of success,
> +recurse over left child, in case of failure, recurse over right child.
> +
> +track_next_bisect: this is the recursive traversal function that walks
> +along the patch lists, runs the test, recurses into the subtrees, and
> +does progress reporting on stdout.
> +
> +-}
> +
> +generate :: (Invert p) =>
> +            [p] -> Bool -> Tree [p]
> +generate [] _ = assert False (error "generate: internal error (enable assertions for more info)")
> +generate [x] _ = Node [x] []
> +generate xs True =
> +    -- FL of inverted patches (walking back in history)
> +    case splitAt (length xs `div` 2) xs of
> +      (one, two) -> Node one
> +                      [generate (reverse . map invert $ one) False,  -- no more fail: walk towards head
> +                       generate two True]                            -- still fail: walk away from head
> +generate xs False =
> +    -- FL of forward patches (moving forward in history)
> +    case splitAt (length xs `div` 2) xs of
> +      (one, two) -> Node one
> +                      [generate two False,                           -- no more fail: walk towards head
> +                       generate (reverse . map invert $ one) True]   -- still fail: walk away from head
> +
> +track_bisect :: (Invert p, ShowPatch p, Apply p) =>
> +                [DarcsFlag] -> IO ExitCode -> FL p C(x y) -> IO ()
> +track_bisect opts test ps =
> +    do
> +      test_result <- test
> +      if test_result == ExitSuccess
> +        then putStrLn ("Test does not fail on head.  Trackdown is unapplicable.")
> +        else track_next_bisect opts test (bt, 1, progress_total)
> +    where
> +      bt = generate pl True
> +      pl = unsafeUnFL ps
> +      progress_total = (round ((logBase 2 $ fromIntegral $ length pl) :: Double)) :: Int
> +
> +track_next_bisect :: (Invert p, ShowPatch p, Apply p) =>
> +                     [DarcsFlag] -> IO ExitCode -> (Tree [p], Int, Int) -> IO ()
> +track_next_bisect opts test (bt, progress_now, progress_total) =
> +    do
> +      putStr ("Trying " ++ show progress_now ++ "/" ++ show progress_total ++ "...\n")
> +             -- (we could do progress reporting with '\r', but then if
> +             -- the script outputs to the screen it gets very messy,
> +             -- so we open a new line in every node on the path
> +             -- through the tree.)
> +      hFlush stdout
> +      case bt of
> +        Node [p] [] ->
> +            putStrLn ("This is the oldest patch in the given range that fails the test:") >>
> +            putDocLn (description p)
> +
> +        Node patches [subtree_success, subtree_failure] ->
> +            -- trace (show $ map description patches) $
> +            do
> +              mapM_ (\ p -> apply opts p `catch` \e -> fail ("Bad patch:\n" ++ show e)) patches
> +              test_result <- test
> +              if test_result == ExitSuccess
> +                then track_next_bisect opts test (subtree_success, progress_now + 1, progress_total)
> +                else track_next_bisect opts test (subtree_failure, progress_now + 1, progress_total)
> +
> +        Node _ _ ->
> +            assert False (error "track_next_bisect: internal error.")
> +#endif
> +
> +-- TODO / FIXME: see documentation below.
> +
> +
>  \end{code}
>  
>  Trackdown is helpful for locating when something was broken.  It creates
> hunk ./src/Darcs/Commands/TrackDown.lhs 223
>  finally succeeds, the name of the hunted down patch is found in the
>  output before the last test run.
>  
> -FIXME: It is
> -still rather primitive.  Currently it just goes back over the history in
> -reverse order trying each version.  I'd like for it to explore different
> -patch combinations, to try to find the minimum number of patches that you
> -would need to obliterate in order to make the test succeed.
> +FIXME: There is a new --bisect feature that needs to be finished.
> +Open points: polish debugging output and add --verbose flag; documentation
> +(online help's already there); allow search bound patch to bisect.
> +(--to-match? --to-*?); eliminate unsafeUnFL; add test cases.  See Issue1208.
> +
> +FIXME: There is a third more besides linear (no --bisect) and binary
> +(--bisect) search, which is described on bugs.darcs.net in Issue1638.
> +The idea is that no total order on the set of patches is assumed.
> +Delta trackdown yields the minimum number of patches that you would
> +need to obliterate in order to make the test succeed.
>  
>  FIXME: I also would like to add an interface by which you can tell it which
>  patches it should consider not including.  Without such a feature, the
> hunk ./src/Darcs/Flags.hs 77
>                 | NonApply | NonVerify | NonForce
>                 | DryRun | SetDefault | NoSetDefault
>                 | FancyMoveAdd | NoFancyMoveAdd
> -               | Disable | SetScriptsExecutable | DontSetScriptsExecutable
> +               | Disable | SetScriptsExecutable | DontSetScriptsExecutable | Bisect
>                 | UseHashedInventory | UseOldFashionedInventory
>                 | UseFormat2
>                 | PristinePlain | PristineNone | NoUpdateWorking
> 
> Context:
> 
> [Resolve issue540: darcs remove --recursive
> quiark@centrum.cz**20091115192344
>  Ignore-this: 1c1bf04aef237e7b82b2fad4d45a0840
> ] 
> [Remove does not fail only warns on already removed or not added files.
> quiark@centrum.cz**20091115172010
>  Ignore-this: 97721db92db7f8758922cdd1582f6276
> ] 
> [hlint error: Use first instead of ***
> Joachim Breitner <mail@joachim-breitner.de>**20091115144513
>  Ignore-this: c19b8017696fee21ed4bb518b1fd6988
> ] 
> [resolve issue1643: optimize --upgrade should do optimize
> Christian Berrer <christian.berrer@gmx.at>**20091115123716
>  Ignore-this: f437be2563974f9dad8576482797d23b
> ] 
> [resolve issue1122: get --complete should not offer to create a lazy repository
> David Markvica <david@blueshellturtle.com>**20091115160201
>  Ignore-this: da8a1d30869e6153c027ae396cc74d56
> ] 
> [Fix a missing import after rushing a push of a hlint fix.
> Petr Rockai <me@mornfall.net>**20091115160550
>  Ignore-this: fc9f2a4dd2dfda2650feb3ef9e347768
> ] 
> [hlint: span instead of break
> Joachim Breitner <mail@joachim-breitner.de>**20091115142404
>  Ignore-this: 85126abaf3f94a928d260b428d26bcde
>  (darcswatch/roundup integration test patch, but still useful)
> ] 
> [Rollback Kim's test harness improvements. :-(
> Eric Kow <kowey@darcs.net>**20091115152744
>  Ignore-this: 21f4a89439cefa790ff3f52b9170481
>  The problem is that not everybody has the new time package so this
>  would effectively break 'cabal install darcs'.
>  
>  rolling back:
>  
>  Sat Nov 14 23:55:23 CET 2009  Kim Wallmark <kim_darcsnet@arlim.org>
>    * Annotate long-running tests to make optimization easier.
>    
>    See http://bugs.darcs.net/issue1394
>  
>      M ./Distribution/ShellHarness.hs -1 +11
> ] 
> [Annotate long-running tests to make optimization easier.
> Kim Wallmark <kim_darcsnet@arlim.org>**20091114225523
>  Ignore-this: 7de2385c13b074baf119b7fe68ec62a4
>  
>  See http://bugs.darcs.net/issue1394
> ] 
> [Add a section title to distinguish darcs stuff from standard boring.
> Eric Kow <kowey@darcs.net>**20091115085339
>  Ignore-this: 2e052d6d0d2cb7646dcfc910b372545e
> ] 
> [little fix with hlint - changed map to all
> Luca Molteni <volothamp@gmail.com>**20091114092250] 
> [hlint warning: Use isPrefixOf
> Joachim Breitner <mail@joachim-breitner.de>**20091115151706
>  Ignore-this: 9495dfcf9c7bc1750c580dccbaff05fb
> ] 
> [Add a comment to the performGC workaround in amNotInRepository function.
> Petr Rockai <me@mornfall.net>**20091115085903
>  Ignore-this: c4b520f2d6cd2fbcfbf4795f0ee5d9d8
> ] 
> [Bump the hashed-storage dependency to >= 0.4.2.
> Petr Rockai <me@mornfall.net>**20091114172021
>  Ignore-this: 6b579a668ab03185e08bb99635553aca
> ] 
> [Workaround a System.Directory.createDirectory issue.
> Salvatore Insalaco <kirby81@gmail.com>**20091114161658
>  Ignore-this: d8d0ce4e6c5b36484b46ed3b43993dc6
> ] 
> [Resolve issue1224: refuse to convert a repo that's already in darcs-2 format.
> caitt@users.sourceforge.net**20091114152920
>  Ignore-this: c041609d2b4a5815a309b572956185ec
> ] 
> [fix -Wall warnings
> Benedikt Schmidt <beschmi@gmail.com>**20091114150539
>  Ignore-this: 47d0ee669304e0bde13add9a3d4ee8ec
> ] 
> [Issue 1500: Providing more informative message about the nature of progress numbers.
> quiark@centrum.cz**20091114150900
>  Ignore-this: 7f56c72e3d387ce878f78912a24e35ac
> ] 
> [test fix for OSX
> Kamil Dworakowski <kamil@dworakowski.name>**20091114113610
>  Ignore-this: 43aae9f6ae527617845c9c1bb1180c18
> ] 
> [resolve issue1636: match hunk
> Kamil Dworakowski <kamil@dworakowski.name>**20091025122954
>  Ignore-this: 75a9305d62af67e1f20df1c24e729ba3
>  
>  A new primitive match type.
>  
>  By Kamil and tat.wright
> ] 
> [accept issue1636 match hunk
> Kamil Dworakowski <kamil@dworakowski.name>**20091017165928
>  Ignore-this: cbf726b778a4541d4e3a65d207f9d584
>  
>  Add primitive match type to select patches which contain
>  a given regex in some of their hunks.
> ] 
> [remove trailing whitespace
> Kamil Dworakowski <kamil@dworakowski.name>**20091003165321
>  Ignore-this: 6d0a2c2a844da8f6e7d658ab878266df
> ] 
> [HLint test: new comment syntax, new ignored warnings
> Benedikt Huber **20091114085111
>  Ignore-this: 82ed9eda12b9a0cf16c7defd5a40989d
> ] 
> [Use a custom boring file to get rid of tests-* and friends.
> Petr Rockai <me@mornfall.net>**20091114085144
>  Ignore-this: c3ca3f3ece042640580395ca5d903df2
> ] 
> [Camel-case functions exported by Darcs.Repository.Prefs (and some more).
> Eric Kow <kowey@darcs.net>**20091031202137
>  Ignore-this: a45bed6bb4f3b7dec67cd44fd0630512
> ] 
> [Haddock Darcs.Patch.Non addP and addPs.
> Eric Kow <kowey@darcs.net>**20091011154306
>  Ignore-this: 68ca7bd4bb2cbaba0d31d13ab124f6a3
> ] 
> [Haddock the Darcs.Patch.Commute class a little bit.
> Eric Kow <kowey@darcs.net>**20090419115951
>  Ignore-this: 34c31031774e030b5e30ca00d15c4b49
> ] 
> [Resolve issue1659: Make restrictBoring take recorded state into account.
> Petr Rockai <me@mornfall.net>**20091105224138
>  Ignore-this: a546eb6e27adf19a591e7a0c5e7b126
>  
>  It is possible that boring files are part of the repository and we need to
>  account for that by not filtering those files away in the boring filter.
> ] 
> [Refactor Darcs.Commands.Send
> Florent Becker <florent.becker@ens-lyon.org>**20091015130743
>  Ignore-this: 4f5bf11ead522774d5fec4a647b68e00
> ] 
> [Refactor Darcs.Commands.Push
> Florent Becker <florent.becker@ens-lyon.org>**20091015082818
>  Ignore-this: 407791aa8c943d3b11fdae58fad381dd
> ] 
> [Make applyItNow type signature work with GHC 6.8.3.
> Eric Kow <kowey@darcs.net>**20091101172727
>  Ignore-this: 8aa4d5060e12b14592c628bbb25d805e
> ] 
> [Fix import conflict between Florent and Ganesh's patches.
> Eric Kow <kowey@darcs.net>**20091101113443
>  Ignore-this: 416a18c2ba511eb8f09f97d29553507f
> ] 
> [Refactor Darcs.Commands.Apply
> Florent Becker <florent.becker@ens-lyon.org>**20091008150429
>  Ignore-this: a5640be910c748ddfb1abdcf139e8168
> ] 
> [Add an extra newline in help text stored in author prefs.
> Eric Kow <kowey@darcs.net>**20091031204617
>  Ignore-this: 129fcfa77b9674022bcfc3484c0884f9
>  This is for readability in the authors file.
> ] 
> [Refactor Darcs.Commands.AmendRecord
> Florent Becker <florent.becker@ens-lyon.org>**20091015123619
>  Ignore-this: ff49a1b62bf6f742baadc40135b725c9
> ] 
> [Refactor Darcs.Commands.Rollback
> Florent Becker <florent.becker@ens-lyon.org>**20091014135055
>  Ignore-this: b7bc2df749cd899b049df03ba6619d8c
> ] 
> [Remove useless import of Verbose in Darcs.Commands.Unrecord
> Florent Becker <florent.becker@ens-lyon.org>**20091014125045
>  Ignore-this: 103705111b7c889e7af01529fc36ddde
> ] 
> [Partially rewrite "darcs record" help.
> Trent W. Buck <trentbuck@gmail.com>**20091011072907
>  Ignore-this: 24faa598373a1e635068748d420202cf
> ] 
> [Rewrite $DARCS_EMAIL documentation.
> Trent W. Buck <trentbuck@gmail.com>**20090920131402
>  Ignore-this: 1effc6cdcaed085edb4100b1a61bb712
> ] 
> [Canonize Kari Hoijarvi, Matthias Fischmann, Thomas Hartman.
> Eric Kow <kowey@darcs.net>**20091010221440
>  Ignore-this: f175872b795f3860f276ae5174636d2d
>  Also update Benedikt Schmidt and Marco T??lio Gontijo e Silva.
> ] 
> [Typo: s/legal time/legal people/.
> Trent W. Buck <trentbuck@gmail.com>**20091031112323
>  Ignore-this: 7bda0f632143dd3fd16a17a8530f8392
> ] 
> [Generalize, tidy up and expand license exceptions file.
> Eric Kow <kowey@darcs.net>**20091010220606
>  Ignore-this: 70c49d2f2a13e91eb90e5c940c4979ca
> ] 
> [rename a local variable that doesn't have to be a list
> Ganesh Sittampalam <ganesh@earth.li>**20091031105902
>  Ignore-this: 67c627ced353c0218cb0a003c74c975b
> ] 
> [Resolve issue1554: allow opt-out of -threaded (fix ARM builds).
> Trent W. Buck <trentbuck@gmail.com>**20091031083717
>  Ignore-this: 19823ea41b53b5b6ef2a3b5c19de7516
>  GHC doesn't support -threaded on some architectures.
>  This patch allows -f-threaded, so Darcs will compile again.
> ] 
> [Cabal flag for static binary (-fstatic)
> Eric Kow <kowey@darcs.net>**20091030094621
>  Ignore-this: e1c90c4ee7095c6b123f6b795f7ad9b1
> ] 
> [add some haddock and rename a variable
> Ganesh Sittampalam <ganesh@earth.li>**20091029214323
>  Ignore-this: d2f569cc8c417f5f0c1fb01509d002a2
> ] 
> [Resolve issue1588: add --skip-conflicts option
> Ganesh Sittampalam <ganesh@earth.li>**20091026181917
>  Ignore-this: 37b99f7461efe229cf5c601e197a5ca7
>  
>  This option is for both pull and apply, and causes any patches that would
>  cause conflicts to be skipped, either in interactive selection or by --all.
>  
> ] 
> [Simplify donations page and make look more like other pages.
> Eric Kow <kowey@darcs.net>**20091024173828
>  Ignore-this: ad605ae27916b23578dfc086fcaa588
> ] 
> [Resolve issue1563: official thank-you page.
> Eric Kow <kowey@darcs.net>**20091024173132
>  Ignore-this: 8783f87868458c5562c1e94f8bc48cbf
> ] 
> [Simplify OT convergence test.
> Eric Kow <kowey@darcs.net>**20091021095247
>  Ignore-this: 2a118a47311ebb277f8b0571b056abd7
> ] 
> [Accept issue1645: w -l should ignore symlinks.
> Trent W. Buck <trentbuck@gmail.com>**20091011053838
>  Ignore-this: ffaacd9f9ee93303b837a0f472636dfc
> ] 
> [A vastly more efficient implementation of LookForAdds.
> Petr Rockai <me@mornfall.net>**20091025143536
>  Ignore-this: ac7fe48eca1a546d268c001a1ee54e0e
> ] 
> [Bump the hashed-storage dependency to >= 0.4.1.
> Petr Rockai <me@mornfall.net>**20091025143507
>  Ignore-this: f864fe06f2141e09f82b7fc6374f0e32
> ] 
> [Obliterate replacePristineFromSlurpy (prefer replacePristine).
> Petr Rockai <me@mornfall.net>**20091024144221
>  Ignore-this: 935d29ae5a60294dcef49322b903c0b0
> ] 
> [Fix a number of unused import warnings.
> Petr Rockai <me@mornfall.net>**20091024144157
>  Ignore-this: c0f4e2ea044b28a5ac642188fc6b8fe5
> ] 
> [Leverage replacePristine in optimize --pristine implementation.
> Petr Rockai <me@mornfall.net>**20091024131945
>  Ignore-this: 5d1d17e9b4807074e33feb2128a490c9
> ] 
> [Fix replacePristine implementation on hashed repositories.
> Petr Rockai <me@mornfall.net>**20091024131825
>  Ignore-this: fcadf113b54397d9b8a19b395aa7fb75
> ] 
> [Update links to wiki in README.
> Eric Kow <kowey@darcs.net>**20091020073349
>  Ignore-this: d84716f510368214e04049930ffed27f
> ] 
> [Resolve issue1652: suggest cabal update before cabal install.
> Eric Kow <kowey@darcs.net>**20091020073105
>  Ignore-this: de39107c4c324ee83d1a63d950e83a1c
> ] 
> [Convert contextual patch printing from Slurpy to TreeIO.
> Petr Rockai <me@mornfall.net>**20091019223402
>  Ignore-this: 41151f22e5c2183a63ec7907d8678755
>  
>  This obliterates another major source of SlurpDirectory usage in darcs. I agree
>  the code has become a little more hairy, although this should be addressable by
>  a slight refactor of virtualTreeIO and friends in hashed-storage (there's
>  currently no reasonable way to create a sub-monad in TreeIO).
> ] 
> [Port list_* in Darcs.Arguments to Tree (away from Slurpy).
> Petr Rockai <me@mornfall.net>**20091013104523
>  Ignore-this: 435b566db26fb05d701f6af2db7683d4
> ] 
> [Move a couple of low-level pending bits to (new) Repository.LowLevel.
> Petr Rockai <me@mornfall.net>**20091013102853
>  Ignore-this: c551781b8a5ff4039d5fbe01ccb79e1c
> ] 
> [Use Commands.putInfo in Get
> Florent Becker <florent.becker@ens-lyon.org>**20091006163121
>  Ignore-this: 963b2f5a4eae94ecf541e083fe1e3b17
> ] 
> [remove Darcs.Commands.Loggers
> Florent Becker <florent.becker@ens-lyon.org>**20091008143843
>  Ignore-this: a842d151779adff2fa3dc62cb3dbd5ee
> ] 
> [Use Commands.put* in Darcs.Commands.Put
> Florent Becker <florent.becker@ens-lyon.org>**20091002114915
>  Ignore-this: 6315abca3c4187def549e3ddc3b3880
> ] 
> [Use Commands.put* in Send
> Florent Becker <florent.becker@ens-lyon.org>**20090930125215
>  Ignore-this: eac3d780d4260cff4be6fdc8ee8cb7a2
> ] 
> [Use Commands.putInfo in Push
> Florent Becker <florent.becker@ens-lyon.org>**20091005141358
>  Ignore-this: 4d7c87c69e6601d99ecc49d1d67512cf
> ] 
> [Use Commands.putInfo in Check
> Florent Becker <florent.becker@ens-lyon.org>**20091008141830
>  Ignore-this: ac856fb051e1ac4919aaf555a1c63728
> ] 
> [use Commands.put* in Convert
> Florent Becker <florent.becker@ens-lyon.org>**20090929143942
>  Ignore-this: b442184cc2c6da67e3eeae52832cfc52
> ] 
> [Use Darcs.Commands.putVerbose in Apply
> Florent Becker <florent.becker@ens-lyon.org>**20091008140754
>  Ignore-this: ca622866f4e7bf122e5c6b0e6f077ba0
> ] 
> [Use new Darcs.Commands.Put* in Add
> Florent Becker <florent.becker@ens-lyon.org>**20091008135409
>  Ignore-this: 22116c4cea0c5601bb5c4fa53dbdc6ac
> ] 
> [typo in Hopefully.lhs
> Florent Becker <florent.becker@ens-lyon.org>**20090922143044
>  Ignore-this: 935b1906e53d2fa700f4d3f17ed62aca
> ] 
> [Haddock documentation for Darcs.Patch.Core.Named
> Florent Becker <florent.becker@ens-lyon.org>**20090918122203
>  Ignore-this: 735d685fb7072a38302e987dbec85fea
> ] 
> [add utility functions to Commands.lhs
> Florent Becker <florent.becker@ens-lyon.org>**20090928130619
>  Ignore-this: 856f9f8edb2e4aae13248e16bbd0e51c
> ] 
> [fix warnings
> Ganesh Sittampalam <ganesh@earth.li>**20091008223215
>  Ignore-this: 4d23b80ae383bae9a80a14ec075f23f0
> ] 
> [Fix bug in show_contents.sh test.
> Eric Kow <kowey@darcs.net>**20091008121259
>  Ignore-this: b69c8ff84bbe05e9a1c61746fd2af020
>  It was in the wrong directory and was only passing due to being run within
>  the Darcs darcs repository.
> ] 
> [Remove redundant import of (</>).
> Eric Kow <kowey@darcs.net>**20091007151050
>  Ignore-this: 8113ba9f56ebcd1d7a5adc1f636fa027
>  This also avoids a build error on Windows.
> ] 
> [Resolve conflicts in Commands.Remove.
> Petr Rockai <me@mornfall.net>**20091005112459
>  Ignore-this: fee90e3bf4c0a80f86ec1cd6b16c0a42
> ] 
> [Resolve conflicts in Commands.Apply.
> Petr Rockai <me@mornfall.net>**20091005112443
>  Ignore-this: 29b9db630ddfd3cc0117e0786cc275ea
> ] 
> [Resolve conflicts in Commands.AmendRecord.
> Petr Rockai <me@mornfall.net>**20091005112410
>  Ignore-this: ee62b9758a009602b6807c97cfc9cf29
> ] 
> [Resolve conflicts in darcs.cabal.
> Petr Rockai <me@mornfall.net>**20091005112358
>  Ignore-this: 1f4bf94965e19e3568c428360d0b47cb
> ] 
> [Replace uses of readDarcsPristine with readRecorded.
> Petr Rockai <me@mornfall.net>**20091004174913
>  Ignore-this: ccedb958fb3bbcc95a512252cecda35c
> ] 
> [Use --ignore-times with check to skip index check.
> Petr Rockai <me@mornfall.net>**20091004171627
>  Ignore-this: 149cbbe1e93d3802ce29cbb9d0820b4f
> ] 
> [Make readRecorded independent of hashed-storage's readDarcsPristine.
> Petr Rockai <me@mornfall.net>**20091004171514
>  Ignore-this: c4e04b46ac32d00c4f4ba73f1c0abba9
> ] 
> [Add a bunch of haddocks to Repository.State.
> Petr Rockai <me@mornfall.net>**20091001134622
>  Ignore-this: c8def50a9919a03f579f0e8165b7d5a9
> ] 
> [Resolve conflict between optimize --upgrade and optimize --pristine.
> Petr Rockai <me@mornfall.net>**20091001085946
>  Ignore-this: f0717730f16d4079da42d23d01d209d6
> ] 
> [Resolve conflict in darcs.cabal (hashed-storage dependency).
> Petr Rockai <me@mornfall.net>**20091001085931
>  Ignore-this: 6b89341c8d8a61b8dd9434a18591c69e
> ] 
> [Add a missing copyright notice to Darcs.Diff.
> Petr Rockai <me@mornfall.net>**20090927154727
>  Ignore-this: 47c82bc3bc5d219b75f0da56e5d457bc
> ] 
> [allow State.hs to compile with type witnesses
> Jason Dagit <dagit@codersbase.com>**20090925094029
>  Ignore-this: e9bbca73fc7a00ae8794af0790257f28
> ] 
> [Clarify that empty path list means everything, restrictSubpaths.
> Petr Rockai <me@mornfall.net>**20090923165532
>  Ignore-this: efcd3d88bb1af54d1f6272994574bc57
> ] 
> [Don't forget to limit pending to relevant paths, in unrecordedChanges.
> Petr Rockai <me@mornfall.net>**20090923165358
>  Ignore-this: 2ed0d1d4e14d63dbc16f9c0a77bcffcb
> ] 
> [Add Darcs.Diff and Darcs.Repository.State created in the Gorsvet refactor.
> Petr Rockai <me@mornfall.net>**20090913180405
>  Ignore-this: c6f25a91f62cae0560d9be4820e03c53
> ] 
> [Remove the remnants of Gorsvet.
> Petr Rockai <me@mornfall.net>**20090912201333
>  Ignore-this: a4725818943b1ef2d9084904a391da38
> ] 
> [Explode Gorsvet into a number of more appropriate places.
> Petr Rockai <me@mornfall.net>**20090912193130
>  Ignore-this: 688515e833df250a8970f2ea3d182ae3
> ] 
> [Move the FooDirectory instances from Gorsvet to Darcs.IO.
> Petr Rockai <me@mornfall.net>**20090912174204
>  Ignore-this: b2b488cffe725def2f29b22cd68d83d7
> ] 
> [Reformat the export list of Darcs.Repository.
> Petr Rockai <me@mornfall.net>**20090912172909
>  Ignore-this: 5d6c450934ace601173d22c50f80ac99
> ] 
> [Resolve issue1488: darcs-hs does not suffer from this.
> Petr Rockai <me@mornfall.net>**20090912152215
>  Ignore-this: 324d86a77cb45413d0d4c7b1159c62e1
> ] 
> [Unreadable pristine ought not be fatal for repair.
> Petr Rockai <me@mornfall.net>**20090912151816
>  Ignore-this: 1c4d057e70d981bcf5711b8d1518117e
> ] 
> [Remove code for repair-from-checkpoint.
> Petr Rockai <me@mornfall.net>**20090912150147
>  Ignore-this: 91fbb56fd69b801fa06eaa364e24afcb
> ] 
> [Update to latest hashed-storage API: updateIndex is global now.
> Petr Rockai <me@mornfall.net>**20090912145934
>  Ignore-this: edcc0e4a74360bfc987fc2abe3249316
> ] 
> [Resolve conflict with haskell_policy -> hlint.
> Petr Rockai <me@mornfall.net>**20090912145900
>  Ignore-this: 2c2e56fbc4bed294380b13fe7cc1cf96
> ] 
> [We no longer use pristine timestamps in any way.
> Petr Rockai <me@mornfall.net>**20090912141442
>  Ignore-this: b2254899a231f7f151e5b2ab0e74a233
> ] 
> [Detect and fix bad index in darcs repair.
> Petr Rockai <me@mornfall.net>**20090912101630
>  Ignore-this: 9e544484042571d40c5fbe7824ebeea8
> ] 
> [Drop unused import.
> Petr Rockai <me@mornfall.net>**20090907180209
>  Ignore-this: ccd6913a37b63c0b6599eef7c4f66619
> ] 
> [Fix up for hashed-storage API shuffling.
> Petr Rockai <me@mornfall.net>**20090907180144
>  Ignore-this: b79d289dea1ea663df0e665bba03eb9f
> ] 
> [Resolve conflict (duplicate, even) with Trent.
> Petr Rockai <me@mornfall.net>**20090830102736
>  Ignore-this: 2149335dcfe81efea240f3818788cbd
> ] 
> [Resolve conflict with Eric's cleanup.
> Petr Rockai <me@mornfall.net>**20090830102136
>  Ignore-this: 4608cf2a1d7c8265193b796ee1d9d248
> ] 
> [Remove extraneous invalidateIndex from revert.
> Petr Rockai <me@mornfall.net>**20090811135655
>  Ignore-this: 4ea939685337e19946d587dc6d861614
> ] 
> [Add a --pristine option to optimize.
> Petr Rockai <me@mornfall.net>**20090811105119
>  Ignore-this: aadae51b824aff9ea651e6312f0cff69
> ] 
> [Make darcs optimize rearrange pristine.hashed when needed.
> Petr Rockai <me@mornfall.net>**20090810220600
>  Ignore-this: 4aeb09ca34c6189466a87ce3443a1c42
>  
>  This is triggered when the pristine.hashed format uses the size-prefixed hash
>  format -- like 0000000064-<hash>. The optimize writes out a size-less pristine
>  tree that moreover uses stable (sorted by name) directory listing format, and
>  therefore stable directory hashes. This layout gives optimal performance with
>  HSI4-format index.
> ] 
> [Fix compilation after minor hashed-storage API rename.
> Petr Rockai <me@mornfall.net>**20090808205346
>  Ignore-this: 9363a94075aeb18c32f64791d5f4da9b
> ] 
> [Use withDirectory to implement mInCurrentDirectory.
> Petr Rockai <me@mornfall.net>**20090807185527
>  Ignore-this: 1013edaf34a06af97b639ed974295780
> ] 
> [Implement index checking functionality in darcs check.
> Petr Rockai <me@mornfall.net>**20090807153017
>  Ignore-this: a0b7d0bca968a488da13e1473e892cb4
> ] 
> [Adapt to the new safety-improved readIndex API.
> Petr Rockai <me@mornfall.net>**20090807101840
>  Ignore-this: 7117a8586ac358755708c8ff42735d2
> ] 
> [Add a testcase of diffing various trailing/missing newline combinations.
> Petr Rockai <me@mornfall.net>**20090806141308
>  Ignore-this: 711a9bdf323d26a3550e650510425720
> ] 
> [Clean up unused bits and imports in Repository.Checkpoint.
> Petr Rockai <me@mornfall.net>**20090806065904
>  Ignore-this: dacae1922b73496df181b98f5a3d2848
> ] 
> [Remove now-unused Darcs.Diff module.
> Petr Rockai <me@mornfall.net>**20090806065216
>  Ignore-this: 94497dfcf962f405c004bc32c14ad311
> ] 
> [Use treeDiff in external_merge instead of unsafeDiff.
> Petr Rockai <me@mornfall.net>**20090806065209
>  Ignore-this: 959f7c712d70abbd2337b0c35f300f38
> ] 
> [Remove unused syncPristine from Repository.Pristine.
> Petr Rockai <me@mornfall.net>**20090806065139
>  Ignore-this: 7d9c88c4624889ddded767fb5fbedabd
> ] 
> [Take a Tree instead of Slurpy in external_resolution.
> Petr Rockai <me@mornfall.net>**20090806064627
>  Ignore-this: d6dc217d813f87b615141590e142db40
> ] 
> [Preliminary version of the replace command with s/unsafeDiff/treeDiff/.
> Petr Rockai <me@mornfall.net>**20090805194544
>  Ignore-this: ca952f6f1e994e49254ec622aefb088d
> ] 
> [Port to new readIndex interface in hashed-storage 0.4.
> Petr Rockai <me@mornfall.net>**20090805183526
>  Ignore-this: a3f79f9e4aa80e8e532ab8674453d6cd
> ] 
> [Haddock invalidateIndex.
> Petr Rockai <me@mornfall.net>**20090805183512
>  Ignore-this: 442fe0c54fe043f73a8ca378b49605e9
> ] 
> [Port to generalised Tree types (mostly just signature wibbling).
> Petr Rockai <me@mornfall.net>**20090803084656
>  Ignore-this: c29c995e98c3ea6d76b74a01de1e21b5
> ] 
> [Get rid of wait_a_moment, since we do not use pristine timestamps anymore.
> Petr Rockai <me@mornfall.net>**20090802122812
>  Ignore-this: edc0a7b42793e31ededc4d63a9ec5496
> ] 
> [Port to hashed-storage 0.4 Hash changes.
> Petr Rockai <me@mornfall.net>**20090727105435
>  Ignore-this: 19a8b50253ba13056c7a4f535b1f6c50
> ] 
> [Obliterate timestamp manipulation in HashedIO.
> Petr Rockai <me@mornfall.net>**20090720165836
>  Ignore-this: b98311e3ec5ca2d88d251ff2afe67b31
> ] 
> [Obliterate all instances of sync_repo and friends, since they are useless now.
> Petr Rockai <me@mornfall.net>**20090720165700
>  Ignore-this: 9225b11cb51cd0a35a3db1df25548304
> ] 
> [Re-implement make_remove_patch in remove command, replacing Slurps with Trees.
> Petr Rockai <me@mornfall.net>**20090720164717
>  Ignore-this: fe98fa6720e6d129de3e6f364fc7ba91
> ] 
> [Avoid removing in-use files on win32.
> Petr Rockai <me@mornfall.net>**20090720105654
>  Ignore-this: 4951404baa3b6226f53629f97a1b7dc4
> ] 
> [Remove now-unused checkPristineAgainstSlurpy.
> Petr Rockai <me@mornfall.net>**20090720093843
>  Ignore-this: b41cc7ee14e954f7d4711df66f6f5537
> ] 
> [Port the replay (check/repair) functionality to hashed-storage.
> Petr Rockai <me@mornfall.net>**20090720072018
>  Ignore-this: a1e2c32ac633e72a8b20e830232cef5
>  
>  This removes a few unsafeDiff users. It also simplifies the replay code by not
>  threading the Slurpy all over the place (instead placing applyAndFix in the
>  TreeIO monad). There is a slight risk of regressions (and a moderate risk of
>  space leaks).
> ] 
> [Optimize darcs show contents --match (avoid slurping pristine).
> Petr Rockai <me@mornfall.net>**20090716083218
>  Ignore-this: c611f7eff91b80fe2bdf598b68bea454
> ] 
> [Proper implementation for mDoesFileExist/mDoesDirectoryExist in Gorsvet.
> Petr Rockai <me@mornfall.net>**20090716082525
>  Ignore-this: 90dc8dbab055b3a78e05ff26e1605f6f
> ] 
> [Provide readPending that also provides the "pending conflicts" check natively.
> Petr Rockai <me@mornfall.net>**20090716082347
>  Ignore-this: a7d148120c8be0844d05ba9a983bc6a7
> ] 
> [Resolve conflict.
> Petr Rockai <me@mornfall.net>**20090710141253
>  Ignore-this: 3a7c406f2f5460925b938f7ee5d6780e
> ] 
> [Clean up unused imports in WhatsNew.
> Petr Rockai <me@mornfall.net>**20090628203201
>  Ignore-this: 13a58bf3241a684b1484aac1859848b0
> ] 
> [Remove unused import from Gorsvet.
> Petr Rockai <me@mornfall.net>**20090622113432
>  Ignore-this: 224d5e137d60f17031d61f7537c6ba16
> ] 
> [Invalidate the index in add_to_pending, as it was getting rebuilt too soon.
> Petr Rockai <me@mornfall.net>**20090622113239
>  Ignore-this: 103f6b53d3bdc663b60cfa5d7e15d6af
> ] 
> [Clean up unused bits from Repository.Internal.
> Petr Rockai <me@mornfall.net>**20090621143025
>  Ignore-this: 5686ee1be7112b52217ab50a1c37d310
> ] 
> [Move add_to_pending to Repository, use unrecordedChanges.
> Petr Rockai <me@mornfall.net>**20090621142531
>  Ignore-this: b35e0e7848c766dfc37cf570f254c48a
> ] 
> [Move tentativelyMergePatches and friends to a new module, Repository.Merge.
> Petr Rockai <me@mornfall.net>**20090621141923
>  Ignore-this: 6348929868d146f5877e5e6529754521
>  
>  This allows tentativelyMergePatches to use unrecordedChanges from Gorsvet
>  without forming import cycles.
> ] 
> [Unexport get_unrecorded* from Repository, remove unused functions from Internal.
> Petr Rockai <me@mornfall.net>**20090621134230
>  Ignore-this: 51384d4c19da07ea40cab0837effded8
> ] 
> [Use index-based diffing in "darcs wh -l".
> Petr Rockai <me@mornfall.net>**20090621134141
>  Ignore-this: 2c8442430fdae83bcdff14f2af3db2a0
> ] 
> [Also use index-based diffing in unrecord/obliterate.
> Petr Rockai <me@mornfall.net>**20090621133956
>  Ignore-this: 92a5a543663f0be15bb7f6f29980fa
> ] 
> [Make revert use index-based diffing.
> Petr Rockai <me@mornfall.net>**20090621133923
>  Ignore-this: 58455b357380c3c2759d49edd119a16d
> ] 
> [Use index-based diffing in unrevert.
> Petr Rockai <me@mornfall.net>**20090621133900
>  Ignore-this: 4624459642538a8c01a8eff93a865be6
> ] 
> [Flip AmendRecord to index-based diffing, too.
> Petr Rockai <me@mornfall.net>**20090621133832
>  Ignore-this: 7c64b91e9a2894433c3f8b78097949b8
> ] 
> [Use index-based diffing in Remove.
> Petr Rockai <me@mornfall.net>**20090621133755
>  Ignore-this: 39f154578a0ed352557157718f683785
> ] 
> [Flip "darcs mark-conflicts" over to index-based diffing.
> Petr Rockai <me@mornfall.net>**20090621133730
>  Ignore-this: d92ff953fb0b6a817065a7209ee08aa3
> ] 
> [Flip "darcs changes" to index-based diffing.
> Petr Rockai <me@mornfall.net>**20090620201922
>  Ignore-this: 56b93cec4eb2ade271687d8bb969c16c
> ] 
> [Use index-based diffing in Record.
> Petr Rockai <me@mornfall.net>**20090611223612
>  Ignore-this: f4862b1ff2fe8e91ed088ac4f03c38b8
> ] 
> [Resolve issue1447: different online help for send/apply --cc
> mf-hcafe-15c311f0c@etc-network.de**20091007162240
>  Ignore-this: cab61431c861e4e346f34c00f4dd26bf
> ] 
> [Resolve issue1583: on darcs get, suggest upgrading source repo to hashed.
> Eric Kow <kowey@darcs.net>**20090923210811
>  Ignore-this: a4b801876ff76674a110f5c63388d68a
> ] 
> [added regression test for issue1632
> benjamin.franksen@bessy.de**20091002095359
>  Ignore-this: 4a0a48021f54d7a3f8def74b1c798652
> ] 
> [Marginalia regarding TeX documentation.
> Trent W. Buck <trentbuck@gmail.com>**20091003082621
>  Ignore-this: c204ce845db6b83b1d2ddf5dba2f1a31
> ] 
> [Avoid fugly "tests_network-.dir".
> Trent W. Buck <trentbuck@gmail.com>**20091002085528
>  Ignore-this: aa807dad285ad2b9e7a06b5fffa0b4ca
> ] 
> [Fix plurality in a docstring.
> Trent W. Buck <trentbuck@gmail.com>**20091002075501
>  Ignore-this: e6583c262335a0cb34a29aa1d3a01141
> ] 
> [Mention darcs changes --repo.
> Trent W. Buck <trentbuck@gmail.com>**20091002075336
>  Ignore-this: 4342a066405b3f900b4356ab17c50534
>  This handy bit of functionality should be more discoverable.
>  I only found it mentioned in passing in one of droundy's bug reports.
> ] 
> [Partially rewrite "darcs apply" help.
> Trent W. Buck <trentbuck@gmail.com>**20090920115824
>  Ignore-this: 92686c3bffc4beb6fad702967346b86a
> ] 
> [Partially rewrite "darcs annotate" help.
> Trent W. Buck <trentbuck@gmail.com>**20090920102314
>  Ignore-this: b6bc982424ac641c35085f0a0c6bb97f
> ] 
> [Also test for apply posthook in issue942.
> Eric Kow <kowey@darcs.net>**20090930221536
>  Ignore-this: b716d577e2f9423e03dc30d9954c6320
> ] 
> [Camel-case functions exported by Darcs.Patch.Choices.
> Eric Kow <kowey@darcs.net>**20090921092446
>  Ignore-this: de5863ac95deabfe8bdcf35de07e0c6c
> ] 
> [resolve issue1620: amend lies about living logfile
> Kamil Dworakowski <kamil@dworakowski.name>**20090924212910
>  Ignore-this: 57028d63cd6fd3bc290cf923ccc266e3
>  
>  Remove "atexit remove" from world_readable_temp. Instead make sure that
>  callers of the world_readable_temp cleanup after themselves. Only
>  AmendRecord and Tag were not doing it already.
>  
> ] 
> [camelCase clarify_errors
> Kamil Dworakowski <kamil@dworakowski.name>**20090924204827
>  Ignore-this: b54b8fa73ddb1ceb85bfb1a024eae7f4
> ] 
> [Resolve issue 1618: preserve log on amend failure
> Kamil Dworakowski <kamil@dworakowski.name>**20090924204334
>  Ignore-this: 69f14addad73eb63489220bb11dfb016
>  
>  Print a msg to the user saying where the log was saved, in case of failure.
>  
> ] 
> [remove trailing whitespace
> Kamil Dworakowski <kamil@dworakowski.name>**20090924185145
>  Ignore-this: 6c1aeed210b96588f6730a174bda8048
> ] 
> [accept issue1618: amend should preserve the logfile
> Kamil Dworakowski <kamil@dworakowski.name>**20090918232544
>  Ignore-this: 89958db98efeeff7f59c7df847052578
>  
>  When Susan amends a patch with --edit-long-comment, she would not like to
>  lose her editorial work in case of a test failure on committing.
>  
> ] 
> [accept issue1620: record lies about leaving the logfile
> Kamil Dworakowski <kamil@dworakowski.name>**20090918231008
>  Ignore-this: 9ab7503f13d5480e9d767844310a544b
>  
>  In case of failure, record says it left the logfile in
>  such and such a file. The file does not exist though.
> ] 
> [fix witnesses in Darcs.Commands.Remove
> Ganesh Sittampalam <ganesh@earth.li>**20090928214205
>  Ignore-this: 1b8158653d00224e5972fa19458c40c8
> ] 
> [Option comments to the top in Split.hs for GHC 6.8.3
> Thorkil Naur <naur@post11.tele.dk>**20090928201345] 
> [add newly-witnessed modules to witnesses.hs
> Ganesh Sittampalam <ganesh@earth.li>**20090909200711
>  Ignore-this: 5f6c6ec561586c01956c3a7ff228ab3d
> ] 
> [need RankNTypes for some of the newly witnessed modules
> Ganesh Sittampalam <ganesh@earth.li>**20090909200643
>  Ignore-this: d9bd0724f91b6a435d75ca8d93ac24fd
> ] 
> [add witnesses to Darcs.Commands.Send
> Ganesh Sittampalam <ganesh@earth.li>**20090909200151
>  Ignore-this: ab87388a6d4469998568784aa36087d8
> ] 
> [add witnesses to Darcs.Commands.Push
> Ganesh Sittampalam <ganesh@earth.li>**20090909195258
>  Ignore-this: c0ce49e56d76fc29fb17a9476d95bac5
> ] 
> [add witnesses to Darcs.Commands.Apply
> Ganesh Sittampalam <ganesh@earth.li>**20090909194800
>  Ignore-this: d7975514d3aea9b53a0b9248c2a50b06
> ] 
> [add witnesses to Darcs.Commands.Pull
> Ganesh Sittampalam <ganesh@earth.li>**20090909194407
>  Ignore-this: 51eb38f21152e1d3d348bff37aea0ddd
> ] 
> [add witnesses to Darcs.Commands.TrackDown
> Ganesh Sittampalam <ganesh@earth.li>**20090909193441
>  Ignore-this: 8081b7aa9856ca109b9ef41a5b24725e
> ] 
> [add witnesses to Darcs.Commands.Remove
> Ganesh Sittampalam <ganesh@earth.li>**20090909193405
>  Ignore-this: b2b55b15428a0d174338ab5ad13d8f9b
> ] 
> [add witnesses to Darcs.Commands.Diff
> Ganesh Sittampalam <ganesh@earth.li>**20090909193013
>  Ignore-this: 5fb4fb83967232f11dde5c62c919a531
> ] 
> [improve documentation of Darcs.Patch.Split
> Ganesh Sittampalam <ganesh@earth.li>**20090927211902
>  Ignore-this: ae40fc26efb2e8b997ccf45eb36ec832
> ] 
> [clean up types in win32/System/Posix.hs
> David Roundy <droundy@darcs.net>**20090329223958
>  Ignore-this: 80fb3dcbc0bb296d7b7337905bcf12564f8e79f4
> ] 
> [Resolve issue291: add (basic) interactive patch splitting
> Ganesh Sittampalam <ganesh@earth.li>**20090919004053
>  Ignore-this: 47b8c8da80f5ca5c3f86e2f11ec2192d
> ] 
> [Rolling back broken patch
> Ganesh Sittampalam <ganesh@earth.li>**20090923210406
>  Ignore-this: 6a302cea606fa656a87140b5e2122317
>  
>  It needs type witnesses to be added to Darcs.Diff, but that patch
>  hasn't been merged yet and probably won't be due to a conflict with
>  darcs-hs
>  
>  rolling back:
>  
>  Mon Aug 31 00:46:47 BST 2009  Ganesh Sittampalam <ganesh@earth.li>
>    * add some QC properties that demonstrate the problem with canonizeFL
>  
>      M ./src/Darcs/Test/Patch/QuickCheck.hs -4 +61
> ] 
> [Fix breakage in manual introduced by darcs optimize --upgrade.
> Eric Kow <kowey@darcs.net>**20090923210341
>  Ignore-this: f01f12460b26b0333da4650e6d1e485
> ] 
> [This patch is broken.
> Ganesh Sittampalam <ganesh@earth.li>**20090923205150
>  Ignore-this: 46db0aba7910c02b3317f20fe86a2fb1
>  
>  It needs type witnesses to be added to Darcs.Diff, but that patch
>  hasn't been merged yet and probably won't be due to a conflict with
>  darcs-hs
>  
>  rolling back:
>  
>  Mon Aug 31 00:46:47 BST 2009  Ganesh Sittampalam <ganesh@earth.li>
>    * add some QC properties that demonstrate the problem with canonizeFL
>  
>      M ./src/Darcs/Test/Patch/QuickCheck.hs -4 +61
> ] 
> [Resolve issue1584: Provide optimize --upgrade command.
> Eric Kow <kowey@darcs.net>**20090922201149
>  Ignore-this: e72ddff8c879de637e6a7dcb824624d6
>  This can be used for an inplace upgrade to the latest hashed format.
>  Right now it only handles old-fashioned => hashed, but there may be
>  future format changes for which this can be reused.
> ] 
> [Test for issue1584, the optimize --upgrade feature.
> Eric Kow <kowey@darcs.net>**20090902060031
>  Ignore-this: 5c3032156f75f224f08fa19e5311a0d3
> ] 
> [add some QC properties that demonstrate the problem with canonizeFL
> Ganesh Sittampalam <ganesh@earth.li>**20090830234647
>  Ignore-this: 478c798414f37433b715d87ccb4e51d2
> ] 
> [Simplify and camel-case setSimplys.
> Eric Kow <kowey@darcs.net>**20090921075951
>  Ignore-this: 296a4bbebbb5788a8049be8ed591deec
> ] 
> [Move make_everything_later type signature next to implementation.
> Eric Kow <kowey@darcs.net>**20090921090952
>  Ignore-this: 16f11d9fcc22370927c643fdec53ab0f
> ] 
> [Simplify EXAMPLE.sh.
> Eric Kow <kowey@darcs.net>**20090825152531
>  Ignore-this: c6e4bbb3b241b2fb0af10ae9e519fa3e
>  
>  1. Don't clean up.  When you're working on just one test, it's easier
>     to figure out if the test is correct if you have access to the
>     repository.  Pre-flight cleanup by all test scripts is now essential.
>  
>  2. Don't rely on --repo except for init (where it saves some boilerplate)
>     a) Makes test scripts more natural and straightforward to write.
>     b) Reduces the number of variables that we are testing, ie.
>        ensuring that --repo path handling is working correctly at all times.
> ] 
> [Haddock some of Darcs.Patch.Choices.
> Eric Kow <kowey@darcs.net>**20090919200319
>  Ignore-this: 1f8bb5b1bd0af5428db5229aa889518a
> ] 
> [Move some core-specific modules into Darcs.Patch in cabal file.
> Eric Kow <kowey@darcs.net>**20090812145908
>  Ignore-this: 553684a52f09658f9772e959932b58e9
> ] 
> [Move OldDate module to Darcs.Patch.OldDate.
> Eric Kow <kowey@darcs.net>**20090812145810
>  Ignore-this: 6caaa480c4f69809c82d681de505f59e
> ] 
> [Move RegChars module to Darcs.Patch.RegChars.
> Eric Kow <kowey@darcs.net>**20090812122940
>  Ignore-this: a919cf75cfe1cabf39637283973b3cc
>  We should discourage changes to this module as it affects how token-replace
>  patches are interpreted.
> ] 
> [Camel-case fileExists exported by Darcs.Commands.Record.
> Eric Kow <kowey@darcs.net>**20090917080506
>  Ignore-this: 4fb232312e43564d8eac905ae28e0c8c
> ] 
> [Camel-case getLog and getDate exported by Darcs.Commands.Record.
> Eric Kow <kowey@darcs.net>**20090917080436
>  Ignore-this: 1d712c44fadaf6389f99de033a14e910
> ] 
> [Remove old LWN quote from homepage.
> Eric Kow <kowey@darcs.net>**20090826132645
>  Ignore-this: 3a50f376884439e1af24729743eae4a5
> ] 
> [Rewrite "darcs show repo" help.
> Trent W. Buck <trentbuck@gmail.com>**20090920071721
>  Ignore-this: f3d548bde2ccb324259f0e2ddb471856
> ] 
> [Remove an obsolete remark from TeX.
> Trent W. Buck <trentbuck@gmail.com>**20090920063813
>  Ignore-this: 3d0f49f2648411fad57935c31cc83097
> ] 
> [Remove duplicated documentation.
> Trent W. Buck <trentbuck@gmail.com>**20090914033822
>  Ignore-this: c53923d7aa40d455076571e2c7a390fb
> ] 
> [Fix "make website".
> Trent W. Buck <trentbuck@gmail.com>**20090920061654
>  Ignore-this: fed73b55c61c0c558440d254152c5407
>  Updates to command_help docstrings weren't triggering a rebuild of the
>  user manual (which includes them).
> ] 
> [Update website to link to 2.3.1 tarball
> Reinier Lamers <tux_rocker@reinier.de>**20090920185811
>  Ignore-this: 66fe324d61e0201c02c8b5b6db03d1a9
> ] 
> [add canonization function for FL Prim
> Ganesh Sittampalam <ganesh@earth.li>**20090919004011
>  Ignore-this: 981d7f6a10c7800cabbe96a046a3b76e
> ] 
> [add substitution mechanism for PatchChoices
> Ganesh Sittampalam <ganesh@earth.li>**20090803055723
>  Ignore-this: ad61b387b18796c770e70a5b4673269a
> ] 
> [camelCase recently added functions
> Ganesh Sittampalam <ganesh@earth.li>**20090919105112
>  Ignore-this: b2eeda02acabdcaed819c19f18bbddc3
> ] 
> [Add utility code for editing text
> Ganesh Sittampalam <ganesh@earth.li>**20090728174051
>  Ignore-this: c29b0eed3a5f88aded98a572291b3c5f
> ] 
> [break out and export run_editor utility function
> Ganesh Sittampalam <ganesh@earth.li>**20090728173756
>  Ignore-this: 27f7117cf6e431dc7c8bf2aee6bfcd03
> ] 
> [add "parallel pairs"
> Ganesh Sittampalam <ganesh@earth.li>**20090727175847] 
> [Include missing .tex files in the cabal source tarball.
> Petr Rockai <me@mornfall.net>**20090920154941
>  Ignore-this: f0cdd39148648f463f172af7385a8d85
> ] 
> [Distribute GNUmakefile in the cabal tarball (for manual building).
> Petr Rockai <me@mornfall.net>**20090920154512
>  Ignore-this: 3b5743d657574f25da80641ce0e437e3
> ] 
> [There's no longer a bugs/ directory, so remove from .cabal.
> Petr Rockai <me@mornfall.net>**20090919143854
>  Ignore-this: 4ad612ab6d23c2b65ae21e873157d0a5
> ] 
> [Remove the no-longer-existing darcs.cgi bits from cabal file.
> Petr Rockai <me@mornfall.net>**20090919143808
>  Ignore-this: 376ec57dfa6030b00b410876550a9bf4
> ] 
> [resolve issue1300: logfile deleted on unsucessful record
> Kamil Dworakowski <kamil@dworakowski.name>**20090917080320
>  Ignore-this: ead95914b26e0df6a79450a1d955abe3
>  
>  Don't honour --delete-logfile when the record fails for any reason, a test
>  failure for instance.
>  
>  I have changed the definition of get_log not to delete the logfile, but to
>  return it for deferred deletion. I capitalized on the fact that get_log
>  was already returning (Just temp_logfile) for deferred deletion.
>  
>  get_log is an exported name, used in AmendRecord, Tag and Rollback. Some
>  of them ignore the logfile to delete, though none of them accept
>  --delete-logfile flag, and thus they don't need to change, nor are they
>  affected in any way.
>  
>  Unintended side effect of the change: with --delete-logfile flag present, a
>  massage '"Logfile left in " ++ filepath' gets printed in case of the test
>  failure on record. This may actually be desirable so I did not bother to
>  change it.
>  
> ] 
> [modify issue1300 test to fail for the right reason
> Kamil Dworakowski <kamil@dworakowski.name>**20090915090307
>  Ignore-this: daae62898293f2871023f52d25a8eb4f
> ] 
> [Accept issue1610: bug in get_extra with darcs 1 semantics only.
> Eric Kow <kowey@darcs.net>**20090916203310
>  Ignore-this: 472377371656bce68cb9404db284fa71
>  I accidentally stumbled upon this trying to write the issue1609 test.
> ] 
> [Accept issue1609: Operational Transformations TP2 on conflict marking.
> Eric Kow <kowey@darcs.net>**20090916214446
>  Ignore-this: c1ac116a3371e8b7ed2813d4d3e78156
> ] 
> [relicense Darcs.Commands.GZCRCs as BSD3
> Ganesh Sittampalam <ganesh@earth.li>**20090915200307
>  Ignore-this: 687099f40110c6cea2773bc96b89300d
> ] 
> [change the type of gcau to reflect its behaviour
> Ganesh Sittampalam <ganesh@earth.li>**20090909193221
>  Ignore-this: 5c6b665759572262c0bae0b4b1da20f4
>  Previously it returned RL (RL ...) but the outer RL was always singleton.
>  Changing this to RL ... simplifies a lot of client code that was just assuming
>  this behaviour by doing things like taking the head.
> ] 
> [make type of checkUnrelatedRepos more general
> Ganesh Sittampalam <ganesh@earth.li>**20090908210652
>  Ignore-this: 8f2559da573ea899cef219e67dd5229a
>  There's no reason why two repos we are comparing for relatedness should have
>  the same ending context.
>  
> ] 
> [Fix a (somewhat bogus) unused-module warning in Ssh.
> Petr Rockai <me@mornfall.net>**20090916115545
>  Ignore-this: fbc1f9268080c7d8b4bcefee0d5827c6
> ] 
> [test that tentative leftover is cleared
> Kamil Dworakowski <kamil@dworakowski.name>**20090913221009
>  Ignore-this: 47ec5121156f4a0c7adc9d7f2f0e18d7
> ] 
> [extend issue1406 test
> Kamil Dworakowski <kamil@dworakowski.name>**20090913213152
>  Ignore-this: e720fa9858a5b1e8b767ba009d4d1d9
>  
>  extend with checkpoint modification checking
> ] 
> [regression test for amend-record with failed test
> Kamil Dworakowski <kamil@dworakowski.name>**20090913213000
>  Ignore-this: de5fd196a07fb831185b8d42439b80c
>  
>  This test is guarding against a defect I have almost introduced as part of
>  fixing issue 1406. As noticed by Petr, for old-fashioned repositories the
>  patches are written to files with names derived from the patch info that
>  does not change with commutation. If invontory is updated tentatively but
>  the actual patches not, than they can get out of sync and repository is
>  broken. This test is one example scenario.
>  
> ] 
> [Fix a typo L??szl?? reported months ago.
> Trent W. Buck <trentbuck@gmail.com>**20090913052903
>  Ignore-this: ad628a3885ae87357c6ead5c22604b55
> ] 
> [Improve performance of clean_hashed (by a factor of ~n/logn).
> Petr Rockai <me@mornfall.net>**20090811105205
>  Ignore-this: 99857732fd41d031eca4df44e47d23ee
>  
>  On the scale of 50k files + 50k garbage, clean_hashes was basically useless
>  (before: gave up waiting after 20 minutes, after: 35 seconds). (This happens
>  when running darcs optimize --pristine on a 50k-big repository.)
> ] 
> [Split tags/TAGS target.
> Eric Kow <kowey@darcs.net>**20090911204436
>  Ignore-this: 84eb9b006aaed82bfd94be59b001cbee
>  The previous combined target does not appear to generate tag files that
>  vim can recognise.
> ] 
> [Test for issue1224
> Thorkil Naur <naur@post11.tele.dk>**20090911170850
>  Attempting to "darcs convert" a repository which is already in darcs2 format
>  leads to a converted repository with missing file contents. This patch
>  provides a test that reproduces this behaviour.
> ] 
> [Accept issue1300: --delete-file should only delete if test succeeds.
> Eric Kow <kowey@darcs.net>**20090907112620
>  Ignore-this: 5a62e769b72808c9827675b2de2e6dae
> ] 
> [Accept issue1332: darcs add -r seems to ignore --boring.
> Eric Kow <kowey@darcs.net>**20090907110432
>  Ignore-this: e154f5d8fb9e196a87c499c94cb33309
> ] 
> [Test for issue942.
> Eric Kow <kowey@darcs.net>**20090907105201
>  Ignore-this: 2fa9be77fc31cc4958970fc09a88027f
>  
>  It appears to have been resolved by:
>  Thu Oct 30 18:55:08 CET 2008  David Roundy <droundy@darcs.net>
>    * make default be to --run-posthook and --run-prehook
> ] 
> [Test for issue142.
> Eric Kow <kowey@darcs.net>**20090904173849
>  Ignore-this: 29fe1f32341d62b2582b601ca699e8a9
> ] 
> [Subsections for posthooks and prehooks.
> Eric Kow <kowey@darcs.net>**20090902072253
>  Ignore-this: 85402c1fd51c99cb45e20eb0442abf53
> ] 
> [Remove darcs.cgi contrib script.
> Eric Kow <kowey@darcs.net>**20090909192413
>  Ignore-this: 919bf120a9cf0256036598309a44b5e3
>  Will Glozer can no longer maintain it.
> ] 
> [More descriptive name for issue1488 test.
> Eric Kow <kowey@darcs.net>**20090909192238
>  Ignore-this: 6bc0dddf87b12f0b269110ae5d29796d
> ] 
> [Accept issue1488: a 'fromJust error' in 'darcs whatsnew -l'
> Marnix Klooster <marnix.klooster@gmail.com>**20090909180046
>  Ignore-this: d064a42a78efef5c327d41e425a6fefc
> ] 
> [make an assumption in the pull code explicit
> Ganesh Sittampalam <ganesh@earth.li>**20090908214917
>  Ignore-this: c573c45fb13012ebd28022f44508d6c8
>  It seems like get_common_and_uncommon always returns a singleton list,
>  which is then relied on later. This patch makes that assumption explicit,
>  by erroring out if it's not true.
> ] 
> [Make the ./tests/issue1465_ortryrunning.sh a little more foolproof.
> Petr Rockai <me@mornfall.net>**20090909144349
>  Ignore-this: 2e0f7370f2e53e3c104e68a9c5aeeafe
> ] 
> [Skip the time-stamps test on windows.
> Petr Rockai <me@mornfall.net>**20090909142844
>  Ignore-this: 72b0bc3d549cab38bceda55113334dd
> ] 
> [Print expansions of simple commands in testsuite output.
> Petr Rockai <me@mornfall.net>**20090907072337
>  Ignore-this: d78e78a155da6f30ebcc592780cfd699
>  
>  This helps with debugging failures, since we see the exact command that was
>  executed, after all shell expansion has been done. Moreover, we see exactly
>  which command failed -- the existing -v will eg. print a whole "if" statement
>  with body and it cannot be discerned which branch was taken or which command
>  exactly has failed.
> ] 
> [Fix locale switching in emailformat.sh test
> Reinier Lamers <tux_rocker@reinier.de>**20090906172308
>  Ignore-this: b715f81d2f7d9e18c4ba55cafdf03c4
> ] 
> [Remove home-grown UTF-8 decoder, use utf8-string instead
> Reinier Lamers <tux_rocker@reinier.de>**20090823191033
>  Ignore-this: 45f5d3e2d3efceba542a15b4905c7017
> ] 
> [More extensive haddocks on Darcs.Patch.Depends.get_extra.
> Eric Kow <kowey@darcs.net>**20090905222525
>  Ignore-this: c8e2ac70e5f61ea12afc479636d9e0cd
> ] 
> [specify CPP globally for witnesses build
> Ganesh Sittampalam <ganesh@earth.li>**20090829061922] 
> [missing LANGUAGE in Darcs.ProgressPatches
> Ganesh Sittampalam <ganesh@earth.li>**20090829061256] 
> [missing LANGUAGE in Darcs.Commands.Unrevert
> Ganesh Sittampalam <ganesh@earth.li>**20090829061208] 
> [remove some derived classes from Tag
> Ganesh Sittampalam <ganesh@earth.li>**20090727060203
>  Ignore-this: 933bd408aff78744925ec2e6cb2475ce
>  This helps to make the representation more abstract
>  
> ] 
> [couple of GADT build fixes for recent GHCs
> Ganesh Sittampalam <ganesh@earth.li>**20090803050514
>  Ignore-this: 6c20e60426da722d0119e00be4eb6816
> ] 
> [add a comment
> Ganesh Sittampalam <ganesh@earth.li>**20090803055736
>  Ignore-this: aad4e733fede7c8abe552893159e0fef
> ] 
> [Add a rudimentary release script.
> Petr Rockai <me@mornfall.net>**20090906154343
>  Ignore-this: 7ace3f8e435b04258b270dcd094b9f13
>  
>  This should automate most of the boring and (more importantly) error-prone work
>  that needs to be done upon a darcs release. Work in progress.
> ] 
> [Use the correct slash in push-formerly-pl.
> Petr Rockai <me@mornfall.net>**20090906131345
>  Ignore-this: b2fe686adcdccbcaf58ca839c19634c9
>  
>  This is usually not required, but in this particular case, the bad slash
>  confuses darcs path comparison (it keeps around the mixed slashes in one of the
>  paths, but has backslashes-only in the other one and wrongly concludes that the
>  paths are different).
> ] 
> [Exit 200 in abort_windows to indicate the skip to the harness.
> Petr Rockai <me@mornfall.net>**20090906131236
>  Ignore-this: 18c60417b1c986eebbfddba896738ddb
> ] 
> [Avoid relying on /dev/stdin in tests/emailformat.sh.
> Petr Rockai <me@mornfall.net>**20090903115749
>  Ignore-this: 43b85a6dd1fcefeb7fd32628a5311a8c
> ] 
> [minor clean up in TouchesFiles
> Jason Dagit <dagit@codersbase.com>**20090830080712
>  Ignore-this: dd23aa84c47234c72f14948981214960
> ] 
> [silence a warning that happens when compiling witnesses
> Jason Dagit <dagit@codersbase.com>**20090830022548
>  Ignore-this: 58f61bce80505de12ede5095d209b577
> ] 
> [remove unused argument to readPrim
> Jason Dagit <dagit@codersbase.com>**20090830022354
>  Ignore-this: df9164c70fa9be8f274bdb8e634956d1
> ] 
> [use gzipFormat instead of GZip to work around deprecation warning.
> Jason Dagit <dagit@codersbase.com>**20090830022209
>  Ignore-this: a556704bf2c974c10619a8051ebb90b4
> ] 
> [Whoops, one more obviated line from Darcs.Repository.Checkpoint.
> Trent W. Buck <trentbuck@gmail.com>**20090829070738
>  Ignore-this: b9aef33a8b34db9d41f8d0b83025c85b
> ] 
> [Resolve issue1548: show contents requires at least one argument.
> Trent W. Buck <trentbuck@gmail.com>**20090829073643
>  Ignore-this: c15286919e827a5e7fdad01c75acccfe
> ] 
> [Add a hidden alias "darcs log" for "darcs changes".
> Trent W. Buck <trentbuck@gmail.com>**20090829032545
>  Ignore-this: 96d8bec96c5bf39387a534fa62a79e28
>  Reduces disparity with CVS, svn, hg, git &c, who all use "log".
> ] 
> [Resolve issue1578: Don't put newlines in the Haskeline prompts.
> Judah Jacobson <judah.jacobson@gmail.com>**20090829072733
>  Ignore-this: 48a17fb0f45f3aee76aa56361bfd97df
>  
>  Haskeline doesn't expect to get control characters in its prompt.
>  The fix is to manually print all but the last line of a prompt message
>  separately, and then pass the last line as the Haskeline prompt.
>  
>  So far we've only seen this cause a problem when mark-conflicts is run in
>  the emacs shell (see the issue for more information).
> ] 
> [Mark issue68 test as failing (and fix issue number).
> Eric Kow <kowey@darcs.net>**20090828101717
>  Ignore-this: 63c0ba22d171cefe5a0244b4ee57a991
> ] 
> [Remove unused code from Darcs.Repository.Checkpoint.
> Trent W. Buck <trentbuck@gmail.com>**20090828030127
>  Ignore-this: 25ab977e5ac0b735ca6ee90aea0349c9
> ] 
> [The record-scaling test still fails.
> Trent W. Buck <trentbuck@gmail.com>**20090828025648
>  Ignore-this: 5ca16bd011676b083cdfcd4359f4744a
> ] 
> [Print helpful message in gzcrcs command when visiting other repos
> Ganesh Sittampalam <ganesh@earth.li>**20090827054315
>  Ignore-this: a7f997c441f0e246c4d31d827ebc9d2b
> ] 
> [Clean up leftover conflicts from merge with David's test suite work.
> Eric Kow <kowey@darcs.net>**20090824104840
>  Ignore-this: ec4ef00d4c5b4da6e24f008f854da2e8
> ] 
> [Resolve conflicts between David and mainline test suite work.
> Eric Kow <kowey@darcs.net>**20090815232335
>  Ignore-this: 72f386bd5345c344f32ca2db9f5594e3
>  
>  Patches involved from David's end:
>    * add failing test demonstrating nasty conflict markings.
>    * mark check.sh test as passing.
>    * mark issue27 test as passing.
>    * mark issue 1043 test as passing.
>    * mark nfs-failure.sh as passing (even though it might not be fixed).
>    * mark dist-v as passing.
>    * mark check.sh as failing.
>    * clean up and mark as passing the broken-pipe.sh test.
>    * mark issue 525 is no longer failing.
>    * move bugs into tests/ directory.
>  
>  The main patch involved is the 'move bugs into tests/ directory'
>  which conflicts with some new bugs we added.  I re-added these
>  manually from the mainline branch of darcs along with some bugs
>  we added that we later marked as passing.
>  
>  I also had to clean up a few tests along the way:
>  - check.sh because of conflicts,
>  - broken-pipe.sh because of temp dir garbage and
>  - record-scaling.sh because of MacOS X incompatiblity
> ] 
> [add failing test demonstrating nasty conflict markings.
> David Roundy <droundy@darcs.net>**20090329022150
>  Ignore-this: 17b0df1e2a33e5efccd92f1930850c15fbf12b1e
> ] 
> [mark check.sh test as passing.
> David Roundy <droundy@darcs.net>**20081207192451
>  Ignore-this: bb0d26124eb69bb88e981d06caa88206
> ] 
> [mark issue27 test as passing.
> David Roundy <droundy@darcs.net>**20081201170526
>  Ignore-this: 49c7b75f79d9bf25610162d079f7dde9
> ] 
> [mark issue 1043 test as passing.
> David Roundy <droundy@darcs.net>**20081119150515
>  Ignore-this: 8b46c9feb0680f0ee9b4f95ee93eb580
> ] 
> [mark nfs-failure.sh as passing (even though it might not be fixed).
> David Roundy <droundy@darcs.net>**20081117160036
>  Ignore-this: d13ebd26c2a799668068132f9c4d05bc
> ] 
> [mark dist-v as passing.
> David Roundy <droundy@darcs.net>**20081115221319
>  Ignore-this: 6fbea237af32801e7207f25af032f408
> ] 
> [mark check.sh as failing.
> David Roundy <droundy@darcs.net>**20081115220504
>  Ignore-this: 812ad08924c9d713646c7adc26d34b75
> ] 
> [clean up and mark as passing the broken-pipe.sh test.
> David Roundy <droundy@darcs.net>**20081115213750
>  Ignore-this: db9fb0de61a4099c73e42365047dc9d2
> ] 
> [mark issue 525 is no longer failing.
> David Roundy <droundy@darcs.net>**20081115212158
>  Ignore-this: 8398c09d03c2e900251f46c41106d94
> ] 
> [move bugs into tests/ directory.
> David Roundy <droundy@darcs.net>**20081115205509
>  Ignore-this: 6b249e3ba90b455331ba31fee36ef5ad
> ] 
> [update docs for darcs mv to reflect reality
> Ganesh Sittampalam <ganesh@earth.li>**20090827230453
>  Ignore-this: 7f5c30b5711b8bbcbec47f6217662b0d
> ] 
> [Mark issue1317 test as failing (and note issue number).
> Eric Kow <kowey@darcs.net>**20090824110437
>  Ignore-this: bbecb8d3a4e60c3bc96b28b729375b6c
> ] 
> [Regression test for issue1317.
> Marco T??lio Gontijo e Silva <marcot@riseup.net>**20090811220616
>  Ignore-this: 846d37873b06a70bed87afeb0fbf2d38
> ] 
> [Explain a slightly obtuse one-liner.
> Trent W. Buck <trentbuck@gmail.com>**20090824033200
>  Ignore-this: 8d6ed336b0a2d932eed879fc85183943
> ] 
> [Support tests/failing-foo.sh convention for bugs.
> Eric Kow <kowey@darcs.net>**20090814103659
>  Ignore-this: 4729f6553910660be921af7d1199abb1
> ] 
> [Minor style tweaks in cabal test.
> Eric Kow <kowey@darcs.net>**20090814102234
>  Ignore-this: 9ce3479022f3c177af3c4fa17426b177
> ] 
> [Support command line arguments in PAGER or DARCS_PAGER
> joe@elem.com**20090823011449
>  Ignore-this: d979af618b5f193b58867e43dd2e0171
>  For example:
>    PAGER="less -is" darcs help
> ] 
> [Rename xml_summary to xmlSummary and summarize to plainSummary.
> Eric Kow <kowey@darcs.net>**20090818220119
>  Ignore-this: b1e29f45f0599a406ffb6496acac2488
> ] 
> [Cut unused imports in Darcs.Patch.Viewing.
> Eric Kow <kowey@darcs.net>**20090818214432
>  Ignore-this: f83f5ce55279a5b96a14770dbcb7dd0b
> ] 
> [Simpler types for changes --summary.
> Eric Kow <kowey@darcs.net>**20090818213946
>  Ignore-this: 22fdc7984753eedf3d35ff88762a2eb2
> ] 
> [Camel-case some Darcs.Patch.Viewing functions.
> Eric Kow <kowey@darcs.net>**20090817153751
>  Ignore-this: b3b03f3408f1097e5b476a35215ecec6
> ] 
> [A tiny bit more separation of concerns in changes --summary core.
> Eric Kow <kowey@darcs.net>**20090817230414
>  Ignore-this: b9f5e9625862d19c356667dc2ce6710d
> ] 
> [Resolve issue183: Do not sort changes --summary output.
> Eric Kow <kowey@darcs.net>**20090817225814
>  Ignore-this: 2749e08a69592f49bb7e2400ae89e8a6
>  This adds move patches to our high-level representation of summary output.
> ] 
> [Refactor changes --summary core code.
> Eric Kow <kowey@darcs.net>**20090817225735
>  Ignore-this: 1078c3bf42fa5e2acef6e6a31c81c42b
>  
>  This uses some custom types representing summarised changes on a higher level
>  and also moves the XML and 'line' based rendering of summaries into separate
>  blocks of code.
> ] 
> [Accept issue1472: "darcs record ./foo" shouldn't open ./bar.
> Trent W. Buck <trentbuck@gmail.com>**20090815084306
>  Ignore-this: 23d5392008872369ba9b509b75aeb5bc
>  This bug was present in Darcs 2.0, but gone by 2.3.
>  Thus, this patch simply adds a regression test.
> ] 
> [Remove tabs from src/Exec.hs
> Reinier Lamers <tux_rocker@reinier.de>**20090809163015
>  Ignore-this: 30952fddf0ae0f60b3af442e90411ca7
> ] 
> [Remove optimize --checkpoint cruft.
> Eric Kow <kowey@darcs.net>**20090811143734
>  Ignore-this: c36c818704171289ff388cdd539626d5
> ] 
> [darcs.cabal turn on -fwarn-tabs per dupree
> gwern0@gmail.com**20090807013047
>  Ignore-this: c7961b5512d2f8392f3484c81ca197e0
> ] 
> [Re-implement haskell_policy in terms of hlint.
> Petr Rockai <me@mornfall.net>**20090807065736
>  Ignore-this: 15fbaf506ae0569d904c1ed2543abc30
>  
>  This also comes with a change to the ratification mechanism, which now uses a
>  separate Ratified module, from which you have to import the unsafe
>  functions. Requires a recent hlint.
> ] 
> [Add a simple testcase for the --external-merge option.
> Petr Rockai <me@mornfall.net>**20090806063953
>  Ignore-this: e848f9b8d5d926fbcc05064d85c49316
> ] 
> [Add script that tricks cabal into installing our build-depends only.
> Petr Rockai <me@mornfall.net>**20090805152653
>  Ignore-this: 6a70f5ff464d26a944b81967606e7af0
> ] 
> [Update hpc.README to use Cabal.
> Petr Rockai <me@mornfall.net>**20090730190304
>  Ignore-this: 7f63751a7daa418ffdca2ca6d20af1b1
> ] 
> [Add a flag for enabling HPC for the darcs library.
> Petr Rockai <me@mornfall.net>**20090730185959
>  Ignore-this: e0246133e84e8547e223f61b67a28066
> ] 
> [Combine the HPC tix files after each test in ShellHarness.
> Petr Rockai <me@mornfall.net>**20090730185951
>  Ignore-this: 577a6e1614aa8c5ff6f25d9df6f81554
>  
>  This is done when HPCTIXDIR is set, so presumably we are generating coverage
>  report. We need to do this, because otherwise, a full testsuite run produces
>  over a gigabyte of tixfiles, even though the combined tix is less than 200K.
> ] 
> [Fix link to autoconf tarball.
> Eric Kow <kowey@darcs.net>**20090723135420
>  Ignore-this: cfe87256fbd5af286a00fbb84ca443d0
> ] 
> [Update web page for 2.3.0 release.
> Eric Kow <kowey@darcs.net>**20090723134705
>  Ignore-this: dfa04b99e5c0170448d635bf0e496a66
> ] 
> [Makefile: fix dependency on no longer existing distclean target.
> Eric Kow <kowey@darcs.net>**20090722093438
>  Ignore-this: d0f8da797e26b0c42a2da76eddd4ed31
> ] 
> [Add support for skipping tests (exit 200).
> Petr Rockai <me@mornfall.net>**20090720095346
>  Ignore-this: 133cb02e8cca03a4678068450cb150a9
> ] 
> [Remove the --checkpoint option from the UI.
> Petr Rockai <me@mornfall.net>**20090720093634
>  Ignore-this: 2fb627cd1e64bbe264fda6e19f0b085b
> ] 
> [Remove the support for writing out new checkpoints.
> Petr Rockai <me@mornfall.net>**20090720091809
>  Ignore-this: 87eb23fe7604ed0abe5c38daafb87a7e
> ] 
> [Remove ununsed test/shell_harness.hs.
> Eric Kow <kowey@darcs.net>**20090721192027
>  Ignore-this: 7efbe97744c698beecd4f17a09868467
> ] 
> [Remove unused determine_release_state.pl.
> Eric Kow <kowey@darcs.net>**20090721205227
>  Ignore-this: 15331bbb258fbdeb6bd4887c8dabb8ed
> ] 
> [Require haskell zlib, dropping the legacy internal zlib binding.
> Petr Rockai <me@mornfall.net>**20090722091325
>  Ignore-this: 348c1fd005fe19900e4a9706567b4ee0
> ] 
> [Make utf8-string mandatory.
> Eric Kow <kowey@darcs.net>**20090721194433
>  Ignore-this: cd8a94b3e4e41bb938e82dffbcb27e2d
> ] 
> [Remove UTF8 module completely.
> Eric Kow <kowey@darcs.net>**20090721194220
>  Ignore-this: f4ec3fe853ecbc928a8d3e3c3b9aa07c
>  The utf8-string package has been the default for a while.
>  Now we're wholly dependent on it.
> ] 
> [Note darcs 2.3 pre-release and darcs 2.2 stable versions in website.
> Eric Kow <kowey@darcs.net>**20090716133323
>  Ignore-this: bbe9c36213a07890816b8599f2f29aee
> ] 
> [Rename index.html.in to index.html, forgoing website automation.
> Eric Kow <kowey@darcs.net>**20090716133023
>  Ignore-this: a4c62db2d3ca341e95262cd05328473f
>  
>  The website automation allowed us to avoid duplication of information (ie.
>  version numbers), but we're in the process of changing our build and
>  release system, which breaks the site.  For now, we go for simplicity and
>  robustness, perhaps restoring the automation in the future when things
>  have settled down somewhat.
> ] 
> [Remove bytestring flag from darcs.cabal.
> Eric Kow <kowey@darcs.net>**20090714165021
>  Ignore-this: 4325773231f9679054c7d045657bdae0
>  Now that we're requiring GHC 6.8 or above, we always use the external bytestring
>  package.
> ] 
> [Slightly refactor the run function in ShellHarness.
> Petr Rockai <me@mornfall.net>**20090714134205
>  Ignore-this: 92c7f05b9c4d6973e95706f23ea27dfc
> ] 
> [Slightly refactor test machinery in Setup.lhs.
> Petr Rockai <me@mornfall.net>**20090714134119
>  Ignore-this: 32206a331658d407d9c0fb3b48405db6
> ] 
> [Use tee in pending_has_conflicts.sh for easier debugging.
> Petr Rockai <me@mornfall.net>**20090713180404
>  Ignore-this: 7b96b7f7df6358ddb0466cfe58803f71
> ] 
> [Roll back the getSymbolicLinkStatus workaround, since it constitutes a fd leak.
> Petr Rockai <me@mornfall.net>**20090710143149
>  Ignore-this: cd2aa7e13cc902852a7c5d0855d55538
>  
>  rolling back:
>  
>  Sun Jun 21 17:39:42 CEST 2009  Petr Rockai <me@mornfall.net>
>    * Avoid getSymbolicLinkStatus in mmap implementation, works around GHC 6.8.2 bug.
> ] 
> [Avoid getSymbolicLinkStatus in mmap implementation, works around GHC 6.8.2 bug.
> Petr Rockai <me@mornfall.net>**20090621153942
>  Ignore-this: 91092453d97c87edfc4e46b11e4ae208
> ] 
> [Move email unit tests to Darcs.Test module space
> Reinier Lamers <tux_rocker@reinier.de>**20090629203409
>  Ignore-this: 3187d24822e7a125a46e0a273956d792
> ] 
> [Teach cabal about new Darcs.Test modules
> Reinier Lamers <tux_rocker@reinier.de>**20090629193208
>  Ignore-this: c27c8398fd637e100259fdf1f4d42e0a
> ] 
> [Move unit tests to Darcs.Test module space
> Reinier Lamers <tux_rocker@reinier.de>**20090629192934
>  Ignore-this: e88d9ecb7ca8f0b5679fba2cd2813ff0
> ] 
> [Bound size of trees generated in Darcs.Patch.QuickCheck
> Reinier Lamers <tux_rocker@reinier.de>**20090628134952
>  Ignore-this: c499b850ad5ca15d4bada56b69ee98f3
>  
>  This keeps the 'Checking that tree flattenings are consistent' test from
>  occasionally taking hours and hours to complete. The maximum depth of 5 was
>  found by experiment.
> ] 
> [Add some comments in Darcs.Patch.QuickCheck
> Reinier Lamers <tux_rocker@reinier.de>**20090628134908
>  Ignore-this: c66a386865832e75427f99febfb91a91
> ] 
> [TAG 2.3.1
> Reinier Lamers <tux_rocker@reinier.de>**20090920174331
>  Ignore-this: a5da37b9925e1dfe3e81f0b67183ef1f
> ] 
> Patch bundle hash:
> 45f2313fdfaece4e37d587d2480fd043e5734fc4

> .
> 
> 
>
History
Date User Action Args
2009-11-15 20:02:01fiscreate
2009-11-15 20:05:00fissetissues: + darcs trackdown --bisect
2009-11-15 20:06:09darcswatchsetmessages: + msg9372
2009-11-18 15:24:53dixieckosetnosy: + dixiecko
messages: + msg9412
2009-11-18 15:59:50mornfallsetfiles: + resolve-issue1208_-trackdown-__bisect-for-binary-search_.dpatch, unnamed
nosy: + mornfall
messages: + msg9413
2009-11-18 16:02:05darcswatchsetmessages: + msg9414
2009-11-18 16:49:09fissetmessages: + msg9418
2009-11-18 16:54:13fissetmessages: + msg9420
2009-11-19 09:39:32galbollelinkpatch91 superseder
2009-12-02 21:01:23fissetstatus: needs-review -> obsoleted
2011-05-10 19:06:20darcswatchsetdarcswatchurl: http://darcswatch.nomeata.de/repo_http:__darcs.net_reviewed.html#bundle-1ac4246c3a7b1863a8d2372cf3e4db4c6743fa63