[darcs-users] darcs patch: Add LANGUAGE pragmas for explicit langua... (and 3 more)

Reinier Lamers tux_rocker at reinier.de
Mon Nov 3 22:36:07 UTC 2008


Hi David e.a.

On Monday 03 November 2008 01:05:23 David Roundy wrote:
> On Fri, Oct 31, 2008 at 5:06 PM, Reinier Lamers <tux_rocker at reinier.de> 
wrote:
> > On Wednesday 29 October 2008 03:39:14 David Roundy wrote:
> >> > Sun Oct 26 16:40:09 GMT 2008  tux_rocker at reinier.de
> >> >   * add a get_unrecorded_in_files to check for unrecorded changes in a
> >> > subset of working directory
> >> >
> >> > Sun Oct 26 19:06:12 GMT 2008  tux_rocker at reinier.de
> >> >   * make get_unrecorded_private work with type witnesses again
> >> >
> >> > Sun Oct 26 19:46:36 GMT 2008  tux_rocker at reinier.de
> >> >   * make whatsnew use the lstat-saving functions to scan the working
> >> > copy
> >>
> >> These look very appealing, and have some nice ideas, but are also buggy.
> >>
> >> :(
> >
> > Here's a patch on top of these that removes the bugs you saw. It moves
> > the unsafeness deeper inward: the juggling with Sealed goes from
> > WhatsNew.lhs to Internal.lhs, the concatenation of primitive patches goes
> > from Internal.lhs to Diff.lhs.
> >
> > If you review this patch, please also watch carefully if I get the stuff
> > with the Seal's right in Internal.lhs. It took some restructuring to make
> > the type checker happy.
>
> Could you resend this as a fresh send to darcs-unstable? I'd like a
> bundle I could apply directly.  Even better would be an amend-recorded
> bundle, so it'll be easier to review.

Here's a bundle against the current unstable. It also adds some tests as Jason 
suggested over IRC. I even found a new bug with those tests, but it's not in 
my lstat-saving code (see issue1196).

Reinier

-------------- next part --------------
Sun Oct 26 17:40:09 CET 2008  tux_rocker at reinier.de
  * add a get_unrecorded_in_files to check for unrecorded changes in a subset of working directory

Sun Oct 26 20:06:12 CET 2008  tux_rocker at reinier.de
  * make get_unrecorded_private work with type witnesses again

Sun Oct 26 20:46:36 CET 2008  tux_rocker at reinier.de
  * make whatsnew use the lstat-saving functions to scan the working copy

Fri Oct 31 22:59:44 CET 2008  Reinier Lamers <tux_rocker at reinier.de>
  * hopefully less buggy version of get_unrecorded_in_files

Mon Nov  3 22:11:12 CET 2008  Reinier Lamers <tux_rocker at reinier.de>
  * Try a bit harder to hack darcs pathname canonicalization in tests

Mon Nov  3 23:19:41 CET 2008  Reinier Lamers <tux_rocker at reinier.de>
  * Fix "make bugs" target in makefile

Mon Nov  3 23:21:06 CET 2008  Reinier Lamers <tux_rocker at reinier.de>
  * Add bug script for issue1196

Mon Nov  3 23:25:52 CET 2008  Reinier Lamers <tux_rocker at reinier.de>
  * add yet another braindead file path to file path canonicalization test

New patches:

[add a get_unrecorded_in_files to check for unrecorded changes in a subset of working directory
tux_rocker at reinier.de**20081026164009
 Ignore-this: 7d36ff983e8745049101a92f5b2326fb
] hunk ./src/Darcs/Diff.lhs 26
 
 #include "gadts.h"
 
-module Darcs.Diff ( unsafeDiff, sync, cmp
+module Darcs.Diff ( diff_at_path, unsafeDiff, sync, cmp
 #ifndef GADT_WITNESSES
                   , diff_files
 #endif
hunk ./src/Darcs/Diff.lhs 53
 import qualified Data.ByteString as B       (hGet, length)
 
 import Darcs.SlurpDirectory ( Slurpy, slurp_name, is_dir, is_file,
+#ifndef GADT_WITNESSES
+                        get_slurp,
+#endif
                         get_dircontents, get_filecontents,
                         get_mtime, get_length,
                         undefined_time
hunk ./src/Darcs/Diff.lhs 73
                    , binary, invert
 #endif
                    )
+#ifndef GADT_WITNESSES
+import Darcs.Patch.FileName( fp2fn, breakup )
+#endif
 import System.IO ( openBinaryFile )
 import Darcs.Repository.Prefs ( FileType(..) )
 import Darcs.Flags ( DarcsFlag(..) )
hunk ./src/Darcs/Diff.lhs 88
 #ifndef GADT_WITNESSES
 #include "impossible.h"
 #endif
+
+-- | The diff_at_path function compares what two slurpies have at a certain
+--   location.  This is useful when the user requests a diff for a file that
+--   is created or removed in the working copy: then there is no slurpy for
+--   the file in the /current/ or /working/ slurpy respectively.
+--
+--   The given paths must always be fixed repository paths starting with a
+--   ".".
+--   
+--   It returns Nothing if there is nothing at the given location in both
+--   slurpies, and the differences between what's there in the slurpies in
+--   all other cases.
+diff_at_path :: [DarcsFlag] -> (FilePath -> FileType) ->
+                    Slurpy -> Slurpy -> FilePath -> Maybe (FL Prim C(x y))
+#ifdef GADT_WITNESSES
+diff_at_path = undefined
+#else
+diff_at_path opts filetypeFunction s1 s2 path =
+    let pathIn1 = get_slurp (fp2fn path) s1 
+        pathIn2 = get_slurp (fp2fn path) s2 in
+    case (pathIn1, pathIn2) of
+        (Nothing, Nothing) -> Nothing
+        (Nothing, Just s2LocationSlurpy) -> do
+            Just $ diff_added summary filetypeFunction initialFps s2LocationSlurpy NilFL
+        (Just s1LocationSlurpy, Nothing) -> do
+            Just $ diff_removed filetypeFunction initialFps s1LocationSlurpy NilFL
+        (Just s1LocationSlurpy, Just s2LocationSlurpy) ->
+            Just $ gendiff (ignore_times, look_for_adds, summary) filetypeFunction 
+                           initialFps s1LocationSlurpy s2LocationSlurpy NilFL
+  where ignore_times = IgnoreTimes `elem` opts
+        look_for_adds = LookForAdds `elem` opts
+        -- NoSummary/Summary both present gives False
+        -- Just Summary gives True
+        -- Just NoSummary gives False
+        -- Neither gives False
+        summary = Summary `elem` opts && NoSummary `notElem` opts
+        initialFps = tail $ reverse (breakup path)
+#endif
+
 \end{code}
 
 The diff function takes a recursive diff of two slurped-up directory trees.
hunk ./src/Darcs/Diff.lhs 141
 unsafeDiff = undefined
 #else
 unsafeDiff opts wt s1 s2
-    = gendiff (ignore_times, look_for_adds, summary) wt [] s1 s2 NilFL
-  where ignore_times = IgnoreTimes `elem` opts
-        look_for_adds = LookForAdds `elem` opts
-        -- NoSummary/Summary both present gives False
-        -- Just Summary gives True
-        -- Just NoSummary gives False
-        -- Neither gives False
-        summary = Summary `elem` opts && NoSummary `notElem` opts
+    = case diff_at_path opts wt s1 s2 "" of
+          Just d -> d
+          _      -> impossible -- because "" always exists in a slurpy 
 
 mk_filepath :: [FilePath] -> FilePath
 mk_filepath fps = concat $ intersperse "/" $ reverse fps
hunk ./src/Darcs/Patch/FileName.lhs 31
                               movedirfilename,
                               encode_white, decode_white,
                               (///),
+                              breakup
                             ) where
 
 import System.IO
hunk ./src/Darcs/Patch/FileName.lhs 124
                     p' -> d : p'
 drop_dotdot [] = []
 
+-- | Split a file path at the slashes
 breakup :: String -> [String]
 breakup p = case break (=='/') p of
             (d,"") -> [d]
hunk ./src/Darcs/Repository.lhs 35
                     slurp_recorded, slurp_recorded_and_unrecorded,
                     withRecorded,
                     get_unrecorded, get_unrecorded_unsorted, get_unrecorded_no_look_for_adds,
+                    get_unrecorded_in_files,
                     read_repo, sync_repo,
                     prefsUrl,
                     add_to_pending,
hunk ./src/Darcs/Repository.lhs 67
      slurp_recorded, slurp_recorded_and_unrecorded,
      withRecorded,
      get_unrecorded, get_unrecorded_unsorted, get_unrecorded_no_look_for_adds,
+     get_unrecorded_in_files,
      read_repo, sync_repo,
      prefsUrl, checkPristineAgainstCwd, checkPristineAgainstSlurpy,
      add_to_pending,
hunk ./src/Darcs/Repository/Internal.lhs 33
                     withRecorded, checkPristineAgainstCwd,
                     checkPristineAgainstSlurpy,
                     get_unrecorded, get_unrecorded_unsorted, get_unrecorded_no_look_for_adds,
+                    get_unrecorded_in_files,
                     read_repo, sync_repo,
                     prefsUrl, makePatchLazy,
                     add_to_pending,
hunk ./src/Darcs/Repository/Internal.lhs 57
 
 import Printer ( putDocLn, (<+>), text, ($$) )
 
-import Data.Maybe ( isJust, isNothing )
+import Data.Maybe ( isJust, isNothing, catMaybes )
 import Darcs.Repository.Prefs ( get_prefval )
 import Darcs.Resolution ( standard_resolution, external_resolution )
 import System.Exit ( ExitCode(..), exitWith )
hunk ./src/Darcs/Repository/Internal.lhs 89
                      try_to_shrink, commuteFL, commute )
 import Darcs.Patch.Prim ( try_shrinking_inverse, Conflict )
 import Darcs.Patch.Bundle ( scan_bundle, make_bundle )
+import Darcs.Patch.FileName ( FileName, fn2fp )
 import Darcs.SlurpDirectory ( Slurpy, slurp_unboring, mmap_slurp, co_slurp,
                               slurp_has, list_slurpy_files )
 import Darcs.Hopefully ( PatchInfoAnd, info, n2pia,
hunk ./src/Darcs/Repository/Internal.lhs 135
 import Darcs.Patch.Set ( PatchSet, SealedPatchSet )
 import Darcs.Patch.Apply ( markup_file, LineMark(None) )
 import Darcs.Patch.Depends ( get_common_and_uncommon, deep_optimize_patchset )
-import Darcs.Diff ( unsafeDiff )
+import Darcs.Diff ( diff_at_path, unsafeDiff )
 import Darcs.RepoPath ( FilePathLike, AbsolutePath, toFilePath )
 import Darcs.Utils ( promptYorn, catchall, withCurrentDirectory, withUMask, nubsort )
 import Darcs.Progress ( progressFL, debugMessage )
hunk ./src/Darcs/Repository/Internal.lhs 392
             sfp sofar (p:<:ps) = sfp (p:>:sofar) ps
 
 get_unrecorded_no_look_for_adds :: RepoPatch p => Repository p C(r u t) -> IO (FL Prim C(r y))
-get_unrecorded_no_look_for_adds = get_unrecorded_private (filter (/= LookForAdds))
+get_unrecorded_no_look_for_adds r = get_unrecorded_private (filter (/= LookForAdds)) r []
 
 get_unrecorded_unsorted :: RepoPatch p => Repository p C(r u t) -> IO (FL Prim C(r u))
hunk ./src/Darcs/Repository/Internal.lhs 395
-get_unrecorded_unsorted = get_unrecorded_private (AnyOrder:)
+get_unrecorded_unsorted r = get_unrecorded_private (AnyOrder:) r []
 
 get_unrecorded :: RepoPatch p => Repository p C(r u t) -> IO (FL Prim C(r u))
hunk ./src/Darcs/Repository/Internal.lhs 398
-get_unrecorded = get_unrecorded_private id
+get_unrecorded r = get_unrecorded_private id r []
+
+-- | Gets the unrecorded changes in the given paths in the current repository.
+get_unrecorded_in_files :: RepoPatch p => Repository p C(r u t) -> [FileName] -> IO (FL Prim C(r u))
+get_unrecorded_in_files = get_unrecorded_private id 
 
 -- | The /unrecorded/ includes the pending and the working directory changes.
hunk ./src/Darcs/Repository/Internal.lhs 405
-get_unrecorded_private :: RepoPatch p => ([DarcsFlag]->[DarcsFlag]) -> Repository p C(r u t) -> IO (FL Prim C(r y))
-get_unrecorded_private _ (Repo _ opts _ _)
+--   The third argument is a list of paths: if this list is [], it will diff
+--   the whole repo, but if there are elements in it, the function will return
+--   only changes to files under those paths.
+get_unrecorded_private :: RepoPatch p => ([DarcsFlag]->[DarcsFlag]) -> Repository p C(r u t) -> [FileName] -> IO (FL Prim C(r y))
+get_unrecorded_private _ (Repo _ opts _ _) _
     | NoUpdateWorking `elem` opts = return $ unsafeCoerceP NilFL
hunk ./src/Darcs/Repository/Internal.lhs 411
-get_unrecorded_private modopts repository@(Repo r oldopts _ _) =
-  withCurrentDirectory r $ do
+get_unrecorded_private modopts repository@(Repo r oldopts _ _) files =
+  withCurrentDirectory r (do
     debugMessage "Looking for unrecorded changes..."
     cur <- slurp_pending repository
     work <- if LookForAdds `elem` opts
hunk ./src/Darcs/Repository/Internal.lhs 421
                                else boring_file_filter
                     slurp_unboring (myfilt cur nboring) "."
             else co_slurp cur "."
+    ftf <- filetype_function
     Sealed pend <- read_pending repository
     debugMessage "diffing dir..."
hunk ./src/Darcs/Repository/Internal.lhs 424
-    ftf <- filetype_function
-    let dif = case unsafeDiff opts ftf cur work of
-              di -> if AnyOrder `elem` opts
-                    then pend +>+ di
-                    else sort_coalesceFL $ pend +>+ di
+    let diffs = if null files
+                  then [unsafeDiff opts ftf cur work]
+                  else catMaybes (map (diff_at_path opts ftf cur work) (map fn2fp files))
+    let workdiff = foldl (+>+) NilFL diffs
+        dif = if AnyOrder `elem` opts
+                  then pend +>+ workdiff
+                  else sort_coalesceFL $ pend +>+ workdiff
     seq dif $ debugMessage "Found unrecorded changes."
hunk ./src/Darcs/Repository/Internal.lhs 432
-    return dif
+    return dif)
     where myfilt s nboring f = slurp_has f s || nboring [f] /= []
           opts = modopts oldopts
 
[make get_unrecorded_private work with type witnesses again
tux_rocker at reinier.de**20081026190612
 Ignore-this: 97418e6487ef9c9508473d4c65f295ca
] hunk ./src/Darcs/Repository/Internal.lhs 424
     ftf <- filetype_function
     Sealed pend <- read_pending repository
     debugMessage "diffing dir..."
+    -- the unsafeCoerceP below is necessary to be able to concatenate
+    -- pend with NilFL to form dif. See http://hpaste.org/11480
     let diffs = if null files
hunk ./src/Darcs/Repository/Internal.lhs 427
-                  then [unsafeDiff opts ftf cur work]
-                  else catMaybes (map (diff_at_path opts ftf cur work) (map fn2fp files))
-    let workdiff = foldl (+>+) NilFL diffs
+                  then unsafeDiff opts ftf cur work
+                  else let diffsPerFile = catMaybes (map (diff_at_path opts ftf cur work) (map fn2fp files)) 
+                       in foldr (+>+) (unsafeCoerceP NilFL) diffsPerFile
         dif = if AnyOrder `elem` opts
hunk ./src/Darcs/Repository/Internal.lhs 431
-                  then pend +>+ workdiff
-                  else sort_coalesceFL $ pend +>+ workdiff
+                  then pend +>+ diffs
+                  else sort_coalesceFL $ pend +>+ diffs
     seq dif $ debugMessage "Found unrecorded changes."
     return dif)
     where myfilt s nboring f = slurp_has f s || nboring [f] /= []
[make whatsnew use the lstat-saving functions to scan the working copy
tux_rocker at reinier.de**20081026194636
 Ignore-this: 54b7a07b7b1d49b3d20050bc905db665
] hunk ./src/Darcs/Commands/WhatsNew.lhs 40
                       )
 import Darcs.Arguments ( summary )
 import Darcs.Patch.TouchesFiles ( choose_touching )
-import Darcs.RepoPath ( toFilePath )
+import Darcs.RepoPath ( toFilePath, sp2fn )
 import Darcs.Repository ( Repository, withRepository, ($-), slurp_recorded,
hunk ./src/Darcs/Commands/WhatsNew.lhs 42
-                          get_unrecorded, get_unrecorded_no_look_for_adds, amInRepository )
+                          get_unrecorded_no_look_for_adds, 
+                          get_unrecorded_in_files, amInRepository )
 import Darcs.Repository.Prefs ( filetype_function )
 import Darcs.Diff ( unsafeDiff )
 import Darcs.Patch ( RepoPatch, Prim, summarize, apply_to_slurpy, is_hunk,
hunk ./src/Darcs/Commands/WhatsNew.lhs 105
     files <- fixSubPaths opts' args
     when (areFileArgs files) $
          putStrLn $ "What's new in "++unwords (map show files)++":\n"
-    all_changes <- get_unrecorded repository
-    chold <- get_unrecorded_no_look_for_adds repository
+    all_changes <- get_unrecorded_in_files repository (map sp2fn files)
+    chold <- get_unrecorded_no_look_for_adds repository (map sp2fn files)
     s <- slurp_recorded repository
     ftf <- filetype_function
     let pre_changed_files = apply_to_filepaths (invert chold) $ map toFilePath files
hunk ./src/Darcs/Commands/WhatsNew.lhs 136
     files <- sort `fmap` fixSubPaths opts args
     when (areFileArgs files) $
          putStrLn $ "What's new in "++unwords (map show files)++":\n"
-    changes <- get_unrecorded repository
+    changes <- get_unrecorded_in_files repository (map sp2fn files)
     when (nullFL changes) $ putStrLn "No changes!" >> (exitWith $ ExitFailure 1)
     let pre_changed_files = apply_to_filepaths (invert changes) $ map toFilePath files
     unseal (printSummary repository) $ mapSeal (mapFL_FL prim2real) $ choose_touching pre_changed_files changes
hunk ./src/Darcs/Repository/Internal.lhs 391
                       Left _ -> sfp (p:>:sofar) ps
             sfp sofar (p:<:ps) = sfp (p:>:sofar) ps
 
-get_unrecorded_no_look_for_adds :: RepoPatch p => Repository p C(r u t) -> IO (FL Prim C(r y))
-get_unrecorded_no_look_for_adds r = get_unrecorded_private (filter (/= LookForAdds)) r []
+get_unrecorded_no_look_for_adds :: RepoPatch p => Repository p C(r u t) -> [FileName] -> IO (FL Prim C(r y))
+get_unrecorded_no_look_for_adds r paths = get_unrecorded_private (filter (/= LookForAdds)) r paths 
 
 get_unrecorded_unsorted :: RepoPatch p => Repository p C(r u t) -> IO (FL Prim C(r u))
 get_unrecorded_unsorted r = get_unrecorded_private (AnyOrder:) r []
[hopefully less buggy version of get_unrecorded_in_files
Reinier Lamers <tux_rocker at reinier.de>**20081031215944
 Ignore-this: 9f4f2320a1784cf6f7546ab23eb6bf61
] hunk ./src/Darcs/Commands/WhatsNew.lhs 39
                         list_registered_files,
                       )
 import Darcs.Arguments ( summary )
-import Darcs.Patch.TouchesFiles ( choose_touching )
-import Darcs.RepoPath ( toFilePath, sp2fn )
+import Darcs.RepoPath ( sp2fn )
 import Darcs.Repository ( Repository, withRepository, ($-), slurp_recorded,
                           get_unrecorded_no_look_for_adds, 
                           get_unrecorded_in_files, amInRepository )
hunk ./src/Darcs/Commands/WhatsNew.lhs 45
 import Darcs.Repository.Prefs ( filetype_function )
 import Darcs.Diff ( unsafeDiff )
-import Darcs.Patch ( RepoPatch, Prim, summarize, apply_to_slurpy, is_hunk,
-                     invert, apply_to_filepaths )
+import Darcs.Patch ( RepoPatch, Prim, summarize, apply_to_slurpy, is_hunk )
 import Darcs.Patch.Permutations ( partitionRL )
 import Darcs.Patch.Real ( RealPatch, prim2real )
 import Darcs.PrintPatch ( printPatch, contextualPrintPatch )
hunk ./src/Darcs/Commands/WhatsNew.lhs 50
 import Darcs.Ordered ( FL(..), mapFL_FL, reverseRL, reverseFL, (:>)(..), nullFL )
-import Darcs.Sealed ( Sealed(..), unseal, mapSeal )
 import Printer ( putDocLn, renderString, vcat, text )
 #include "impossible.h"
 \end{code}
hunk ./src/Darcs/Commands/WhatsNew.lhs 106
     chold <- get_unrecorded_no_look_for_adds repository (map sp2fn files)
     s <- slurp_recorded repository
     ftf <- filetype_function
-    let pre_changed_files = apply_to_filepaths (invert chold) $ map toFilePath files
-        select_files = choose_touching pre_changed_files
-    Sealed cho <- return $ select_files chold
-    cho_adds :> _ <- return $ partitionRL is_hunk $ reverseFL cho
-    Sealed all_fs <- return $ select_files all_changes
-    cha :> _ <- return $ partitionRL is_hunk $ reverseFL all_fs
+    cho_adds :> _ <- return $ partitionRL is_hunk $ reverseFL chold
+    cha :> _ <- return $ partitionRL is_hunk $ reverseFL all_changes
     let chn    = unsafeDiff [LookForAdds,Summary] ftf
                             (fromJust $ apply_to_slurpy (reverseRL cho_adds) s)
                             (fromJust $ apply_to_slurpy (reverseRL cha) s)
hunk ./src/Darcs/Commands/WhatsNew.lhs 111
-    exitOnNoChanges (chn, cho)
-    putDocLn $ summarize cho
+    exitOnNoChanges (chn, chold)
+    putDocLn $ summarize chold
     printSummary chn
     where lower_as x = vcat $ map (text . l_as) $ lines x
           l_as ('A':x) = 'a':x
hunk ./src/Darcs/Commands/WhatsNew.lhs 131
          putStrLn $ "What's new in "++unwords (map show files)++":\n"
     changes <- get_unrecorded_in_files repository (map sp2fn files)
     when (nullFL changes) $ putStrLn "No changes!" >> (exitWith $ ExitFailure 1)
-    let pre_changed_files = apply_to_filepaths (invert changes) $ map toFilePath files
-    unseal (printSummary repository) $ mapSeal (mapFL_FL prim2real) $ choose_touching pre_changed_files changes
+    printSummary repository $ mapFL_FL prim2real changes
        where printSummary :: RepoPatch p => Repository p C(r u t) -> FL RealPatch C(r y) -> IO ()
              printSummary _ NilFL = do putStrLn "No changes!"
                                        exitWith $ ExitFailure 1
hunk ./src/Darcs/Diff.lhs 26
 
 #include "gadts.h"
 
-module Darcs.Diff ( diff_at_path, unsafeDiff, sync, cmp
+module Darcs.Diff ( unsafeDiffAtPaths, unsafeDiff, sync, cmp
 #ifndef GADT_WITNESSES
                   , diff_files
 #endif
hunk ./src/Darcs/Diff.lhs 41
 import Control.Monad ( when )
 import Data.List ( sort
 #ifndef GADT_WITNESSES
-                 , intersperse
+                 , intersperse, isPrefixOf
 #endif
                  )
hunk ./src/Darcs/Diff.lhs 44
+#ifndef GADT_WITNESSES
+import Data.Maybe ( catMaybes )
+#endif
 
 #ifndef GADT_WITNESSES
 import ByteStringUtils ( is_funky, linesPS)
hunk ./src/Darcs/Diff.lhs 92
 #include "impossible.h"
 #endif
 
--- | The diff_at_path function compares what two slurpies have at a certain
---   location.  This is useful when the user requests a diff for a file that
---   is created or removed in the working copy: then there is no slurpy for
---   the file in the /current/ or /working/ slurpy respectively.
+-- | The unsafeDiffAtPaths function calls diff_at_path for a set of files and 
+--   returns all changes to those files. It does *not* explore the given paths
+--   recursively.
+--
+--   Comparing paths and not slurpies is useful when the user
+--   requests a diff for a file that is created or removed in the working copy:
+--   then there is no slurpy for the file in the /current/ or /working/ slurpy
+--   respectively.
 --
 --   The given paths must always be fixed repository paths starting with a
hunk ./src/Darcs/Diff.lhs 102
---   ".".
---   
---   It returns Nothing if there is nothing at the given location in both
---   slurpies, and the differences between what's there in the slurpies in
---   all other cases.
-diff_at_path :: [DarcsFlag] -> (FilePath -> FileType) ->
-                    Slurpy -> Slurpy -> FilePath -> Maybe (FL Prim C(x y))
+--   ".". It is safe to pass overlapping paths.
+--
+--   The booleans in the first argument tell whether to ignore mtimes, whether
+--   we must look for additions and if we're diffing for a summary only.
+--
+--   It returns an FL of patches, that contains all the changes that have been
+--   made at all those paths.
+unsafeDiffAtPaths :: (Bool, Bool, Bool) -> (FilePath -> FileType) ->
+               Slurpy -> Slurpy -> [FilePath] -> FL Prim C(x y)
 #ifdef GADT_WITNESSES
hunk ./src/Darcs/Diff.lhs 112
-diff_at_path = undefined
+unsafeDiffAtPaths = undefined
 #else
hunk ./src/Darcs/Diff.lhs 114
-diff_at_path opts filetypeFunction s1 s2 path =
-    let pathIn1 = get_slurp (fp2fn path) s1 
-        pathIn2 = get_slurp (fp2fn path) s2 in
+unsafeDiffAtPaths flags filetypeFunction s1 s2 paths = 
+    foldr (+>+) NilFL (catMaybes diffsPerPath)
+  where diffsPerPath = map differ safePaths 
+        differ       = diff_at_path flags filetypeFunction s1 s2
+        safePaths    = make_nonoverlapping_path_set paths
+
+diff_at_path :: (Bool, Bool, Bool) -> (FilePath -> FileType)
+                -> Slurpy -> Slurpy -> FilePath -> Maybe (FL Prim)
+diff_at_path (ignoreTimes, lookForAdds, summary) filetypeFunction s1 s2 path =
     case (pathIn1, pathIn2) of
         (Nothing, Nothing) -> Nothing
hunk ./src/Darcs/Diff.lhs 125
-        (Nothing, Just s2LocationSlurpy) -> do
-            Just $ diff_added summary filetypeFunction initialFps s2LocationSlurpy NilFL
-        (Just s1LocationSlurpy, Nothing) -> do
-            Just $ diff_removed filetypeFunction initialFps s1LocationSlurpy NilFL
-        (Just s1LocationSlurpy, Just s2LocationSlurpy) ->
-            Just $ gendiff (ignore_times, look_for_adds, summary) filetypeFunction 
-                           initialFps s1LocationSlurpy s2LocationSlurpy NilFL
-  where ignore_times = IgnoreTimes `elem` opts
-        look_for_adds = LookForAdds `elem` opts
-        -- NoSummary/Summary both present gives False
-        -- Just Summary gives True
-        -- Just NoSummary gives False
-        -- Neither gives False
-        summary = Summary `elem` opts && NoSummary `notElem` opts
+        (Nothing, Just s2PathSlurpy) -> do
+            Just $ diff_added summary filetypeFunction initialFps s2PathSlurpy NilFL
+        (Just s1PathSlurpy, Nothing) -> do
+            Just $ diff_removed filetypeFunction initialFps s1PathSlurpy NilFL
+        (Just s1PathSlurpy, Just s2PathSlurpy) -> 
+            Just $ gendiff (ignoreTimes, lookForAdds, summary) filetypeFunction              
+                           initialFps s1PathSlurpy s2PathSlurpy NilFL
+  where pathIn1 = get_slurp (fp2fn path) s1 
+        pathIn2 = get_slurp (fp2fn path) s2
         initialFps = tail $ reverse (breakup path)
hunk ./src/Darcs/Diff.lhs 135
+
+make_nonoverlapping_path_set :: [FilePath] -> [FilePath]
+make_nonoverlapping_path_set = map unbreakup . delete_overlapping . map breakup . sort
+  where
+    delete_overlapping :: [[FilePath]] -> [[FilePath]]
+    delete_overlapping (p1:p2:ps) = if p1 `isPrefixOf` p2
+                                      then delete_overlapping (p1:ps)
+                                      else p1 : delete_overlapping (p2:ps)
+    delete_overlapping ps         = ps
+    unbreakup = concat . intersperse "/"
 #endif
 
 \end{code}
hunk ./src/Darcs/Diff.lhs 161
 unsafeDiff = undefined
 #else
 unsafeDiff opts wt s1 s2
-    = case diff_at_path opts wt s1 s2 "" of
+    = case diff_at_path (ignoreTimes, lookForAdds, summary)  wt s1 s2 "" of
           Just d -> d
           _      -> impossible -- because "" always exists in a slurpy 
hunk ./src/Darcs/Diff.lhs 164
+  where -- NoSummary/Summary both present gives False
+        -- Just Summary gives True
+        -- Just NoSummary gives False
+        -- Neither gives False
+        summary = Summary `elem` opts && NoSummary `notElem` opts
+        lookForAdds = LookForAdds `elem` opts
+        ignoreTimes = IgnoreTimes `elem` opts
 
 mk_filepath :: [FilePath] -> FilePath
 mk_filepath fps = concat $ intersperse "/" $ reverse fps
hunk ./src/Darcs/Diff.lhs 179
         -> (FilePath -> FileType) -> [FilePath] -> Slurpy -> Slurpy
         -> (FL Prim -> FL Prim)
 gendiff opts@(isparanoid,_,_) wt fps s1 s2
-    | is_file s1 && is_file s2 && maybe_differ =
-          case wt n2 of
-          TextFile -> diff_files f b1 b2
-          BinaryFile -> if b1 /= b2 then (binary f b1 b2:>:)
-                                    else id
+    | is_file s1 && is_file s2 = diff_regular_files isparanoid wt f s1 s2
     | is_dir s1 && is_dir s2 =
           let fps' = case n2 of
                          "." -> fps
hunk ./src/Darcs/Diff.lhs 188
     | otherwise = id
     where n2 = slurp_name s2
           f = mk_filepath (n2:fps)
-          b1 = get_filecontents s1
-          b2 = get_filecontents s2
           dc1 = get_dircontents s1
           dc2 = get_dircontents s2
hunk ./src/Darcs/Diff.lhs 190
-          maybe_differ = isparanoid
-                      || get_mtime s1 == undefined_time
-                      || get_mtime s1 /= get_mtime s2
-                      || get_length s1 == undefined_size
-                      || get_length s1 /= get_length s2
 
 -- recur_diff or recursive diff
 -- First parameter is (IgnoreTimes?, LookforAdds?, Summary?)
hunk ./src/Darcs/Diff.lhs 214
 recur_diff (_,False,_) _ _ [] _ = id
 recur_diff _ _ _ _ _ = impossible
 
+-- diff, taking into account paranoidness and file type, two regular files
+diff_regular_files :: Bool -> (FilePath -> FileType) -> FilePath -> Slurpy -> Slurpy -> (FL Prim -> FL Prim)
+diff_regular_files ignoreTimes filetypeFunction f s1 s2 = 
+    if maybe_differ   
+        then case filetypeFunction (slurp_name s2) of                                     
+               TextFile -> diff_files f b1 b2                    
+               BinaryFile -> if b1 /= b2 then (binary f b1 b2:>:)
+                                         else id                 
+        else id
+  where maybe_differ = ignoreTimes
+                     || get_mtime s1 == undefined_time
+                     || get_mtime s1 /= get_mtime s2
+                     || get_length s1 == undefined_size
+                     || get_length s1 /= get_length s2
+        b1 = get_filecontents s1
+        b2 = get_filecontents s2
+
 -- creates a diff for a file or directory which needs to be added to the
 -- repository
 diff_added :: Bool -> (FilePath -> FileType) -> [FilePath] -> Slurpy
hunk ./src/Darcs/Repository/Internal.lhs 57
 
 import Printer ( putDocLn, (<+>), text, ($$) )
 
-import Data.Maybe ( isJust, isNothing, catMaybes )
+import Data.Maybe ( isJust, isNothing )
 import Darcs.Repository.Prefs ( get_prefval )
 import Darcs.Resolution ( standard_resolution, external_resolution )
 import System.Exit ( ExitCode(..), exitWith )
hunk ./src/Darcs/Repository/Internal.lhs 86
 
 import Darcs.Patch ( Patch, RealPatch, Effect, is_hunk, is_binary, description,
 
-                     try_to_shrink, commuteFL, commute )
+                     try_to_shrink, commuteFL, commute, apply_to_filepaths )
 import Darcs.Patch.Prim ( try_shrinking_inverse, Conflict )
 import Darcs.Patch.Bundle ( scan_bundle, make_bundle )
 import Darcs.Patch.FileName ( FileName, fn2fp )
hunk ./src/Darcs/Repository/Internal.lhs 90
+import Darcs.Patch.TouchesFiles ( choose_touching )
 import Darcs.SlurpDirectory ( Slurpy, slurp_unboring, mmap_slurp, co_slurp,
                               slurp_has, list_slurpy_files )
 import Darcs.Hopefully ( PatchInfoAnd, info, n2pia,
hunk ./src/Darcs/Repository/Internal.lhs 110
 import Darcs.Flags ( DarcsFlag(AnyOrder, Boring, LookForAdds, Verbose, Quiet,
                                MarkConflicts, AllowConflicts, NoUpdateWorking,
                                RepoDir, WorkDir, UMask, Test, LeaveTestDir,
-                               SetScriptsExecutable, DryRun, IgnoreTimes ),
+                               SetScriptsExecutable, DryRun, IgnoreTimes,
+                               Summary, NoSummary),
                      want_external_merge, compression )
 import Darcs.Ordered ( FL(..), RL(..), EqCheck(..), unsafeCoerceP,
                              (:\/:)(..), (:/\:)(..), (:>)(..),
hunk ./src/Darcs/Repository/Internal.lhs 137
 import Darcs.Patch.Set ( PatchSet, SealedPatchSet )
 import Darcs.Patch.Apply ( markup_file, LineMark(None) )
 import Darcs.Patch.Depends ( get_common_and_uncommon, deep_optimize_patchset )
-import Darcs.Diff ( diff_at_path, unsafeDiff )
+import Darcs.Diff ( unsafeDiffAtPaths, unsafeDiff )
 import Darcs.RepoPath ( FilePathLike, AbsolutePath, toFilePath )
 import Darcs.Utils ( promptYorn, catchall, withCurrentDirectory, withUMask, nubsort )
 import Darcs.Progress ( progressFL, debugMessage )
hunk ./src/Darcs/Repository/Internal.lhs 409
 -- | The /unrecorded/ includes the pending and the working directory changes.
 --   The third argument is a list of paths: if this list is [], it will diff
 --   the whole repo, but if there are elements in it, the function will return
---   only changes to files under those paths.
+--   only changes to files under those paths. The paths must be fixed paths 
+--   starting with ".", but need not yet be unique.
 get_unrecorded_private :: RepoPatch p => ([DarcsFlag]->[DarcsFlag]) -> Repository p C(r u t) -> [FileName] -> IO (FL Prim C(r y))
 get_unrecorded_private _ (Repo _ opts _ _) _
     | NoUpdateWorking `elem` opts = return $ unsafeCoerceP NilFL
hunk ./src/Darcs/Repository/Internal.lhs 426
             else co_slurp cur "."
     ftf <- filetype_function
     Sealed pend <- read_pending repository
+    let changed_files = apply_to_filepaths pend filesFP
+        pre_changed_files = apply_to_filepaths (invert pend) filesFP
+    Sealed relevantPend <- return $ if null files
+                                      then seal pend
+                                      else choose_touching pre_changed_files pend
     debugMessage "diffing dir..."
hunk ./src/Darcs/Repository/Internal.lhs 432
-    -- the unsafeCoerceP below is necessary to be able to concatenate
-    -- pend with NilFL to form dif. See http://hpaste.org/11480
     let diffs = if null files
                   then unsafeDiff opts ftf cur work
hunk ./src/Darcs/Repository/Internal.lhs 434
-                  else let diffsPerFile = catMaybes (map (diff_at_path opts ftf cur work) (map fn2fp files)) 
-                       in foldr (+>+) (unsafeCoerceP NilFL) diffsPerFile
+                  else unsafeDiffAtPaths (ignoreTimes, lookForAdds, summary) ftf cur work changed_files
         dif = if AnyOrder `elem` opts
hunk ./src/Darcs/Repository/Internal.lhs 436
-                  then pend +>+ diffs
-                  else sort_coalesceFL $ pend +>+ diffs
+                  then relevantPend +>+ diffs
+                  else sort_coalesceFL $ relevantPend +>+ diffs
     seq dif $ debugMessage "Found unrecorded changes."
     return dif)
     where myfilt s nboring f = slurp_has f s || nboring [f] /= []
hunk ./src/Darcs/Repository/Internal.lhs 442
           opts = modopts oldopts
+          -- NoSummary/Summary both present gives False
+          -- Just Summary gives True
+          -- Just NoSummary gives False
+          -- Neither gives False
+          summary = Summary `elem` opts && NoSummary `notElem` opts
+          lookForAdds = LookForAdds `elem` opts
+          ignoreTimes = IgnoreTimes `elem` opts
+          filesFP = map fn2fp files
 
 -- @todo: we should not have to open the result of HashedRepo and
 -- seal it.  Instead, update this function to work with type witnesses
[Try a bit harder to hack darcs pathname canonicalization in tests
Reinier Lamers <tux_rocker at reinier.de>**20081103211112
 Ignore-this: 3b419ed6b5c3b4d8529ca045d8c63548
] hunk ./tests/whatsnew-file.sh 47
 cat out
 grep date out | wc -l | grep 1
 
+darcs wh foo ./foo > out
+cat out
+grep date out | wc -l | grep 1
+
+darcs wh foo bar/../foo > out
+cat out
+grep date out | wc -l | grep 1
+
+darcs wh foo foo/../foo/. > out
+cat out
+grep date out | wc -l | grep 1
+
 cd ..
 
 rm -rf temp1
[Fix "make bugs" target in makefile
Reinier Lamers <tux_rocker at reinier.de>**20081103221941
 Ignore-this: 541567455acb0308bbbcf8eb4fe4c83b
] hunk ./GNUmakefile 505
 	 echo ALL --hashed >> .darcs/defaults)
 
 bugs-old:     darcs hspwd
-	$(call shell_bugs,old-fashioned,\
+	$(call bug_harness,old-fashioned,\
 	  echo ALL --old-fashioned-inventory >> .darcs/defaults)
 
 bugs-format2:     darcs hspwd
hunk ./GNUmakefile 509
-	$(call shell_bugs,format-2,\
+	$(call bug_harness,format-2,\
 	 echo ALL --darcs-2 >> .darcs/defaults)
 
 bugs-hashed:     darcs hspwd
hunk ./GNUmakefile 513
-	$(call shell_bugs,hashed,\
+	$(call bug_harness,hashed,\
 	 echo ALL --hashed >> .darcs/defaults)
 
 test_unit:     darcs unit
[Add bug script for issue1196
Reinier Lamers <tux_rocker at reinier.de>**20081103222106
 Ignore-this: a91333382a944602881b388da4606eca
] addfile ./bugs/issue1196_whatsnew_falsely_lists_all_changes.sh
hunk ./bugs/issue1196_whatsnew_falsely_lists_all_changes.sh 1
+#!/usr/bin/env bash
+set -ev
+
+not () { "$@" && exit 1 || :; }
+
+rm -rf temp1
+mkdir temp1
+cd temp1
+
+darcs init
+touch aargh
+darcs add aargh
+echo utrecht > aargh
+
+darcs wh foo foo/../foo/. > out
+cat out
+not grep utrecht out
+
+cd ..
+rm -rf temp1
+
hunk ./tests/whatsnew-file.sh 55
 cat out
 grep date out | wc -l | grep 1
 
-darcs wh foo foo/../foo/. > out
-cat out
-grep date out | wc -l | grep 1
+# This one fails actually, but it's not my fault. Filed as issue1196.
+#darcs wh foo foo/../foo/. > out
+#cat out
+#grep date out | wc -l | grep 1
 
 cd ..
 
[add yet another braindead file path to file path canonicalization test
Reinier Lamers <tux_rocker at reinier.de>**20081103222552
 Ignore-this: a2b2f6f8c47a14943dd99a6a1d0a5c7d
] hunk ./tests/whatsnew-file.sh 47
 cat out
 grep date out | wc -l | grep 1
 
-darcs wh foo ./foo > out
+darcs wh foo ./foo ../temp1/foo > out
 cat out
 grep date out | wc -l | grep 1
 

Context:

[resolve conflict in makefile.
David Roundy <droundy at darcs.net>**20081103002009
 Ignore-this: 3677a2bad189f858b1ac06e56b9e4c2f
] 
[fixup SRC_DIRS
Ganesh Sittampalam <ganesh at earth.li>**20081029190715] 
[a slight simplification
Ganesh Sittampalam <ganesh at earth.li>**20081028185358] 
[clarify SlurpDirectory interface
Ganesh Sittampalam <ganesh at earth.li>**20081028072911] 
[cleanup some patterns
Ganesh Sittampalam <ganesh at earth.li>**20081028065424] 
[simplify slurp_has_anycase
Ganesh Sittampalam <ganesh at earth.li>**20081026200442] 
[another obvious use of the SlurpyMap
Ganesh Sittampalam <ganesh at earth.li>**20081026192715] 
[bug fix
Ganesh Sittampalam <ganesh at earth.li>**20081026185518] 
[make use of the SlurpyDir Map in the obvious places
Ganesh Sittampalam <ganesh at earth.li>**20081026153749] 
[dumb changeover of SlurpDir contents from [] to Map
Ganesh Sittampalam <ganesh at earth.li>**20081026135906] 
[refactor Slurpy to common up name component between File/Dir
Ganesh Sittampalam <ganesh at earth.li>**20081026123722] 
[Remove unpleasant sequencing operators (;) from haddock targets.
Trent W. Buck <trentbuck at gmail.com>**20081023061830
 
 Make is will abort a run when any command fails.  Using ;\\\n to join
 separate lines means make can't detect if the first line fails.  Also,
 continuation lines are ugly.
 
 When disabling failure propagation is intentional and desired, you can
 achieve this explicitly by starting the command with a hyphen (-).
] 
[Remove obsolete "deb" target.
Trent W. Buck <trentbuck at gmail.com>**20081023060745
 I maintain the Debian darcs package, and I don't use this target.
 I doubt anyone else has a use for it.
] 
[Explain ghcflags_fancy.
Trent W. Buck <trentbuck at gmail.com>**20081023053956] 
[Tweak C_OBJS declaration.
Trent W. Buck <trentbuck at gmail.com>**20081023033409] 
[DARCS_FILES_DEPS is never bound, so don't evaluate it.
Trent W. Buck <trentbuck at gmail.com>**20081023030902] 
[Generate SRC_DIRS programmatically.
Trent W. Buck <trentbuck at gmail.com>**20081023024212
 
 The -name sys -prune -o ... -print part is a hack to skip the
 src/win32/sys, which is probably safe to include in the list, but I
 didn't want to take any chances.
] 
[Typo: inadequate quotation in configure.ac.
Trent W. Buck <trentbuck at gmail.com>**20081101072848] 
[ByteStringUtils: simply re-export BS functions for GHC > 6.6
Spencer Janssen <spencerjanssen at gmail.com>**20081028042219] 
[cleaner implementation of linesPS test
Don Stewart <dons at galois.com>**20081026232500
 Ignore-this: 6e3af59e5a5a3bdc4a6a62502056955a
] 
[remove dead code
Don Stewart <dons at galois.com>**20081026231432
 Ignore-this: 5a4a4b4cdcf0309214a93a88f4543421
] 
[pack the small string, rather than unpack the bytestring
Don Stewart <dons at galois.com>**20081026194321
 Ignore-this: eff62569f383215d2be31a7810ed187c
] 
[remove quadratic blowups from mapPrimFL
Ganesh Sittampalam <ganesh at earth.li>**20081029190730] 
[resolve another replace conflict.
David Roundy <droundy at darcs.net>**20081102122813
 Ignore-this: ee690c9cde6a07b1c15441fe90c03eeb
] 
[use fmap in unit.lhs
Jason Dagit <dagit at codersbase.com>**20081028064753
 Ignore-this: af4cbe231e58d9b9e4ad332b30542a68
] 
[use fmap in Patch.Apply
Jason Dagit <dagit at codersbase.com>**20081028064147
 Ignore-this: b58bdab550fcc5acc75e2ef3a53ed490
] 
[use fmap in Match
Jason Dagit <dagit at codersbase.com>**20081028060342
 Ignore-this: 6b81e2f9cf92d8dad5186709b11d5750
] 
[use fmap in Lock
Jason Dagit <dagit at codersbase.com>**20081028060232
 Ignore-this: faa5607b5a1d1b741ddebec3c0836907
] 
[use fmap in External
Jason Dagit <dagit at codersbase.com>**20081028060146
 Ignore-this: f22668532d19292d4b45a7dc62f33134
] 
[use fmap in Diff
Jason Dagit <dagit at codersbase.com>**20081028060047
 Ignore-this: f99385acad67e2b39d3d6b0c78faae1a
] 
[use fmap in Commands.Send
Jason Dagit <dagit at codersbase.com>**20081028055751
 Ignore-this: bbf45d660eeed9f295d58f151464ce8a
] 
[use fmap in Commands.Annotate
Jason Dagit <dagit at codersbase.com>**20081028055323
 Ignore-this: 8493690ea502127655a4cde85296acef
] 
[use fmap in ByteStringUtils
Jason Dagit <dagit at codersbase.com>**20081028054836
 Ignore-this: 900d79b15507324b793c694c063a2e19
] 
[add test of lazy get of lazy get.
David Roundy <droundy at darcs.net>**20081102121358
 Ignore-this: e10b727babff3ef33ddbc7bd9816b3f9
] 
[simplify Setup.hs a bit.
David Roundy <droundy at darcs.net>**20081102121344
 Ignore-this: abd70cfa96a253f61ef9de57ba5b39e4
] 
[compensate for bugfix in franchise in defineAs.
David Roundy <droundy at darcs.net>**20081102022049
 Ignore-this: fc5be27e41e8b1cc4d21eec2a47884d2
] 
[rewrite partitionFL and partitionRL to reduce the number of commutes they do
Ganesh Sittampalam <ganesh at earth.li>**20081028222841
 Ignore-this: e1861f289d56911b595653ae2f3891bf
 
 This patch avoids a quadratic blowup when most/all patches fail the predicate
 - previously they would all be commuted past each other. Now we accumulate them
 until a patch that passes the predicate comes along, and then only commute as
 necessary.
 
] 
[don't link into the manual, since this is fragile.
David Roundy <droundy at darcs.net>**20081101135932
 Ignore-this: 4d1f7f6ddaa3b9f215e254faf76b59ae
 The trouble is that these sections can change pretty easily, and I'd rather
 not have to update the index.html.in when this happens.
] 
[improve front page of http://darcs.net
Eric P. Mangold <teratorn at gmail.com>**20081030014049
 I was a little confused by the wording on the darcs.net front-page.
 Where it says "Originally developed by David Roundy" that made me
 think that Mr. Roundy might not be involved in development anymore.
 The kind folks on IRC set me straight, however :)
 
 So I improved the wording in a couple places and added a section that
 says a few things about the current state of the development
 community.
] 
[revert hashing change that ignores all but last 20 bytes of each line.
David Roundy <droundy at darcs.net>**20081031170230
 Ignore-this: f97249571125d049bed9f3ae1d0a10a0
] 
[resolve conflicts
David Roundy <droundy at darcs.net>**20081030182815
 Ignore-this: f874ea6f34ddc5a745504b4ba988840d
] 
[Unused import police
Eric Kow <eric.kow at gmail.com>**20081026080744] 
[fixup ByteString compatibility for sake of ghc6.6
Jason Dagit <dagit at codersbase.com>**20081028033305] 
[clean up module imports after ByteString changes
Jason Dagit <dagit at codersbase.com>**20081027001651] 
[small merges
Don Stewart <dons at galois.com>**20081027000055
 Ignore-this: 4c5dc100a17c5cbad4b4d24b71877cc1
] 
[Remove all references  to FastPackedString the module. Gone
Don Stewart <dons at galois.com>**20081026235917
 Ignore-this: 2dd5679d9b33bed79c180a75fcd8c7a0
] 
[remove last references to the PackedString type
Don Stewart <dons at galois.com>**20081026235151
 Ignore-this: fe2c138c24305f85888d62a65b0c7c8
] 
[clean up module imports after ByteString changes
Jason Dagit <dagit at codersbase.com>**20081026234541] 
[remove dead code
Don Stewart <dons at galois.com>**20081026232258
 Ignore-this: 56cc675677fad6a10a77dc53b2f4f44f
] 
[remove all references to unsafeWithCStringLenPS
Don Stewart <dons at galois.com>**20081026232045
 Ignore-this: 1819ebbbcbf1d248c7e1715b5125ba97
] 
[remove all references to mallocForeignPtr
Don Stewart <dons at galois.com>**20081026231851
 Ignore-this: 59fa33be88801523d5e47c5eef85e973
] 
[remove all references to createPS
Don Stewart <dons at galois.com>**20081026231230
 Ignore-this: 619c8813cded454c829647ee89e37e4e
] 
[and in tests
Don Stewart <dons at galois.com>**20081026231013
 Ignore-this: 67fd51ccf6a8f0d3517788a115d87428
] 
[remove all traces of packString
Don Stewart <dons at galois.com>**20081026230403
 Ignore-this: 7ee645d5f5bddbd0265411e7868ca0f5
] 
[remove all references to breakOnPS
Don Stewart <dons at galois.com>**20081026223727
 Ignore-this: 60f6808d17ab581316bbe2bf9a0f8de2
] 
[remove all references to spanEndPS
Don Stewart <dons at galois.com>**20081026223054
 Ignore-this: 9cea6233b902f5a4652dae9e9759895b
] 
[remove all references to indexPSW (only ever used as 'head')
Don Stewart <dons at galois.com>**20081026222913
 Ignore-this: 7a25b911d1b320eb7ec3396eb1fff75d
] 
[remove all references to generatePS
Don Stewart <dons at galois.com>**20081026222613
 Ignore-this: 3673c57fa1eff4e1cf798c59fc967229
] 
[clean up imports in other modules after ByteString refactorings
Jason Dagit <dagit at codersbase.com>**20081026201508] 
[Remove all references to dropWhilePS, clean up silly_lex while I'm here
Don Stewart <dons at galois.com>**20081026195652
 Ignore-this: 29abf7de4539ae4957b70283df4dcf23
] 
[pure haskell implementation of breakSpace, from Data.ByteString
Don Stewart <dons at galois.com>**20081026193729
 Ignore-this: cbedb39a15ad4626f2561aa22f73a370
] 
[remove fpstring.c:first_nonwhite, in favor of pure haskell implementation
Don Stewart <dons at galois.com>**20081026192211
 Ignore-this: 7780e5f310a5785ffa3df332ec68972a
 
 fpstring.c defined first_nonwhite, also provided via
 Data.ByteString.Char8, however darcs uses a restricted definition of
 ISSPACE, so we just port that over.
 
] 
[remove all references to dropPS
Don Stewart <dons at galois.com>**20081026183226
 Ignore-this: c75ac479bf0a9c2b37e5e5d511950940
] 
[remove all references to concatPS
Don Stewart <dons at galois.com>**20081026182717
 Ignore-this: 4b40da286f924625c4a2f6d71df1d3f6
] 
[remove all references to findLastPS
Don Stewart <dons at galois.com>**20081026182232
 Ignore-this: 7ff10d123f12bd12c76d5eff857367f0
] 
[remove all references to breakPS
Don Stewart <dons at galois.com>**20081026182122
 Ignore-this: 7e878cd0c3066b2a51a7f7df11f2c498
] 
[remove all references to findPS
Don Stewart <dons at galois.com>**20081026181842
 Ignore-this: 6ac31cb52cc1d63f4339177b21b853bc
] 
[remove all references to packWords
Don Stewart <dons at galois.com>**20081026181624
 Ignore-this: 91cff1fa32b422143d3dac87e5560329
] 
[remove all references to takePS
Don Stewart <dons at galois.com>**20081026181041
 Ignore-this: 122b854846d68e8659c8b6ab3b3ce3e2
] 
[Remove appendPS, dead code
Don Stewart <dons at galois.com>**20081026180523
 Ignore-this: 174c217104948ac658bac1e14b72b803
] 
[remove all references to initPS
Don Stewart <dons at galois.com>**20081026180435
 Ignore-this: 465e6980cd79e5d920f418ac471256b6
] 
[remove all references to tailPS
Don Stewart <dons at galois.com>**20081026175536
 Ignore-this: 845990c011fb3236826d62a45e0d96bc
] 
[remove all references to nilPS
Don Stewart <dons at galois.com>**20081026174711
 Ignore-this: 9a9261c1cef9028614734f4f363e33f5
] 
[remove writeFilePS usage from HTTP.hs
Ganesh Sittampalam <ganesh at earth.li>**20081026102421] 
[Remove all references to unpackPS
Don Stewart <dons at galois.com>**20081026025309
 Ignore-this: 839f30a7611668a1f158305f84f84751
] 
[optimise use of unpack in Format.lhs
Don Stewart <dons at galois.com>**20081026022702
 Ignore-this: ac72de83c3d453bab443089e85d2cf9a
] 
[Optimize inefficiency when unpacking string for tok replace
Don Stewart <dons at galois.com>**20081026022129
 Ignore-this: 26ede7c95f78e5b6c6b19c5e1c01127b
] 
[Optimize hunk handling not to needlessly unpack bytestrings
Don Stewart <dons at galois.com>**20081026021727
 Ignore-this: 93866b5b7a2d0b0dc7b98a1fbfd2b58f
] 
[Don't unpack the same bytestring twice in two lines
Don Stewart <dons at galois.com>**20081026021141
 Ignore-this: 7e673b449491eb467a21446048c17f50
] 
[Optimize ignore_junk to not unpack the bytestring
Don Stewart <dons at galois.com>**20081026020635
 Ignore-this: 3ab0d287de52b89434650f4a53bc0719
] 
[remove nullPS from Darcs.Patch.Test
Jason Dagit <dagit at codersbase.com>**20081026020430] 
[Remove all references to nullPS
Don Stewart <dons at galois.com>**20081026015325
 Ignore-this: 4ecc1ab4ca8f16a15090faaeb2cc063b
] 
[remove all references to headPS
Don Stewart <dons at galois.com>**20081026013626
 Ignore-this: d0e026a45ea9a16ff4f7301755caa9f4
] 
[make BC.last depend on GADT_WITNESSES in Diff.lhs
Jason Dagit <dagit at codersbase.com>**20081026013303] 
[remove all references to splitAtPS
Don Stewart <dons at galois.com>**20081026012749
 Ignore-this: f86b7f5fab8da6af5f6539510f068627
] 
[More explict import lists
Don Stewart <dons at galois.com>**20081026012036
 Ignore-this: a47ccb6c58a2a1d9c80974cfa832b05f
] 
[explicit import lists
Don Stewart <dons at galois.com>**20081026011834
 Ignore-this: de2b0cb8b1c3a7f102cb39a3c2822f2c
] 
[remove all referenes to lengthPS
Don Stewart <dons at galois.com>**20081026011551
 Ignore-this: 8c027d1510415cc3e6840162bce88d85
] 
[replace reimplementation of c2w with bytestring's c2w
Don Stewart <dons at galois.com>**20081026005846
 Ignore-this: 7be4c2d3e34b5ad1a4d1f89eedd79c73
] 
[remove references to indexPS
Don Stewart <dons at galois.com>**20081026005455
 Ignore-this: 868c3fa12869acf0ea3b7ddcd4504e16
] 
[remove references to lastPS
Don Stewart <dons at galois.com>**20081026004952
 Ignore-this: d374d4f54aedc9d9dcd8928793658c11
] 
[remove references anyPS
Don Stewart <dons at galois.com>**20081026004428
 Ignore-this: 41ae735dfca929b453d589d2e0494791
] 
[remove references to hGetPS
Don Stewart <dons at galois.com>**20081026004032
 Ignore-this: beab20131ee0453a7b8b44e3bf7391a3
] 
[remove references to hPutPS
Don Stewart <dons at galois.com>**20081026003558
 Ignore-this: 4c56823bf1cce0da3ce0f9b27bc2058
] 
[Remove all references to hGetContentsPS
Don Stewart <dons at galois.com>**20081026002401
 Ignore-this: d97a8ad95f0bf3de561b7ad081c42a10
] 
[remove references to readFilePS
Don Stewart <dons at galois.com>**20081026001942
 Ignore-this: c45ef1b82c5ba8243269b07e3b59ec49
] 
[Remove references to writeFilePS
Don Stewart <dons at galois.com>**20081026000739
 Ignore-this: de68ac72bd06f21d0f8634490c95cd71
] 
[Remove splitPS in favor of its definition
Don Stewart <dons at galois.com>**20081025235851
 Ignore-this: def77f09fee27b7224d9935ab9dcb6d0
] 
[Remove OldFastPackedString entirely
Don Stewart <dons at galois.com>**20081025234228
 Ignore-this: aa5fdf008176143575de7a966fb43874
] 
[just hash the last 20 characters in LCS
Ganesh Sittampalam <ganesh at earth.li>**20081025122331] 
[TAG unstable before bytestring patches.
David Roundy <droundy at darcs.net>**20081030175727
 Ignore-this: 8af46543d274b193a6904883c9608559
] 
[enable unbox-strict-fields in Setup.hs.
David Roundy <droundy at darcs.net>**20081030171955
 Ignore-this: d4c159ff88f27fcac93c0d82e8b3d872
] 
[Fix issue1183
Thorkil Naur <naur at post11.tele.dk>**20081030075600] 
[make default be to --run-posthook and --run-prehook
David Roundy <droundy at darcs.net>**20081030175508
 Ignore-this: 4127807efc9bfb4b400968c09f7ed5cb
] 
[changes to work with latest franchise.
David Roundy <droundy at darcs.net>**20081030165302
 Ignore-this: 59d90ba687d1116bc29c8dc38e961e03
] 
[make a few changes to the sporadically-failing init.sh script.
David Roundy <droundy at darcs.net>**20081029162332
 Ignore-this: 8d95790d7460ded751a841005f32aa4e
 I can't get this test to repeatably fail, but it fails one in four
 times, perhaps.  This change just tries to remove the danger that the
 older temp1 directory is somehow living on to affect the second test.
] 
[rename smart_diff to unsafeDiff to reflect its unsafeness.
David Roundy <droundy at darcs.net>**20081029162308
 Ignore-this: 745e172c1e32c4649f7805699ced2253
] 
[Add (failing) test for issue1162
Thorkil Naur <naur at post11.tele.dk>**20081029143317] 
[replace insanely low level version of ifHeadThenTail with uncons
Don Stewart <dons at galois.com>**20081026231745
 Ignore-this: 5e5e344762762b49da5f4bf835a4a869
] 
[Remove dead code: reversePS
Don Stewart <dons at galois.com>**20081026002812
 Ignore-this: 9b8b888551f3c44f59bfb83c37beec69
] 
[add exception to haskell_policy.sh for Data.ByteString.readFile
Jason Dagit <dagit at codersbase.com>**20081026004929] 
[add a test for whatsnew given a file argument.
David Roundy <droundy at darcs.net>**20081029022157
 Ignore-this: e207c8229e4fdeb3df1df9d67b65f1ad
] 
[Fixup LANGUAGE pragmas for the sake of ghc6.6
Jason Dagit <dagit at codersbase.com>**20081028015457] 
[Add -fno-warn-name-shadowing
Don Stewart <dons at galois.com>**20081025231134] 
[Add LANGUAGE pragmas for explicit language extensions
Don Stewart <dons at galois.com>**20081025230140] 
[Add LANGUAGE extensions for explicit language extensions
Don Stewart <dons at galois.com>**20081025225922] 
[Add LANGUAGE pragmas for explicit language extensions
Don Stewart <dons at galois.com>**20081025225900] 
[Add LANGUAGE pragmas for explicit language extensions
Don Stewart <dons at galois.com>**20081025225709] 
[use fmap in Darcs.Utils
Jason Dagit <dagit at codersbase.com>**20081028065217
 Ignore-this: 326fcc3a02607e3fd7b65a5e39468514
] 
[use fmap in DateMatcher
Jason Dagit <dagit at codersbase.com>**20081028065038
 Ignore-this: a5a60e0ce67713b48aa7813cf46e41f3
] 
[use fmap in list_authors.hs
Jason Dagit <dagit at codersbase.com>**20081028064846
 Ignore-this: 81c1321396a1a6f46b17899bcc60925
] 
[add one more Functor instance
Jason Dagit <dagit at codersbase.com>**20081028063511
 Ignore-this: 90f8762fcb3abab8209084a1d07c9bc4
] 
[add more Functor instances
Jason Dagit <dagit at codersbase.com>**20081028063419
 Ignore-this: a248acfbae7091e84ab783920bac61ec
] 
[add some Functor instances
Jason Dagit <dagit at codersbase.com>**20081028063336
 Ignore-this: 9f27cd23a8a10bf8e0205c1d6e9f4a7c
] 
[use fmap in Compat
Jason Dagit <dagit at codersbase.com>**20081028060001
 Ignore-this: 2c8082a0d040b5834f28b542f66a61f4
] 
[use fmap in Commands.Tag
Jason Dagit <dagit at codersbase.com>**20081028055832
 Ignore-this: c05385bac706f19e409d6816adaa48ca
] 
[use fmap in Commands.Replace
Jason Dagit <dagit at codersbase.com>**20081028055646
 Ignore-this: 112359c5dbcc9a4a5a0a371861c3b00d
] 
[use fmap in Commands.Optimize
Jason Dagit <dagit at codersbase.com>**20081028055538
 Ignore-this: 762297167e5b79f3a2cddea16c405ad8
] 
[use fmap in Commands.Diff
Jason Dagit <dagit at codersbase.com>**20081028055417
 Ignore-this: fe413212ee228f5336352875c794d661
] 
[use fmap in Commands.Add
Jason Dagit <dagit at codersbase.com>**20081028055224
 Ignore-this: a9c7999d262b71aae8925941bc48fbc9
] 
[use fmap in ArgumentDefaults
Jason Dagit <dagit at codersbase.com>**20081028055040
 Ignore-this: 9b24af71ff643fbc883e8bf5c499c6d8
] 
[add a comment
Ganesh Sittampalam <ganesh at earth.li>**20081026203520] 
[add some haddock to get_slurp_context_*
Ganesh Sittampalam <ganesh at earth.li>**20081025150927] 
[test for darcs changes and unrecorded moves
Benedikt Schmidt <benedikt.schmidt at inf.ethz.ch>**20081027204618
 Ignore-this: ebbb0d8c2c130733cb82844537bfe3ff
] 
[simplify TouchesFiles.look_touch
Benedikt Schmidt <benedikt.schmidt at inf.ethz.ch>**20081025195150] 
[remove export of read_pending.
David Roundy <droundy at darcs.net>**20081028014338
 Ignore-this: 3d66fe67d0630eca0050540863d27536
 This is an ugly function that is hard to use correctly, so it seems best
 not to export it.
] 
[cut unused argument to with_selected_patch_from_repo.
David Roundy <droundy at darcs.net>**20081028014244
 Ignore-this: 538ce58d90829bfdc8050c5fa61382af
] 
["make continuous" or "make ci" rebuilds darcs whenever files change 
Simon Michael <simon at joyful.com>**20081027070341
 Ignore-this: 10d7c3097310b08b93c3e70fadda9005
 Leave this running in a side window, or in a emacs
 compilation/comint-minor-mode buffer, to get rapid feedback from GHC as
 you edit code. Useful! Requires a patched version of searchpath, see
 makefile.
] 
[resolve issue0839: enable global cache by default
Simon Michael <simon at joyful.com>**20081026225004
 Ignore-this: 50deab104a57c707bfaf4e00a00c69cb
] 
[refactor get_global, make it more cross-platform
Simon Michael <simon at joyful.com>**20081026220354
 Ignore-this: 1d7f456379a3ea9fe08598e96fe700e6
 get_global fetches global preferences from the user's ~/.darcs directory.
 This patch uses the more portable getAppUserDataDirectory, so global
 prefs will work on windows without requiring a HOME environment
 variable, and will be stored in the standard windows app data dir
 (eg C:/Documents And Settings/user/Application Data/darcs).
 Cf http://hackage.haskell.org/trac/ghc/ticket/1838 .
 It also reduces the use of error-hiding catchall.
] 
[explain global cache a little more clearly
Simon Michael <simon at joyful.com>**20081026171125
 Ignore-this: 73b47bfa1508641d044a0d2bf2e6405e
] 
[resolve issue1046: record nothing when only a non-repo file is specified
Simon Michael <simon at joyful.com>**20081026075251
 Ignore-this: efa65ddd1adaa6a8ef4a1c390e70e408
] 
[Fix echo handling in windows scripts.
Salvatore Insalaco <kirby81 at gmail.com>**20081026070632
 Ignore-this: ef17af01b90f61dc8f34c52997f52a25
] 
[fix bug in haddock docs.
David Roundy <droundy at darcs.net>**20081027170550
 Ignore-this: bf6386afe60b95bc483a6a93713e0a82
] 
[accumulate hash strictly in hash/hashPS
Ganesh Sittampalam <ganesh at earth.li>**20081025121857] 
[remove trailing whitespace
Ganesh Sittampalam <ganesh at earth.li>**20080830014910] 
[add a few comments/update annotate docs slightly
Ganesh Sittampalam <ganesh at earth.li>**20081025103006] 
[resolve issue395: warn the user when the patch name looks like a command line option
tux_rocker at reinier.de**20081024212022] 
[Fix newline endings on Windows for HTTP module.
Salvatore Insalaco <kirby81 at gmail.com>**20081025120900
 Ignore-this: f44ed6b1127d1ecc686353d4179c2b62
] 
[resolve issue1023: bracket file writing to prevent windows permission errors.
Salvatore Insalaco <kirby81 at gmail.com>**20081025134220
 Ignore-this: b457533b264b97952a52b8ab65d3de0b
] 
[resolve issue1000: warn when tags are too short (length name <2)
Christian Kellerman <Christian.Kellermann at nefkom.net>**20081025203101] 
[$DARCS is no longer set by shell_harness.
Trent W. Buck <trentbuck at gmail.com>**20081024093255] 
[Cleanup after others before running tests.
Trent W. Buck <trentbuck at gmail.com>**20081024062308
 When running tests in non-reverse order, these were failing.
] 
[resolve issue774: fix character echo on win32.
Salvatore Insalaco <kirby81 at gmail.com>**20081025145557
 Ignore-this: 1e761eca2afd4b11e717fb10ff2841b3
] 
[resolve issue1051: Allow --dry-run --interactive
florent.becker at ens-lyon.org**20081024163636
 Ignore-this: 31efa8f7d63fa97050780ba206db9642
] 
[franchise now has optimization-disabling built in.
David Roundy <droundy at darcs.net>**20081024185501
 Ignore-this: b0c123e8a119f5df572291ebdb662cdb
] 
[making Darcs.Patch.Set comment into haddock
Florent Becker <florent.becker at ens-lyon.org>**20081022124230
 Ignore-this: ca2a6273ef5f38faf07141d969bc45d8
 
 With questions about the semantics of PatchSets.
] 
[fix documentation bug.
David Roundy <droundy at darcs.net>**20081024183357
 Ignore-this: ce6c4b16d613dbc8d7874c6519b9a808
] 
[Haddock typoes and formatting in Darcs.Match
florent.becker at ens-lyon.org**20081024110015
 Ignore-this: 95747c855b220f6c761435c92c672855
] 
[enable the use of $SENDMAIL for darcs send
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081024112941
 Ignore-this: 731ff4dbc8076fb417f39b17a5a2addb
] 
[resolve issue628: reuse the long comment code from Darcs.record
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081024133002
 Ignore-this: 36de69ba67d480651715c9296df5b90a
] 
[code cleanup
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081024131904] 
[Canonize Christian Kellermann
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081024135228
 Ignore-this: af44e8b80738c98bafe30bb5e15ef5ba
] 
[Clarify darcs transfer-mode debug message.
Eric Kow <eric.kow at gmail.com>**20081024091824
 Ignore-this: 502677248b4bee41a6d319c84d661a55
] 
[Use ANNOUNCE_GHC convention for .depend.
Trent W. Buck <trentbuck at gmail.com>**20081024024444] 
[Use $@ to avoid repetition in makefile.
Trent W. Buck <trentbuck at gmail.com>**20081023023447] 
[improve test_unit performance with QuickCheck 2.1
tux_rocker at reinier.de**20081023205622] 
[Remove unused functions just_dir and drop_paths from FilePathUtils.
Eric Kow <eric.kow at gmail.com>**20081023202557
 Ignore-this: b2c87df3986ef1c7b2cd682287e4749b
] 
[Replace just_dir with System.FilePath.takeFileName.
Eric Kow <eric.kow at gmail.com>**20081023202009
 Ignore-this: 294cdde35f8656e98ff30052fe41600
] 
[Appease GHC by removing unused import.
Trent W. Buck <trentbuck at gmail.com>**20081023074144] 
[Typo.
Trent W. Buck <trentbuck at gmail.com>**20081023073644] 
[Haddock documentation for Darcs.Patch.Match
Florent Becker <florent.becker at ens-lyon.org>**20081022125326
 Ignore-this: b020f089363e6c0a20fde963e071f112
] 
[haddock documentation and better names for Darcs.Match
Florent Becker <florent.becker at ens-lyon.org>**20081023141924
 Ignore-this: 27ef66ea7f77ff38d92d224b316b591c
] 
[remove duplicate Darcs.Match.doesnt_not_match
Florent Becker <florent.becker at ens-lyon.org>**20081023134139
 Ignore-this: d2af9cbfc1c3a0f3daa84de5d7ba481d
] 
[Do not use literate Haskell for Darcs.Population and PopulationData
Eric Kow <eric.kow at gmail.com>**20081023151214
 Ignore-this: a1d30b874d011b17640119373ce1f71f
] 
[Convert Darcs.Population and Darcs.PopulationData comments into haddock.
Eric Kow <eric.kow at gmail.com>**20081023151058
 Ignore-this: cdfbc7b827e4f4309f4c52999ce7b3f3
 These were meant to be API documentation.
] 
[Remove redundant nullPI
Eric Kow <eric.kow at gmail.com>**20081023144058
 Ignore-this: f61f60dfe29657872d555f9dc7c6e02e
] 
[Fix placement of ChangeLog signatures.
Eric Kow <eric.kow at gmail.com>**20081023143555
 Ignore-this: a01bf584d8a0259b45f81807b7b91942
] 
[Make threading mandatory in darcs.cabal.in.
Eric Kow <eric.kow at gmail.com>**20081023142817
 Ignore-this: d9681fe2e2e97f594d2253df4de182d8
] 
[Remove Changelog.README.
Eric Kow <eric.kow at gmail.com>**20081023122647
 Ignore-this: 467216ef492df50ecb568e80380927cb
 We no longer generate the ChangeLog automatically.
] 
[Style tweak in Darcs.Utils.firstNotBlank
Eric Kow <eric.kow at gmail.com>**20081022130841
 Ignore-this: eed1e68813f891f5e90fb61f89bcde9b
] 
[Minor Haskell style refactor.
Eric Kow <eric.kow at gmail.com>**20081022130825
 Ignore-this: ee6b29b703b6315bcc88291de30babde
] 
[make releaseVersion explicitly depend on the version, not Setup.hs.
David Roundy <droundy at darcs.net>**20081022211347
 Ignore-this: acebecb3d11941c6c81d972c9ebb127a
] 
[remove unneeded cd .. from Setup.hs.
David Roundy <droundy at darcs.net>**20081022143623
 Ignore-this: 4d51f5a20c038b562028b8972e33f66c
] 
[change setup.hs to Setup.hs in Setup.hs.
David Roundy <droundy at darcs.net>**20081022210724
 Ignore-this: 52a91ee40dfcbea225c6bfa0ebca746e
] 
[cut unused amInRepo from Setup.hs.
David Roundy <droundy at darcs.net>**20081022185639
 Ignore-this: 242baf8f224e86109a2613febe53e076
] 
[Do not recompute ChangeLog files at all.
Eric Kow <eric.kow at gmail.com>**20081021104308
 Ignore-this: 55d1494237fa59b1cfa567781fb16f3f
] 
[Do not recompute ChangeLog (franchise).
Eric Kow <eric.kow at gmail.com>**20081021104020
 Ignore-this: 103adab99f27a6c41be5000c4337551d
] 
[Hard-code darcs-2.1.0 ChangeLog entries.
Eric Kow <eric.kow at gmail.com>**20081021103725
 Ignore-this: b5e03d213c5ed90092362b5ebe3fc0b
] 
[Rollback accidentally applied darcs.cabal patch.
Eric Kow <eric.kow at gmail.com>**20081022150750
 Ignore-this: c3fae9a61e09d2e20cb3da9a7dfa08ff
 
 rolling back:
 
 Sun Oct 19 12:07:35 BST 2008  Eric Kow <eric.kow at gmail.com>
   * Add cabal file modified from Petr and Gwern's cabalisation branch.
] 
[Rename tests/template so it doesn't get deleted by make clean.
Eric Kow <eric.kow at gmail.com>**20081022105753
 Ignore-this: 4e3688d7f9de8f61cb77a081faf194c2
] 
[Allow empty matchers in Patch.Match
Florent Becker <florent.becker at ens-lyon.org>**20081022131118
 Ignore-this: 2128e8001ed23aa200aec125147a8852
 This allows one to put "amend-record   match 'author me'"
 in their defaults, and amend other people's patches using
 --match ''
] 
[Avoid using ls to get test files (makefile).
Eric Kow <eric.kow at gmail.com>**20081022104632
 Ignore-this: dd4132179155ea27190f943c4cb35b08
 Thanks to Trent Buck!
] 
[Simplify test targets in makefile.
Eric Kow <eric.kow at gmail.com>**20081022104120
 Ignore-this: 6b7f13facff53107214ebbe53deae8dd
 Do not use a discard filter.  Instead, just let the individual tests determine
 if they should run or not.
] 
[Simplify darcs.cabal.in and add more precise dependencies.
Eric Kow <eric.kow at gmail.com>**20081022094015
 Ignore-this: ccf1a93e98f91a5e6175777ff4144516
 This removes any information from the cabal file which is redundant
 with franchise, reduces the number of choices you can make (haskeline
 and terminfo now mandatory) and adds more precise package dependency
 information.
] 
[Simplify author field in darcs.cabal.in.
Eric Kow <eric.kow at gmail.com>**20081021131711
 Ignore-this: b528eca77d99c1827f704f1ac593f546
 I think the et al. confuses my mail client.
] 
[don't install franchise while testing.
David Roundy <droundy at darcs.net>**20081021212101
 Ignore-this: aef13450f0d8b110dca782c789ec11e3
] 
[make pull work with multiple --repodirs.
David Roundy <droundy at darcs.net>**20081021181317
 Ignore-this: 8741d0b7356079cb828d70d7042d0922
] 
[call $(MAKE) instead of 'make', because GNUMake is not called 'make' everywhere
Chistian Kellermann <Christian.Kellermann at nefkom.net>**20081021123122] 
[Add a darcs-nightly target to the makefile.
Eric Kow <eric.kow at gmail.com>**20081020214102
 Ignore-this: bb2bdd61ac32b241ddf9498a8f08987b
 This attaches a version number with patch count to the darcs binary.
 It is meant for use by an automatic nightly build script.
] 
[Add cabal file modified from Petr and Gwern's cabalisation branch.
Eric Kow <eric.kow at gmail.com>**20081019110735
 I have updated the version number, simplified the text, and removed a
 couple of files that are generated by their Setup.lhs
] 
[prefer recursive acronymn to embarrassing one
David Roundy <droundy at darcs.net>**20081021113728
 Ignore-this: 55330f8d447f308db408aeea5065f95e
] 
[Create the darcs.cabal file in franchise.
Eric Kow <eric.kow at gmail.com>**20081021095925
 Ignore-this: db1dc72b5589178c521c1daee8b32f63
] 
[Add a template for building the darcs.cabal file.
Eric Kow <eric.kow at gmail.com>**20081021095743
 Ignore-this: 51eaff43be4eec36dcdbd238fb317931
 This is slightly modified from Gwern Branwern's and Petr Rockai's
 cabalisation work.
] 
[resolve issue784: fix file handle leak and check for exceptions on process running.
Salvatore Insalaco <kirby81 at gmail.com>**20081019065904] 
[Reenable some tests under Windows now that we are ignoring setCooked errors.
Eric Kow <eric.kow at gmail.com>**20081014072549] 
[avoid needless work in Setup.hs
David Roundy <droundy at darcs.net>**20081020200931
 Ignore-this: 52f3e0416edfd888d926a01ced7b6714
] 
[enable franchise build tests under wine 1.0.
David Roundy <droundy at darcs.net>**20081020182156
 Ignore-this: 2b6ea78bb8ae5e432c4823019ef6e589
] 
[enable test of franchise build.
David Roundy <droundy at darcs.net>**20081020172147
 Ignore-this: bf5e21492195919296450851c07789c2
] 
[only build ChangeLog if we're in a darcs repository.
David Roundy <droundy at darcs.net>**20081020143550
 Ignore-this: e79c7ca9ca2525ff4489a4c6926cbcaa
] 
[remove dependence on haskell98 package from preproc.hs and make_changelog.hs.
David Roundy <droundy at darcs.net>**20081019220256
 Ignore-this: 2bda2dcb172e3c815bd5a2c068a064e2
] 
[we don't need to announce we're on windows, just log it.
David Roundy <droundy at darcs.net>**20081019213320
 Ignore-this: 23d4ca75eb60dcf4ef52123a5cb6c4eb
] 
[reorganize and comment ./Setup.hs flags.
David Roundy <droundy at darcs.net>**20081019211118
 Ignore-this: 954c53a14e398fc0e037c8a1371bd598
] 
[simplify checking for windows using franchise.
David Roundy <droundy at darcs.net>**20081019211048
 Ignore-this: 37e425429c107b80776dc3c28ca7c544
] 
[test for endianness using franchise.
David Roundy <droundy at darcs.net>**20081018213539
 Ignore-this: 9c418723de4ae70bc83cd0e6bc9b1dfd
] 
[fix test-franchise-build.sh to work with renamed Setup.hs.
David Roundy <droundy at darcs.net>**20081018183619
 Ignore-this: 7b810e0be231c6088e5fc0cde9533192
] 
[Capitalise Setup.hs for consistency.
Eric Kow <eric.kow at gmail.com>**20081018152001] 
[Add import list for System.Process in Exec.lhs
J. Garrett Morris <jgmorris at cecs.pdx.edu>**20081017195920] 
[add CURSES test to setup.hs.
David Roundy <droundy at darcs.net>**20081017164048
 Ignore-this: 1262a90b249d39c916e8e36bfdb6b63b
] 
[half-resolve issue1138: make it possible in setup.hs to not use -Werror.
David Roundy <droundy at darcs.net>**20081016201336
 Ignore-this: 4f4f31cf24e25774a8217c26813ddbd3
] 
[use unlessFlag in setup.hs to simplify haskeline check.
David Roundy <droundy at darcs.net>**20081016200649
 Ignore-this: 5a2b4ced454b56180f4b9422ff03c41f
] 
[Use command_control_list directly in run_the_command.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081015181141
 Ignore-this: 8c4fb4d8602638648ba4afc6d2e9eeb8
] 
[Fix imports in Darcs.ArgumentDefaults.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081015180629
 Ignore-this: e57422b5a224179b7b1431de262bf8ea
] 
[Refactor Darcs.ArgumentDefaults to use command_control_list directly.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081015175540
 Ignore-this: c832abf95dc438a3b71ed2b9a84cc413
] 
[Refactor Darcs.Commands, move command run code to Darcs.RunCommand.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081015174031
 Ignore-this: 3b8c32701f62f3d7b1e0834eaa406dc5
] 
[Remove unused extended_usage.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081015142503
 Ignore-this: 1d86f17d2bc3ec0c004e3cd1016d303
] 
[Use help_cmd instead of usage in main.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081015134236
 Ignore-this: fced70e6714d5294783bbe98f0d81e47
] 
[Use help_cmd directly in main.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081015132942
 Ignore-this: 8ded4d8a8cf51f862794a78eea4ef137
] 
[Refactor 'darcs --commands' to list_available_commands.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081015125827
 Ignore-this: 114b79a90e6446169dd87ff8591bc6ff
] 
[fix Submitting patches to darcs with respect to send -u
Thorkil Naur <naur at post11.tele.dk>**20081015073751] 
[add haskeline test to setup.hs.
David Roundy <droundy at darcs.net>**20081014201513
 Ignore-this: 1472b07696d83f70bf8ad8f7b3d5cf1
] 
[finished cleanup of default_boring entries
benjamin.franksen at bessy.de**20081014100840
 Ignore-this: e5ad0567cabe64142bf3876c2d73535e
] 
[clean up setup.hs by using lookForModule instead of catching exceptions.
David Roundy <droundy at darcs.net>**20081014160159
 Ignore-this: 8f5c7bd5be2ca099fda5bd52d35dc429
] 
[simplify pull_many_files.sh.
David Roundy <droundy at darcs.net>**20081014165155
 Ignore-this: 9f7a7cc5b02a9d51810149a8875e987f
] 
[add test for siginfo.h (which shows up on SunOS maybe?)
David Roundy <droundy at darcs.net>**20081014154814
 Ignore-this: 72d32ff1b4b57dbf75eab937be5a0e22
] 
[Use fgrep in printer.sh test (more portable than grep -F)
Eric Kow <eric.kow at gmail.com>**20081014135138] 
[have makefile make hspwd rather than shell_harness.
David Roundy <droundy at darcs.net>**20081013192943
 Ignore-this: 31008f1993c5a2281b229b9c5cdca66c
 I think there was a problem that make -j check could cause ghc --make
 to be run simultaneously.  Now it's run just once, before running any
 tests.
] 
[slightly hokey approach to solving pwd problem.
David Roundy <droundy at darcs.net>**20081013184209
 Ignore-this: 762f0339c99f1d4a529ab031ad353cd0
 I think this may help the Solaris/BSD test portability issue, and it's
 also (I think) a slightly cleaner alternative to the portable_pwd
 hack.
] 
[clean up test-franchise-build.sh a bit more...
David Roundy <droundy at darcs.net>**20081013175711
 Ignore-this: 619fff6a0be4bc8172cd8c39a5591079
] 
[clean up test-franchise-build.sh
David Roundy <droundy at darcs.net>**20081013162935
 Ignore-this: a1bd36f8bb8d3d75519abcc8d8388a99
 Among other infelicities, it wasn't using a clean franchise build
 except under wine.
] 
[add test that timestamps are properly set.
David Roundy <droundy at darcs.net>**20081013152933
 Ignore-this: caf36b9fff70f9a44b0f35078f3a5aee
] 
[on windows, try renameFile before deleting target file.
David Roundy <droundy at darcs.net>**20081010204009
 Ignore-this: 6946caec86d1c7177510baf62e2ed275
 The trouble was that if we were renaming a file to itself, we ended up
 deleting the file we were renaming (oops!).  It's a stupid hack, but
 that's what we're forced to do when running on windows.  (Note that
 it's potentially hard to determine if two paths describe the same
 file.)
] 
[clean up setup.hs configure a bit.
David Roundy <droundy at darcs.net>**20081010154959
 Ignore-this: 10855edc3e6fda315e03b6ea1c64b05e
 This removes redundant output, and warns when fast http libraries
 aren't found (or no http library at all).
] 
[Remove bashisms and GNUisms
Matthias Kilian <kili at outback.escape.de>**20081012123017
 
 Replace some bashisms and GNUisms by more standards compliant command
 lines, i.e.:
 
 - Don't use `\|' in BREs, since it's undefined according to POSIX.
   Instead just use grep -E with an ERE.
 
 - Don't create "funny" strings with the $'\x01...' bashism but use
   printf(1) instead. Note that this isn't strictly necessary to fix
   printer.sh on non-GNUish systems, but it makes it much simpler to test
   what's going on.
 
 - In test_line(), just use grep -F, and unescape all second arguments
   passed to test_line(). This makes the script much more readable and
   actually fixes it for non-GNUish systems.
] 
[simplify write_default_prefs.
David Roundy <droundy at darcs.net>**20081013121512
 Ignore-this: 4f72699d2406802e771a0ceadc913550
 It's easier to read this way, and shorter, too.
] 
[documented provenance of .tmp_versions and .DS_Store files in default boring
ben.franksen at online.de**20081012220207] 
[Fix curl version in setup.hs.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081012094214
 Ignore-this: 5c44008cb7105279c37a2297e668a070
] 
[cleanup default boring
ben.franksen at online.de**20081011234148
 
 Also turn default_boring and default_binaries into (pure) CAFs.
] 
[avoid re-checking for windows.
David Roundy <droundy at darcs.net>**20081011223905
 Ignore-this: 93c42ffc6b67c6cca803e1dcb18a9497
] 
[setup.hs: don't fail if darcs doesn't yet exist.
David Roundy <droundy at darcs.net>**20081011223824
 Ignore-this: 6d318961490a9343f5e792f2d740fd27
] 
[fix spelling error in setup.hs.
David Roundy <droundy at darcs.net>**20081011205353
 Ignore-this: 6d521f633d74aae8705391eff9489b2c
] 
[make setup.hs look for libcurl
David Roundy <droundy at darcs.net>**20081011195923
 Ignore-this: c9a267184e89b188f074171f8887b3b4
] 
[resolve issue1139: make special cases handle no arguments gracefully.
David Roundy <droundy at darcs.net>**20081011161059
 Ignore-this: 12b17a3940558860dd4caf7bb2619ec7
 I accidentally broke this when refactoring Darcs.Match.  This change
 restores some efficiency when no arguments are given and thus we are
 creating copies of all the files in the repository.
] 
[add tests for issue1139.
David Roundy <droundy at darcs.net>**20081011155324
 Ignore-this: ff50784059114f969fb4657ea5e92025
] 
[Copyright and licensing notes and rationales.
Trent W. Buck <trentbuck at gmail.com>**20081011035925] 
[Document DARCS_KEEP_TMPDIR in manual.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081011115026
 Ignore-this: bd77d5a85fa44094dcd1a867c2a63d2e
] 
[Documentation for DARCS_KEEP_TMPDIR.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081011113042
 Ignore-this: 5e3d6598aed4b681a099341c3ec5017a
] 
[Simplify Darcs.Lock.withDir.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081011110639
 Ignore-this: c01257f9e0fc40c415562448cb52d67d
] 
[Do not remove temporary directories if DARCS_KEEP_TMPDIR environment variable is set.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081011105808
 Ignore-this: 5ea0e206e45dc9be73c29c3bf89643b9
] 
[add new test that optimize --reorder behaves itself on lazy repos.
David Roundy <droundy at darcs.net>**20081010194834
 Ignore-this: 5246d20700c153490da1997caede4369
] 
[give more debug output in test.
David Roundy <droundy at darcs.net>**20081010191209
 Ignore-this: a13ec79ae69f4fe9621ea3c16c9b41d6
] 
[remove reimplementation of zipWith.
David Roundy <droundy at darcs.net>**20081010191051
 Ignore-this: 277f49de513ec84bc6db0b4da6c633b1
] 
[Fix spurious diff and missing cd in diff test.
Eric Kow <eric.kow at gmail.com>**20081008192142
 
 If tests are run in parallel, each instance of the diff test may
 attempt to create temporary directories for use by darcs diff.
 Darcs itself handles this fine; only the test script gets confused
 by the spurious difference that results.
] 
[Help the test harness clean to up after tests.
Eric Kow <eric.kow at gmail.com>**20081008190340
 A typical use case is if a test sets restrictive permissions
 and dies.  Notes:
 * we do this after each test so that one test result doesn't
   contaminate others
 * we explicitly do /not/ remove these temporary directories
   because you may want them around for forensics
] 
[ratify use of readFile in setup.hs
David Roundy <droundy at darcs.net>**20081010150105
 Ignore-this: 92627010ec07e16d271bcc5e7f325c64
] 
[Minor refactor in URL.urlThread.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081010071649
 Ignore-this: 809d750f10adc8073ebe0dd3d432f2a2
] 
[clean up code formatting in Hopefully.
David Roundy <droundy at darcs.net>**20081010144943
 Ignore-this: 65a4dbb17505adbc0c0c615c445a8926
] 
[clean up unused exports in Hopefully.
David Roundy <droundy at darcs.net>**20081010144918
 Ignore-this: a016b66fd64f756295555255b268e80a
] 
[haddock documentation for Hopefully
florent.becker at ens-lyon.org**20081001081315] 
[resolve issue1062: ignore setCooked and setEcho errors.
Eric Kow <eric.kow at gmail.com>**20081010122047
 Ignore-this: 2f8c8710faefdcdb6b224244995a00af
 The issue in question is only about setCooked.
 I presume setEcho can similarly fail.
] 
[add script for testing the franchise build.
David Roundy <droundy at darcs.net>**20081010142711
 Ignore-this: 5aa40dc14c0827b199b9d23d1c7ef27d
 This includes testing the cross-compile to windows using wine.  It's
 part of my scripts that are run on each push to darcs-unstable.
] 
[add a --prompt-for-dependencies to restore the default behaviour
florent.becker at ens-lyon.org**20081010123240
 Ignore-this: 92480353c19dea1b67aff89b933759a2
 Add a --prompt-for-dependencies flag so that one can put
 --dont-prompt-for-dependencies in their defaults file and
 still get back the default behavior when needed.
] 
[eliminate autogeneration of Workaround.hs.
David Roundy <droundy at darcs.net>**20081010134727
 Ignore-this: 784a4b08bab1e22c93f54c1c5cd710f1
] 
[add franchise setup file.
David Roundy <droundy at darcs.net>**20081009203410
 Ignore-this: f1738c7608e6093aa18e808d3d41d000
] 
[add missing createLink to win32/System/Posix/Files.hsc.
David Roundy <droundy at darcs.net>**20081010133500
 Ignore-this: 39d246ab1db8c31f78e0b8362ad05ca3
] 
[make make_changelog default to quiet output.
David Roundy <droundy at darcs.net>**20081009203322
 Ignore-this: 55eba7a68a3c8a5683d23cc99848bd6f
 You can restore previous behavior by defining the VERBOSE environment
 variable.
] 
[remove unused and unneeded Workarounds.
David Roundy <droundy at darcs.net>**20081009194541
 Ignore-this: bca5a7a2444d4ddffeed673cbbfa19ec
] 
[rename lazy-deps to dont-prompt-for-dependencies.
David Roundy <droundy at darcs.net>**20081009171030
 Ignore-this: 78393e28c184c9339c89cecaa852dbc9
] 
[fix incompatibilities with ghc 6.6
David Roundy <droundy at darcs.net>**20081009165845
 Ignore-this: 18739c880a49b976ec151363f4ff9296
] 
[basic tests for --lazy-deps
Florent Becker <florent.becker at ens-lyon.org>**20081008124956
 Ignore-this: 79d8a312943813e9fe5448bc2ab86aa0
] 
[added a --lazy-deps option
Florent Becker <florent.becker at ens-lyon.org>**20081008122224
 Ignore-this: d934868e56f0084067f5aedf0512a533
 This option means that you don't get asked about patches which do not match
 a --match, but are depended upon by a patch that does. These patches will get
 ilently selected. 
 
] 
[refactor of SelectChanges
Florent Becker <florent.becker at ens-lyon.org>**20081008100551
 Ignore-this: e620d36d6e52eb62a2205fe5122d7076
] 
[refactor Match to handle --store-in-memory itself.
David Roundy <droundy at darcs.net>**20081008172748
 Ignore-this: 647c75f78d2d4981e67039ae1b6e96df
 This reduces the amount of duplicate code, at the cost of adding a
 class to Darcs.Match--but at least it isn't exported.
] 
[make writeSlurpy work properly when given "."
David Roundy <droundy at darcs.net>**20081008172207
 Ignore-this: 9d5d077bcdf3a9bb7bfa8477ab9d96d5
 This isn't a bugfix per se, but rather a feature addition.
 writeSlurpy has a "safety feature" that it refuses to overwrite a
 directory, but that safety feature doesn't really apply to the
 directory ".", since "." explicitly means that we want to overwrite
 the directory.
] 
[change a bit of code to accept FilePathLike arguments.
David Roundy <droundy at darcs.net>**20081008172047
 Ignore-this: 87032e071bb49117133d99a90bdfd0e1
 These functions really should expect FileName, and this is an
 incremental move in that direction.
] 
[Implement Commands.Check in terms of Repository.Repair functionality.
me at mornfall.net**20080926144006] 
[Implement Commands.Repair in terms of Repository.Repair functionality.
me at mornfall.net**20080926143919] 
[Export testTentative from Darcs.Repository.
me at mornfall.net**20080926143839] 
[Implement Repository.Repair to provide primitives for check and repair commands.
me at mornfall.net**20080926143721] 
[keep changepref patches from breaking the toSimple optimization.
David Roundy <droundy at darcs.net>**20080924162022
 Ignore-this: 404a4386b048b74dd9afcdde47bc1b11
] 
[rewrite push_coalesce_patch to avoid calls to lengthFL.
David Roundy <droundy at darcs.net>**20080924161517
 Ignore-this: cf746702c3b1e06ab2d400878e20e305
] 
[make various autoconf simplifications.
David Roundy <droundy at darcs.net>**20080923150742
 Ignore-this: 213c53eda0b54c01909c8d15b2a5fdd6
] 
[Restore send-external.sh test.
David Roundy <droundy at darcs.net>**20081009140121
 Ignore-this: 700f9c538033108cac397c1d757fbfc4
] 
[TAG 2.1.0
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081009120532] 
[Rollback send-external test.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081009101224
 I was over-optimistic about pulling this into stable.
 It fails under Windows.
 
 rolling back:
 
 Tue Oct  7 23:28:04 BST 2008  David Roundy <droundy at darcs.net>
   * add test for send --sendmail-command.
 
     A ./tests/send-external.sh
] 
[ChangeLog entries for 2.1.0 (tweaks).
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081009090247] 
[disable tests/issue1078_symlink.sh on Windows
zooko at zooko.com**20081001130248
 (Windows does not have symlinks.)
] 
[use minimum Cachable time in corner case where f/=f' and c/=c'.
David Roundy <droundy at darcs.net>**20081008173804
 Ignore-this: 51f2a68ac4139420bd116e8293cc5cc2
] 
[Bump version number to 2.1.0.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081008203033] 
[Canonize Benjamin Franksen.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081008202951] 
[ChangeLog entries for darcs 2.1.0.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081008202927] 
[add test of Ignore-this functionality.
David Roundy <droundy at darcs.net>**20081008192621
 Ignore-this: 47b7bf225e2997dd78c351763c769738
] 
[warn users if they try to record a change beginning with Ignore-this:.
David Roundy <droundy at darcs.net>**20081008192001
 Ignore-this: 94828726d609f46e384c2ab8091e49db
 Ignore-this: I am testing the functionality of this feature.
] 
[allow users to add their own ignored information to patches.
David Roundy <droundy at darcs.net>**20081008190038
 Ignore-this: fe8294776896b6fdcd489752a29d1069
] 
[haddock documentation for Printer
florent.becker at ens-lyon.org**20081007211959] 
[Use copyFile+renameFile for safe copy in URL.waitNextUrl.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081008134308
 Ignore-this: a9a8889c2b57a5dca2785344cbd18a2f
] 
[remove excessive indentation that made the code very hard to read.
David Roundy <droundy at darcs.net>**20081008173358
 Ignore-this: d93e312c27f0d9a1ef993855c6872257
] 
[When requesting same URL with different cachability choose least cachable.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081008145049
 Ignore-this: fddacf3e706a68c55871f81438d283b
] 
[add simple test of interactive record.
David Roundy <droundy at darcs.net>**20081008172036
 Ignore-this: ebb01acdb477174095e1b66aac230629
] 
[Improve test pull.sh cleanup
Thorkil Naur <naur at post11.tele.dk>**20081008115539] 
[resolve issue1124: Test pull.sh failed when run as root
Thorkil Naur <naur at post11.tele.dk>**20081008114134] 
[Allow dist command to take a tag argument (issue 286).
Stephen Hicks <sdh33 at cornell.edu>**20081006075133
 It should probably be a "match_one_context" instead of a "match_one"
 option type, and then instead of using the "nonranged" matcher, we'd
 use the "patchset" ones (that don't exist yet).  But I couldn't figure
 out how to blend "get_nonrange_match" and "get_one_patchset" in any
 sensical way to get immediate pristine output (and all the more so for
 the "_s" variants).  So for now, contexts are not supported, but it
 would be nice if they were someday.
] 
[clean up RepoPath a bit (removing unused methods from classes).
David Roundy <droundy at darcs.net>**20081008161906
 Ignore-this: 4e69882ebe10f20bb67350b106bd10af
] 
[clean up exportation of SlurmMonad private internals.
David Roundy <droundy at darcs.net>**20081008151758
 Ignore-this: 3763cc352b6f28fa83d8fbe5b1077985
] 
[Optimize clean_hashdir's use of cleanCaches.
Petr Rockai <me at mornfall.net>**20081007191237
 
 We now only ask cleanCaches to look at files we have unlinked and therefore
 might have caused their cached equivalents to drop link-count to 1. Limits
 number of stats to O(n), n = number of cleaned out files.
] 
[Resolve issue1131: accept download requests for different files.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081008113040
 Ignore-this: a45dc4c336f87a61bda3b3c96a8656fa
] 
[add test for send --sendmail-command.
David Roundy <droundy at darcs.net>**20081007222804
 Ignore-this: f84bb43f50a6a07e0cddde739b602e6a
] 
[fixed accidental merge of two lines in default boring; removed pattern for directory "dist"
ben.franksen at online.de**20081007185233] 
[resolve issue1128: must call execSendmail inside body of withOpenTemp
benjamin.franksen at bessy.de**20081007115303] 
[Nicer bug output (it was missing a space).
Eric Kow <eric.kow at gmail.com>**20081007155214] 
[partial haddock documentation of Arguments.lhs
Florent Becker <florent.becker at ens-lyon.org>**20081007131122] 
[haddock documentation for ColorPrinter
florent.becker at ens-lyon.org**20081002203509] 
[disable progress reports when connecting to an ssh server.
David Roundy <droundy at darcs.net>**20081002215119
 Ignore-this: 5088b46719072abcecf0c8c406b8f6d7
] 
[Resolve issue1104: stop progress reports in exec.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081002130157
 Ignore-this: 40bd4c27fd600f6dbcc3f89a62db9104
] 
[Resolve issue1109: stop progress reports in exec_interactive.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081002125805
 Ignore-this: 2938508e82322b41fb9e18db4ee4ceba
] 
[fix tab in Replace that broke haskell-policy.sh test.
David Roundy <droundy at darcs.net>**20081006171036
 Ignore-this: c02875410986f3e2e48da0da19333311
] 
[Restore quiet grep in portable_pwd
Eric Kow <eric.kow at gmail.com>**20081005164212
 Only this time, we use > /dev/null.
] 
[Disable a test that triggers a setCooked failure under Windows.
Eric Kow <eric.kow at gmail.com>**20081005145124] 
[hint about replace --force [issue864]
Tommy Pettersson <ptp at lysator.liu.se>**20081005160640] 
[fix issue966 test, use better temp dir name, and start clean
Tommy Pettersson <ptp at lysator.liu.se>**20081005000117] 
[mv nfs-failure test to the bugs/ folder, since it fails.
David Roundy <droundy at darcs.net>**20081005130112
 Ignore-this: 73c6e55558233f1b56d7ff51f327f454
] 
[further makefile cleanups.
David Roundy <droundy at darcs.net>**20081005124353
 Ignore-this: 8c498e4b793b7049e273d6ac98441256
] 
[Simplify testing in makefile.
Eric Kow <eric.kow at gmail.com>**20081005092416] 
[Revise test documentation to reflect consolidation to shell tests.
Eric Kow <eric.kow at gmail.com>**20081005091131] 
[Remove Perl test harness and convenience copies.
Eric Kow <eric.kow at gmail.com>**20081005090921] 
[Do not use Perl test harness.
Eric Kow <eric.kow at gmail.com>**20081005090903] 
[Hopefully fix issue595 test on Solaris.
Eric Kow <eric.kow at gmail.com>**20081005090156
 
 I'm not entirely clear on what is causing this to fail.
 The basic test is:
   mkdir -p restrictive/liberal
   chmod 111 restrictive
   cd restrictive/liberal
   darcs get
 
 This is apparantly known to fail under Solaris.  The original Perl test
 claims it's because you can't cd into restrictive/liberal, but the shell
 variant seems to manage fine.  In any case, I think this touch file
 check is simpler.
] 
[Translate merging_newlines bug into shell and restore bug context.
Eric Kow <eric.kow at gmail.com>**20081005085031
 
 This used to be a TODO item at the end of the merging_newlines
 test, but when it was moved out, the actions required to set up
 a bug were forgotten.  This patch restores those actions.
] 
[Translate some Perl bugs into shell.
Eric Kow <eric.kow at gmail.com>**20081005084157] 
[fix bug in external.sh translation.
David Roundy <droundy at darcs.net>**20081005122814
 Ignore-this: 1291ebf27ea9c4a04d79c877b0f6f82d
] 
[Translate printer test into shell.
Eric Kow <eric.kow at gmail.com>**20081005020140] 
[Translate still more Perl tests into shell.
Eric Kow <eric.kow at gmail.com>**20081005012058] 
[Translate pull_many_files tests into shell and avoid redoing work.
Eric Kow <eric.kow at gmail.com>**20081005004120
 Just use whatever format is in .darcs/defaults
] 
[Remove residual Perlisms in match-date.
Eric Kow <eric.kow at gmail.com>**20081005000324] 
[Translate date matching test to shell.
Eric Kow <eric.kow at gmail.com>**20081005000243] 
[Skip filepath test which does not work on Windows.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081004234806] 
[Fix non-portable use of grep -q in tests.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081004234524] 
[Make sed usage more portable in hidden_conflict2 test.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081004233717] 
[Use example.com in external.pl tests.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080928082407
 This avoids timing out in some DNS lookup.  When I first wrote this
 test, I did not know that RFC2606 has reserved example.{com,net,org}
 which seems to be useful in precisely this situation.
] 
[fix incorrect merging_newlines.sh test.
David Roundy <droundy at darcs.net>**20081004223547
 Ignore-this: 33ebc10cd54112ec101750dd6c75fdf9
] 
[Move merging_newlines test to bugs and add a simpler version.
Eric Kow <eric.kow at gmail.com>**20081004135724
 
 There are two issues I noticed when converting this Perl test into
 shell.  This test was passing, but I made some mistakes translating it,
 and in doing so, noticed two potential bugs.
 
 The first is a potentially hidden conflict.  If we start from
 a file
   from temp1
   <EOF>
 And then it seems that a change which adds an empty line should
 conflict with a change that adds a line with content.
 
 The second is that if you do omit the newline, as the original
 test does,
   from temp1<EOF>
 you get some strange-looking changes, namely that appending a
 line to this yields two addline changes and not one.
] 
[fix wrong ../path in failing issue1013 test
Tommy Pettersson <ptp at lysator.liu.se>**20081004140200] 
[Add a toolbox.sh to tests
Eric Kow <eric.kow at gmail.com>**20081004202139
 Like template.sh, this is not a real test, but just helper
 code for writing tests.  The toolbox just provides a single
 place you can go to look up how to do things.
] 
[Translate some more Perl tests into shell.
Eric Kow <eric.kow at gmail.com>**20081004201632] 
[Translate some more Perl tests into shell.
Eric Kow <eric.kow at gmail.com>**20081004163850
 Shell equivalents already exist for these particular tests,
 but they may not do the same thing.
] 
[Move non-date-matching code out of match.pl
Eric Kow <eric.kow at gmail.com>**20081004145445
 The goal is to minimise and eventually eliminate our use of Perl
 for regression tests.
] 
[Fix minor bug in conflict-doppelganger test.
Eric Kow <eric.kow at gmail.com>**20081004163746
 It does not account for --old-fashioned-inventory being
 in .darcs/defaults
] 
[Update tests to reflect --darcs-2 default.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080925143252
 We need to explicitly say --old-fashioned-inventory to test
 accordingly.
] 
[mv issue1111 to tests/
David Roundy <droundy at darcs.net>**20081004143649
 Ignore-this: 51683a80094a4d7733a31b4a40e94016
] 
[resolve issue1111: patchset_intersection used wrong selection for partitionRL
Tommy Pettersson <ptp at lysator.liu.se>**20081004123851
 We want to commute the non-common patches away, so we can stick the
 remaining common patches to the rest of the common patch set.
] 
[use longer patch names in issue1111 test for safer grep result
Tommy Pettersson <ptp at lysator.liu.se>**20081003230323
 The 'not grep C out' found the author--date line of patch A, which
 contained my timezone (CEST), so the test failed even when it should have
 succeeded.
] 
[Translate some more Perl tests into shell.
Eric Kow <eric.kow at gmail.com>**20081004092507] 
[The pager defaults to less(1), not more(1)
Matthias Kilian <kili at outback.escape.de>**20081003212319
 
 It would be better to change get_viewer in Darcs/Utils.lhs to default
 to more(1), but since this may be too intrusive for the upcoming
 release, just let the manual tell the truth (i.e., we're using
 less(1) by default).
 
] 
[remove -q from diff in test, not supported on solaris
Tommy Pettersson <ptp at lysator.liu.se>**20081003205756] 
[Fix cd bugs in conflict-doppleganger test.
Eric Kow <eric.kow at gmail.com>**20081004094407
 We were not always exiting from darcs repositories when we
 meant to.
] 
[fix test issue1110, remove duplicates of cd ..
Tommy Pettersson <ptp at lysator.liu.se>**20081003182126
 They got us out of the test dir, up in the file tree hierarchy, to the
 darcs root dir, and beyond, where the test continued to run test commands
 and cleanups (ooops!!)
] 
[Translate some Perl tests into shell.
Eric Kow <eric.kow at gmail.com>**20081003183746] 
[Convert tag.pl test into shell.
Eric Kow <eric.kow at gmail.com>**20081003095231] 
[Add a shell test template.
Eric Kow <eric.kow at gmail.com>**20081003095005
 This provides helper functions and a basic repository
 setup.  The idea is that when making a new shell test,
 you start by making a copy of the template.
] 
[Reformat Darcs.CommandsAux comments as haddock.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080927123217] 
[haddock documentation for ColorPrinter
Tommy Pettersson <ptp at lysator.liu.se>**20081003175214] 
[only  show 'diffing dir' when debugging.
David Roundy <droundy at darcs.net>**20081001134124
 Ignore-this: 277810d9083e36b42f27fa7ac4c47386
] 
[TAG 2.1.0pre3
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081002091241] 
[Bump version number to 2.1.0pre3.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081002091226] 
[ChangeLog entries for darcs 2.1.0pre3
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081002091155] 
[make boring file and tests work with hpc.
David Roundy <droundy at darcs.net>**20081001202849
 Ignore-this: a699af014f672cc32c1a88863db8ffec
] 
[make default_boring and default_binaries NOINLINE
David Roundy <droundy at darcs.net>**20081001202731
 Ignore-this: f74741738a612bb283d1e871d70aa492
 This is primarily so I won't have to recompile all of darcs when these
 change, but also because they shouldn't be inlined.  It would just be
 a waste of space (and would slow down darcs).
] 
[trim exports of IsoDate.
David Roundy <droundy at darcs.net>**20081001194015
 Ignore-this: 6f1ef595002c05c07821c2d1332e054b
] 
[fix bug in 1105 fix that led to improper overrides of defaults
David Roundy <droundy at darcs.net>**20081001175907
 Ignore-this: 8413d2596f97076ccb096900585f0c62
 The problem is illustrated in the tests/override-defaults.sh that I've
 recorded separately.  We want conflicting defaults in
 ~/.darcs/defaults and _darcs/prefs/defaults to be resolved in favor of
 the default residing in _darcs/prefs/defaults.
] 
[add test that overriding of defaults works right.
David Roundy <droundy at darcs.net>**20081001175645
 Ignore-this: aedfd923676b1fa35c25c72abb88c8f3
] 
[Test for issue1105.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080929142205
 Ignore-this: 5b7c2f7d270ab614eb1294566048a586
] 
[Resolve issue1105: check if default options are valid.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080929141948
 Ignore-this: 17b4b27e31545689f21496f7fc9c9fe7
] 
[fix bugs in second issue1110 test.
David Roundy <droundy at darcs.net>**20081001171147
 Ignore-this: 2757852f2b599cfd55936cccd1b83b5f
] 
[Add another test case for issue1110.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080930220818] 
[generate a tidier hoogle frame, add required files, simplify framed doc generation
Simon Michael <simon at joyful.com>**20080930204518
 Ignore-this: e60b456f1fdd001b5ae456f9aae05999
] 
[haddock documenation for DateTester
florent.becker at ens-lyon.org**20080926165323] 
[haddock documentation for DateMatcher
florent.becker at ens-lyon.org**20080926164753] 
[make installdocs should not install TeX intermediaries.
Trent W. Buck <trentbuck at gmail.com>**20080930030315
 I'm unilaterally classing the DVI and PostScript versions as
 "intermediaries" to the PDF version, and only installing the latter.
] 
[Add test cases for issue1043.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080930105032
 There are two known variants, one of which was fixed by
 resolve issue1043: fix bug in mergeAfterConflicting.
] 
[resolve issue1110: fix get --hashed.
David Roundy <droundy at darcs.net>**20080929175725
 Ignore-this: d0aaaa26583dd3ab37bedfc738fb6117
] 
[add test that show bug works right.
David Roundy <droundy at darcs.net>**20080929152909
 Ignore-this: 4829e300015120adeed108079324e5e2
] 
[Add a test case for issue1110.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080929151743] 
[Tone down unnecessarily scary language when cancelling
Simon Michael <simon at joyful.com>**20080928004013
 Ignore-this: c5940d14099953b7bc963c70591739d1
] 
[darcshoogle script and emacs integration example
Simon Michael <simon at joyful.com>**20080927210609
 Ignore-this: 93d5a0ff269d314d32f213dfbe4325be
] 
[Fix doubled verb `be' in documentation on apply posthooks in _darcs/prefs/defaults.
Taylor R Campbell <campbell at mumble.net>**20080928200954] 
[the issue864 test was misnamed
Simon Michael <simon at joyful.com>**20080928231942
 Ignore-this: a0b643bf0abc6f4b6237e5683e9f6dad
] 
[add tests for pull --union and --intersection.
David Roundy <droundy at darcs.net>**20080929150711
 Ignore-this: 356f506f79ca89a2d1246d068aaa8b2b
 --intersection fails, which is issue1111.
] 
[add more output to URL bug message.
David Roundy <droundy at darcs.net>**20080929145544
 Ignore-this: 868e0ba5819dba2a4f5b8819080e9407
 I triggered this bug a few times, but once I added the extra output, I
 wasn't able to do it again.  So I'm leaving the extra information in
 the bug message so if someone else runs into it, we can more easily
 track down the issue.
] 
[answer darcs-doc question: no, that would be wrong.
David Roundy <droundy at darcs.net>**20080926220229
 Ignore-this: 419afd7bd9832e06d3dca45880276296
] 
[haddockification of IsoDate
florent.becker at ens-lyon.org**20080926163257
 Docstrings by Eric Kow
] 
[Make UglyFileName.super_name work with "/foo" paths.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080926223753
 Ignore-this: 6e4abb72087272ed03e5839a5420f82f
] 
[Restore 'simplify patches in rollback'.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080926225429] 
[Rollback 'simplify patches in rollback'
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080926225411
 I made the mistake of pulling this into stable despite a darcs 2.1
 feature freeze.
 rolling back:
 
 Tue Sep 23 16:06:19 BST 2008  David Roundy <droundy at darcs.net>
   * simplify patches in rollback.
] 
[Restore issue27 patches.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080926222522
 
 rolling back:
 
 Fri Sep 26 23:01:19 BST 2008  Eric Kow <E.Y.Kow at brighton.ac.uk>
   * Resolve issue1102: recognise but do not generate patch log 'junk'.
   
] 
[Resolve issue1102: recognise but do not generate patch log 'junk'.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080926220119
 
 This is a partial rollback of the two issue27 patches below.  The patches exist
 to (a) generate patch log 'junk' and (b) hide such junk from users' view.
 Because of a feature freeze, we do not want junk generation to be part of darcs
 2.1; however, we do anticipate junk-generation being part of subsequent
 versions of darcs.  To avoid users being confused by this future junk, we only
 rollback the junk-generation part, retaining the junk-hiding part.
 
 rolling back:
 
 Wed Sep 17 16:46:57 BST 2008  David Roundy <droundy at darcs.net>
   * resolve issue27: add junk to patch identifiers.
 
 Wed Sep 17 18:09:13 BST 2008  David Roundy <droundy at darcs.net>
   * hokey fix to allow unit tests to generate random input.
 
] 
["make api-doc-frames" converts api docs to a frame layout
Simon Michael <simon at joyful.com>**20080927091919
 Ignore-this: 2a600aefe4399d17a4c2f14ea1cec350
] 
[hoogleindex no longer depends on api-doc dir
Simon Michael <simon at joyful.com>**20080927090139
 Ignore-this: 3a29b9bbd1ba1cdbccea03f4c04727c8
] 
[make hoogle targets more robust
Simon Michael <simon at joyful.com>**20080927083125
 Ignore-this: 2aac81020d3855ce8ffc9c4deef3e949
] 
[fix makefile indentation
Simon Michael <simon at joyful.com>**20080927020444
 Ignore-this: 847051698f40dc1fd03a8e1db93ff7a1
] 
["make hoogleweb" configures the hoogle web interface in hoogle/ 
Simon Michael <simon at joyful.com>**20080927015904
 Ignore-this: dcc4e2526b3c92859ccf9a6f1cb57ad2
 The hoogle index target is now "make hoogleindex". Requires the hoogle
 source tree (perhaps patched to configure result link urls).
 Tested on GNU/Linux with hoogle 4.0.0.5.
] 
[make haddock less noisy 
Simon Michael <simon at joyful.com>**20080927012958
 Ignore-this: 84921fbd34b1f7345dec2571c3ec32ae
] 
[resolve issue1043: fix bug in mergeAfterConflicting.
David Roundy <droundy at darcs.net>**20080926211928
 Ignore-this: 1416605539b44b32c18b348f3b4f459d
 This is moderately deep in the internals of the darcs-2 conflict
 handling code.  I had made an assumption that turned out not to be
 correct.  I fix this by switching to use a variant of the commute
 function that doesn't allow conflicting patches to commute, which I
 think should restore correctness here.  It's a scary bug, though, and
 if anyone were to create a moderately small test case, I'd be
 extremely grateful.
] 
[Roll back Dmitry's drop_dotdot change in Darcs.Patch.Filename.  
David Roundy <droundy at darcs.net>**20080926145013
 Ignore-this: d432374bbbe4cc006a26deeb3d15c3ec
 
 The key here is that he didn't want to change the internal
 patch-handling code, just the use of drop_dotdots in Darcs.RepoPath,
 which now uses UglyFileName for this purpose (which has Dmitry's code
 in it).
 
 rolling back:
 
 Thu Sep 25 13:57:11 EDT 2008  Dmitry Kurochkin <dmitry.kurochkin at gmail.com>
   * Make FileName.drop_dotdot work with absolute paths.
 
     M ./src/Darcs/Patch/FileName.lhs -7 +12
] 
[split FileName into two modules.
David Roundy <droundy at darcs.net>**20080926144501
 Ignore-this: dbb6650c6300745101bacd41bef431f0
 This duplicates some code, and makes a Darcs.Patch.FileName into the
 module (which FileName originally was) for handling paths within a
 darcs repository.  Code that had gotten agglomerated into this module
 is now in UglyFileName.lhs, which I hope to eliminate.  I went through
 the imports of FileName and tried to separate them between those that
 use FileName to deal with paths in a repository and those that use the
 extra functions what were added there, and those that abuse FileName
 to handle other sorts of paths (absolute paths, in particular).
] 
["make api-doc-with-source" generates docs with links to colourised source code
Simon Michael <simon at joyful.com>**20080925213719
 Ignore-this: c16b935c727838c606fa5daa29ccc41f
 This works with current hs-colour on GNU/Linux but may not be
 portable; I made it a separate make target to start with.  Only
 per-module source links are enabled until there is a fix for the
 haddock/hoogle issue noted.
] 
[issue27.sh is still sporadically buggy.
David Roundy <droundy at darcs.net>**20080926134948
 Ignore-this: ec2bf07485a6dc0fda83c786a7982df1
] 
[add test that fails sporadically on nfs under ghc 6.6.
David Roundy <droundy at darcs.net>**20080925202350
 Ignore-this: 8aae9073ea132935f1951f7e187bc2ea
 I haven't time to track this down, but it doesn't look like a bug in
 the test script.  This was the issue27 test.
] 
[Move issue1078 test from bugs to tests.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080925180103
 Ignore-this: f735ee2e36bdf8f446cab61d1f7ac334
] 
[Resolve issue1078: make ioAbsolute work with symbolic links in file paths.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080925175726
 Ignore-this: af4cf0bd842b9aae5e2fffe4500a1aa5
] 
[Make FileName.drop_dotdot work with absolute paths.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080925175711
 Ignore-this: 46c625a35bb11bea19b0749756d1a225
] 
[Force hidden conflicts test to use the darcs-2 format.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080925175251
 Move it to the tests directory because it passes if we do
 this.  We consider this to be a bug that is solved by using
 the darcs 2 format.
] 
[Use init+pull instead of get in issue27 test.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080925142606
 Ignore-this: e8be404b0ccbc56d8f547b11b6e58c76
 This would hopefully make it pass on NFS.
] 
[Exceptions to GPL granted as of 2008-09-11.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080911120758] 
[Update manual to reflect --darcs-2 default.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080925142538] 
[resolve issue1003: don't sever transfer-mode connection on IO error.
David Roundy <droundy at darcs.net>**20080925145150
 Ignore-this: 3aecb8cffa83170847b0a2452c5763f0
 There was a bug in Ssh, in which unless the very first file we access
 on a given server was present, we severed the connection.  This fixes
 that bug.
] 
[preliminary hoogle indexing
Simon Michael <simon at joyful.com>**20080925084432
 If haddock and hoogle are installed, "make hoogle" generates api-doc/main.hoo.
 Use it at the command-line like so: hoogle --data=api-doc/main.hoo something
] 
[TAG 2.1.0pre2
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080925081049
 Ignore-this: 99b608f2401e8f14358e121e9b95e211
] 
[Bump version number to 2.1.0pre2.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080925081019
 Ignore-this: 9d1aa701ce0b8cfc87007216207166fe
 It was initially planned that the upcoming release be called 2.0.3, but
 since we are initializing darcs-2 format repositories by default, we are
 bumping the version number higher.
] 
[ChangeLog entries for 2.1.0pre2
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080925080141
 Ignore-this: 1b1e57d425f8528e00e03e7b4a23ad78
] 
[ChangeLog entries: more stuff to ignore
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080925080129
 Ignore-this: 45362ed8bbabdacf222928cba6756aa4
] 
[More readable length comparison.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080924142304] 
[Haddock some primitive patch functions.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080924142157] 
[resolve issue805: make darcs-2 format the default for new repositories.
David Roundy <droundy at darcs.net>**20080924141158
 Ignore-this: e7952cb0cdc3124ffa50b0775822000e
] 
[make flagsToPristine obey repository format.
David Roundy <droundy at darcs.net>**20080924135319
 Ignore-this: 6038a7d05126af9e446406022ca608a0
 This reduces the number of places we set the default repository format
 (hopefully to one?).
] 
[move issue27 test to bugs directory, since it fails.
David Roundy <droundy at darcs.net>**20080923215936
 Ignore-this: 4556b273a9f8728de8ac855aae8442d0
] 
[Add test for issue27.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080918135923] 
[Add a test case for issue1078
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080923081757
 Ignore-this: 33f7f1f63c7b707ff148531f8229ceb0
] 
[give more useful failure message in HTTP for proxy errors.
David Roundy <droundy at darcs.net>**20080923153400
 Ignore-this: 3d6d204da399175eedf68bedfed8e504
] 
[HTTP: detect proxy server (failing if we want one)
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080923123539
 The HTTP package has proxy server support, but putting it to use seems
 to be complicated.  Since fetchUrl seems to be used only in optional
 situations, it seems safe to just return an error message (as opposed
 to waiting around for a timeout).
] 
[simplify patches in rollback.
David Roundy <droundy at darcs.net>**20080923150619
 Ignore-this: fd3d327f800e2f1799ec97bc4524f612
 This makes it nicer to incrementally rollback changes from one large
 change:  you aren't prompted for changes that have already been rolled
 back.
] 
[fix filepath code to work with FilePath package that preceded filepath.
droundy at darcs.net**20080923000405
 Ignore-this: 6aa0d8b357b0f966403ebe5965dcdec4
] 
[fix type witness bug in createRepository.
David Roundy <droundy at darcs.net>**20080922234321
 Ignore-this: 2c50393ca25740ce3e210dd24fe8d8fa
] 
[Resolve conflict between replace patches in Darcs.Arguments
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080922202647] 
[Resolve issue53: check for windows filename validity in darcs add/mv.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080922172004] 
[Use --reserved-ok to allow a file with ':' in it in tests.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080922171519
 It's likely that this test will just fail under Windows and
 we will have to disable it.
] 
[Add test for issue53.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080922152256] 
[Add --reserved-ok flag for darcs add and mv.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080922141532
 This is just the flag, not the actual effect.
] 
[Check for filepath package in configure.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080922140520] 
[simplify fix for issue1041.
David Roundy <droundy at darcs.net>**20080922233019
 Ignore-this: a3002e9bba5271790c62ac634e08f472
 It turns out that the simple solution works once a bug in the
 conflict-doppleganger test was fixed!
] 
[translate conflict-doppleganger test to bash.
David Roundy <droundy at darcs.net>**20080922232839
 Ignore-this: de2a050022dea4251cdc2cc5e8b55c8c
] 
[Translate mark-conflicts test into shell.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080922224858
 It was failing because it expects init to be completely silent.  Since we
 were going to tweak it anyway, we might as well simplify the script.
] 
[Stop calling the darcs-2 format experimental.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080922221024] 
[Move repository creation to Darcs.Repository.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080922215913
 This is just to avoid importing the DarcsRepo and HashedRepo code in higher
 level code.
] 
[remove test_unit from disttest to speed things up.
David Roundy <droundy at darcs.net>**20080922225355
 Ignore-this: b3b21bcd3fa72c8d602b5bd0e601021a
 The unit test is only affected by very rarely-modified code, and it's
 overkill to run it absolutely every single time we push code
 (particularly as it sometimes takes exponentially long to generate its
 test cases).
] 
[resolve issue1041: add test for issue1041.
David Roundy <droundy at darcs.net>**20080922183320
 Ignore-this: 5a6330158d16a24d45f58268c0edb823
 Note that this issue was actually resolved by Vlad Dogaru.  I just
 wrote the test.
] 
[Get: if URL is invalid, direcotry is not created (#1041)
Vlad Dogaru <ddvlad at anaconda.cs.pub.ro>**20080922171705] 
[Replace --without-docs with less ambiguous --without-manual (issue1082).
Trent W. Buck <trentbuck at gmail.com>**20080922002602
 It's confusing for ./configure --without-docs to complain about missing haddock.
] 
[Documentation for --allow-unrelated-repos.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080922121122
 Ignore-this: d2630826313c8aeb00acb6853030c22d
] 
[Rename --ignore-unrelated-repos to --allow-unrelated-repos.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080922120727
 Ignore-this: a5990f1741c867316a948e6721118651
] 
[fix  bug I introduced into issue1039 test.
David Roundy <droundy at darcs.net>**20080921213043
 Ignore-this: 5b3c6476abae6bb050be014555d05bbe
] 
[Fix hang after a user input error (for example, EOF).
Judah Jacobson <judah.jacobson at gmail.com>**20080918163017] 
[replace consRLSealed with a more  general mapFlipped.
David Roundy <droundy at darcs.net>**20080921185241
 Ignore-this: c28f73f165254582cba6a14ba6ce93
] 
[make issue1039 fix allow small dissimilar  repositories.
David Roundy <droundy at darcs.net>**20080921184515
 Ignore-this: 918a09df18ef48c649c1bfaa866d6176
] 
[revert refactor that breaks type witnesses.
David Roundy <droundy at darcs.net>**20080921182331
 Ignore-this: dd692cffc1a238d6726448bacfe9cacc
] 
[Add '--ignore-unrelated-repos' option to disable unrelated repositories check.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080919152631] 
[Resolve issue1039: detect seemingly unrelated repositories when doing push, pull and send.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080919144553] 
[Refactor in pull_cmd.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080919135349
 Ignore-this: e26a489a7a53aeaba544ae5ad0006700
] 
[Test for issue1039.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080919153011] 
[manual: add an example of record --pipe prompts similar to tag --pipe docs
Simon Michael <simon at joyful.com>**20080918205353] 
[user manual corrections regarding what record and tag --pipe prompt for
Simon Michael <simon at joyful.com>**20080918204500] 
[clarify the short help for --pipe
Simon Michael <simon at joyful.com>**20080918193717] 
[Spaces in Darcs.Arguments.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080919150440] 
[Spaces in Darcs.Commands.Send.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080919150139] 
[Spaces in Darcs.Commands.Pull.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080919145812] 
[Spaces in Darcs.Commands.Push.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080919145553] 
[Print "We have the following patches to send:" only when we really have somthing to send.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080919114229] 
[Use gmakeisms for prettier output.
Trent W. Buck <trentbuck at gmail.com>**20080919071358] 
[TAG 2.0.3pre1
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080918023645] 
[Bump version number to 2.0.3pre1.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080918023634] 
[Canonize Florent Becker, Matthias Killian, Trent Buck, Thorkil Naur
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080918020453] 
[ChangeLog entries for darcs 2.0.3pre1 again.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080918020442] 
[Re-enable haskeline by default.  Require haskeline>=0.3.1 which fixes issue1050.
Judah Jacobson <judah.jacobson at gmail.com>**20080917194007] 
[Throw an error when haskeline returns an EOF/EOT.
Judah Jacobson <judah.jacobson at gmail.com>**20080917180124] 
[Disable more record_editor tests under Windows.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080917192602
 It still appears to be failing under Cygwin.
] 
[fix changes.pl test (translating to bash)
David Roundy <droundy at darcs.net>**20080917182432
 Ignore-this: 5f8bc7e1f9eadc073402a935142281c4
 This test made assumptions such as that darcs wouldn't ever add a long
 comment to its internal representation of changes, which are now
 broken.
] 
[hokey fix to allow unit tests to generate random input.
David Roundy <droundy at darcs.net>**20080917170913
 Ignore-this: 31e847e82eef741f4c6cc857fd79a245
 A nicer fix would be to move namepatch and patchinfo into some sort of
 random-number monad rather than leaving them in IO and using
 unsafePerformIO in the example-generation scripts.
] 
[resolve issue27: add junk to patch identifiers.
David Roundy <droundy at darcs.net>**20080917154657
 Ignore-this: b91ab6f6e05e0fda25488fa51653b741
] 
[add a couple of tests of unrecord.
David Roundy <droundy at darcs.net>**20080917133738] 
[add a few (passing) tests of pending handling in obliterate and unrecord.
David Roundy <droundy at darcs.net>**20080917130423] 
[Use putStrLn for "Cancelled." message.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080916205014] 
[remove now-unused is_addrmfile and is_addrmdir.
David Roundy <droundy at darcs.net>**20080916173136] 
[resolve issue1012: it seems to be fixed by the fix for issue709.
David Roundy <droundy at darcs.net>**20080916173116] 
[resolve issue885: fix patchSetToRepository to work with hashed.
David Roundy <droundy at darcs.net>**20080916173030] 
[resolve issue709: avoid adding changes to pending in rmpend when possible.
David Roundy <droundy at darcs.net>**20080916173002] 
[first-stage fix for issue709.
David Roundy <droundy at darcs.net>**20080916170333
 Here I fix the bug which leads to a corrupt pending being left, with a
 rmfile change but no hunk removing the contents.  This doesn't fix
 issue709, since an incorrect pending is left, it's just no longer a
 corrupt pending (i.e. it's still got the rmfile, but if you record it
 there's no problem).
] 
[add new test that we don't do anything when repairing a clean repo.
David Roundy <droundy at darcs.net>**20080916165437] 
[whitespace change in prepend.
David Roundy <droundy at darcs.net>**20080916160425] 
[make shell_harness print summary of passing tests when running bugs tests.
David Roundy <droundy at darcs.net>**20080916145820] 
[trailing whitespace cleanup in Repository.Internal.
David Roundy <droundy at darcs.net>**20080916142112] 
[tiny refactor in Internal.lhs.
David Roundy <droundy at darcs.net>**20080916155922] 
[simplify issue965 test (which took quite a while for me to figure out).
David Roundy <droundy at darcs.net>**20080916152028] 
[Test for issue691.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080916111332] 
[Make match.pl test understand Windows dates.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080916011339
 Windows does not abbreviate its timezones.
] 
[Disable some tests that don't work under Windows.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080916000912] 
[Translate get.pl test into shell.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080916000227
 The original get.pl uses the Perl Cwd library, which seems not
 to work for purposes of this test under MSYS.
] 
[Resolve issue691: distinguish between NoArg and ReqArg in defaults parser.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080915224046] 
[Move get_default_flag type to definition.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080915220316] 
[reverse overly-invasive haddocking.
David Roundy <droundy at darcs.net>**20080915110353] 
[In darcs send if POST fails try sendmail.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080914234314] 
[Grammar in Darcs.Commands.Send.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080914232923] 
[Print "Successfully sent patch bundle to" only when we really sent something.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080914232905] 
[Fix overzealous escaping in haddock.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080915070926] 
[Haddock documentation for English.lhs
florent.becker at ens-lyon.org**20080913143844
 Docstrings by Eric Kow
] 
[Haddock documentation for PrintPatch
florent.becker at ens-lyon.org**20080913143420] 
[Haddock documentation for Flags
florent.becker at ens-lyon.org**20080913143026] 
[Haddock documentation for Motd
florent.becker at ens-lyon.org**20080913141335
 docstring by Eric Kow
] 
[Haddock string for TheCommands
florent.becker at ens-lyon.org**20080913141040
 Docstring by Eric Kow
] 
[Run testing in temp directories to avoid collosions, fail if DarcsURL header is not found.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080914223930] 
[Use tempfile() UNLINK option to automatically remove temp files at exit.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080914223827] 
[Coding style in upload.cgi.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080914223751] 
[Stop after we found the first DarcsURL: in patch bundle.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080914220421] 
[Spaces in upload.cgi.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080914220324] 
[Really allow pull.sh test to pass on Windows.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080914211458
 
 It seems that these redirections cause an openBinaryFile failure under
 Windows.  I do not yet understand why using different names makes a
 difference, but it could provide an interesting clue.
] 
[ChangeLog entries for darcs 2.0.3pre1
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080914094144] 
[Disable amend-cancelling test under Cygwin.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080913213039] 
[Make binary.sh test more portable (avoid copying an exe).
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080913212843
 Under Windows, copying the exe file will result in an .exe extension
 being appended to the filename.  This confuses the test.
] 
[rewrite upload.cgi so it won't need any customization by default.
David Roundy <droundy at darcs.net>**20080913171447
 The downside is that it has to do a darcs get --lazy in order to check if
 the patch can be applied.  If you define $target_repo, however, it doesn't
 need to do this (but then can only accept patches to a single
 locally-present repo).
] 
[when _darcs/prefs/post is present, use _darcs/prefs/post for To: header.
David Roundy <droundy at darcs.net>**20080913171025] 
[sketchy documentation of _darcs/prefs/post
David Roundy <droundy at darcs.net>**20080913115655] 
[set default upload.cgi to work on darcs-unstable.
David Roundy <droundy at darcs.net>**20080913112227] 
[Improve upload.cgi.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080912230953
 - check if patch is valid before sending
 - use sendmail to send patches or drop to maildir
] 
[Spaces and punctuation in upload.cgi.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080912230827] 
[fix problem in Darcs.URL refactor pointed out by Eric.
David Roundy <droundy at darcs.net>**20080913104327] 
[Disable a pull.sh test under Windows.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080912224027
 It relies on darcs not working if we chmod u-r a file.
 This seems to have little effect in Windows.
] 
[refactor Darcs.URL to eliminate use of Regexes.
David Roundy <droundy at darcs.net>**20080912173611
 The algorithms here are not tricky, and I find this easier to read.
] 
[change is_file to return false on droundy at darcs.net:
David Roundy <droundy at darcs.net>**20080912173501] 
[clean up whitespace.
David Roundy <droundy at darcs.net>**20080912150248] 
[fix manual for optional arguments.
David Roundy <droundy at darcs.net>**20080912150231] 
[clean up whitespace.
David Roundy <droundy at darcs.net>**20080912145708] 
[add test for new --output-auto-name feature.
David Roundy <droundy at darcs.net>**20080912145648] 
[Spaces in Darcs.Commands.Send module.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080912122223] 
[Make '--output-auto-name' accept optional directory argument.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080912120516] 
[Add DarcsOptAbsPathOption for options with optional path argument.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080912112458] 
[Refactor Darcs.Repository.Prefs.getCaches.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080912055204] 
[Print warning when '--http-pipelining' option is used, but darcs is compiled without HTTP pipelining support.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080912054253] 
[Do not download URL we have speculated before.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080912053236] 
[Spaces and parentheses in URL module.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080912053000] 
[Coding style in Darcs.Arguments.network_options.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080911140710] 
[Resolve issue1054: --no-cache option to ignore patch caches.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080911140233] 
[Remove unused variable from configure.ac.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080911132107] 
[Comment in configure.ac.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080911115840] 
[Indentation fixes in configure.ac.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080911115117] 
[Formating and minor refactoring in URL.urlThread.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080910061227] 
[insecure printfs - fix the two that I can currently hit
Steve Cotton <steve at s.cotton.clara.co.uk>**20080910230659] 
[TAG this version works.
David Roundy <droundy at darcs.net>**20080910212908] 
Patch bundle hash:
7e09231b35a221c1f93ee2e1c74e1d9bd55daf66


More information about the darcs-users mailing list