Hi, 

I have obviously misformatted the intended haddocks in the previous bundle,
sorry about that. This one has the haddock patch amended, this time hopefully
with correct formatting (that doesn't make ghc choke, too).

Yours,
   Petr.

Tue Sep  2 02:44:02 CEST 2008  [EMAIL PROTECTED]
  * Rename hashSlurped, slurpHashed and syncHashed to writeHashedPristine, 
slurpHashedPristine and syncHashedPristine, respectively.

Tue Sep  2 03:04:05 CEST 2008  [EMAIL PROTECTED]
  * Change type of subdir parameter in Cache/HashedIO functions from String to 
HashedDir.
  
  This refactor should make calling the Cache and HashedIO functions safer: you
  should be no longer able to swap hash and subdir accidentally in the call 
site,
  or mistype the subdirectory name.

Tue Sep  2 04:05:32 CEST 2008  [EMAIL PROTECTED]
  * Haddock the {slurp,write,sync}HashedPristine functions in HashedIO.

New patches:

[Rename hashSlurped, slurpHashed and syncHashed to writeHashedPristine, slurpHashedPristine and syncHashedPristine, respectively.
[EMAIL PROTECTED] hunk ./src/Darcs/Repository/HashedIO.lhs 326
 
 syncHashed :: Cache -> Slurpy -> String -> IO ()
 syncHashed c s r = do runStateT sh $ HashDir {permissions=RW, cache=c, options=[], rootHash=r, hashDir="pristine.hashed" }
-                      return ()
+                              return ()
     where sh = do cc <- readroot
                   lift $ tediousSize k (length cc)
                   mapM_ sh' cc
replace ./src/Darcs/Repository/HashedIO.lhs [A-Za-z_0-9] hashSlurped writeHashedPristine
replace ./src/Darcs/Repository/HashedIO.lhs [A-Za-z_0-9] slurpHashed slurpHashedPristine
replace ./src/Darcs/Repository/HashedIO.lhs [A-Za-z_0-9] syncHashed syncHashedPristine
replace ./src/Darcs/Repository/HashedRepo.lhs [A-Za-z_0-9] hashSlurped writeHashedPristine
replace ./src/Darcs/Repository/HashedRepo.lhs [A-Za-z_0-9] slurpHashed slurpHashedPristine
replace ./src/Darcs/Repository/HashedRepo.lhs [A-Za-z_0-9] syncHashed syncHashedPristine
[Change type of subdir parameter in Cache/HashedIO functions from String to HashedDir.
[EMAIL PROTECTED]
 
 This refactor should make calling the Cache and HashedIO functions safer: you
 should be no longer able to swap hash and subdir accidentally in the call site,
 or mistype the subdirectory name.
] hunk ./src/Darcs/Repository.lhs 74
      getMarkedupFile,
      setScriptsExecutable
     )
-import Darcs.Repository.Cache ( unionCaches, fetchFileUsingCache )
+import Darcs.Repository.Cache ( unionCaches, fetchFileUsingCache, HashedDir(..) )
 import Darcs.Patch.Set ( PatchSet, SealedPatchSet )
 
 import Control.Monad ( unless, when )
hunk ./src/Darcs/Repository.lhs 256
                 let peekaboo :: PatchInfoAnd p C(x y) -> IO ()
                     peekaboo x = case extractHash x of
                                  Left _ -> return ()
-                                 Right h -> fetchFileUsingCache c "patches" h >> return ()
+                                 Right h -> fetchFileUsingCache c HashedPatchesDir h >> return ()
                 sequence_ $ mapRL peekaboo $ progressRL "Copying patches" $ concatRL r
   where putInfo = when (not $ Quiet `elem` opts) . putStrLn
 
hunk ./src/Darcs/Repository/Cache.lhs 7
 module Darcs.Repository.Cache (
                    cacheHash, okayHash, takeHash,
                    Cache(..), CacheType(..), CacheLoc(..), WritableOrNot(..),
+                   HashedDir(..), hashedDir,
                    unionCaches, cleanCaches,
                    fetchFileUsingCache, speculateFileUsingCache, writeFileUsingCache,
                    findFileMtimeUsingCache, setFileMtimeUsingCache, peekInCache,
hunk ./src/Darcs/Repository/Cache.lhs 42
 \end{code}
 
 \begin{code}
+data HashedDir = HashedPristineDir | HashedPatchesDir | HashedInventoriesDir
+hashedDir :: HashedDir -> String
+hashedDir HashedPristineDir = "pristine.hashed"
+hashedDir HashedPatchesDir = "patches"
+hashedDir HashedInventoriesDir = "inventories"
+
 data WritableOrNot = Writable | NotWritable deriving ( Show )
 data CacheType = Repo | Directory deriving ( Eq, Show )
 data CacheLoc = Cache !CacheType !WritableOrNot !String
hunk ./src/Darcs/Repository/Cache.lhs 93
               | otherwise = False
 
 
-findFileMtimeUsingCache :: Cache -> String -> String -> IO EpochTime
+findFileMtimeUsingCache :: Cache -> HashedDir -> String -> IO EpochTime
 findFileMtimeUsingCache (Ca cache) subdir f = mt cache
     where mt [] = return undefined_time
           mt (Cache Repo Writable r:_) = (modificationTime `fmap`
hunk ./src/Darcs/Repository/Cache.lhs 97
-                                          getSymbolicLinkStatus (r++"/"++darcsdir++"/"++subdir++"/"++f))
+                                          getSymbolicLinkStatus (r++"/"++darcsdir++"/"++(hashedDir subdir)++"/"++f))
                                          `catchall` return undefined_time
           mt (_:cs) = mt cs
 
hunk ./src/Darcs/Repository/Cache.lhs 101
-setFileMtimeUsingCache :: Cache -> String -> String -> EpochTime -> IO ()
+setFileMtimeUsingCache :: Cache -> HashedDir -> String -> EpochTime -> IO ()
 setFileMtimeUsingCache (Ca cache) subdir f t = st cache
     where st [] = return ()
hunk ./src/Darcs/Repository/Cache.lhs 104
-          st (Cache Repo Writable r:_) = setFileTimes (r++"/"++darcsdir++"/"++subdir++"/"++f) t t
+          st (Cache Repo Writable r:_) = setFileTimes (r++"/"++darcsdir++"/"++(hashedDir subdir)++"/"++f) t t
                                          `catchall` return ()
           st (_:cs) = st cs
 
hunk ./src/Darcs/Repository/Cache.lhs 108
-fetchFileUsingCache :: Cache -> String -> String -> IO (String, PackedString)
+fetchFileUsingCache :: Cache -> HashedDir -> String -> IO (String, PackedString)
 fetchFileUsingCache = fetchFileUsingCachePrivate Anywhere
 
hunk ./src/Darcs/Repository/Cache.lhs 111
-peekInCache :: Cache -> String -> String -> IO Bool
+peekInCache :: Cache -> HashedDir -> String -> IO Bool
 peekInCache (Ca cache) subdir f = cacheHasIt cache `catchall` return False
     where cacheHasIt [] = return False
           cacheHasIt (Cache _ NotWritable _:cs) = cacheHasIt cs
hunk ./src/Darcs/Repository/Cache.lhs 118
           cacheHasIt (Cache t Writable d:cs) = do ex <- doesFileExist (fn t d)
                                                   if ex then return True
                                                         else cacheHasIt cs
-          fn Directory d = d ++ "/" ++ subdir ++ "/" ++ f
-          fn Repo r = r ++ "/"++darcsdir++"/" ++ subdir ++ "/" ++ f
+          fn Directory d = d ++ "/" ++ (hashedDir subdir) ++ "/" ++ f
+          fn Repo r = r ++ "/"++darcsdir++"/" ++ (hashedDir subdir) ++ "/" ++ f
 
hunk ./src/Darcs/Repository/Cache.lhs 121
-speculateFileUsingCache :: Cache -> String -> String -> IO ()
+speculateFileUsingCache :: Cache -> HashedDir -> String -> IO ()
 speculateFileUsingCache c sd h = do debugMessage $ "Speculating on "++h
                                     copyFileUsingCache OnlySpeculate c sd h
 
hunk ./src/Darcs/Repository/Cache.lhs 127
 data OrOnlySpeculate = ActuallyCopy | OnlySpeculate deriving ( Eq )
 
-copyFileUsingCache :: OrOnlySpeculate -> Cache -> String -> String -> IO ()
+copyFileUsingCache :: OrOnlySpeculate -> Cache -> HashedDir -> String -> IO ()
 copyFileUsingCache oos (Ca cache) subdir f =
hunk ./src/Darcs/Repository/Cache.lhs 129
-    do debugMessage $ "I'm doing copyFileUsingCache on "++subdir++"/"++f
+    do debugMessage $ "I'm doing copyFileUsingCache on "++(hashedDir subdir)++"/"++f
        Just stickItHere <- cacheLoc cache
        createDirectoryIfMissing False (reverse $ dropWhile (/='/') $ reverse stickItHere)
        sfuc cache stickItHere
hunk ./src/Darcs/Repository/Cache.lhs 147
                                                then speculateFileOrUrl (fn t d) out
                                                else copyFileOrUrl [] (fn t d) out Cachable
           sfuc (_:cs) out = sfuc cs out
-          fn Directory d = d ++ "/" ++ subdir ++ "/" ++ f
-          fn Repo r = r ++ "/"++darcsdir++"/" ++ subdir ++ "/" ++ f
+          fn Directory d = d ++ "/" ++ (hashedDir subdir) ++ "/" ++ f
+          fn Repo r = r ++ "/"++darcsdir++"/" ++ (hashedDir subdir) ++ "/" ++ f
 
 
 data FromWhere = LocalOnly | Anywhere deriving ( Eq )
hunk ./src/Darcs/Repository/Cache.lhs 153
 
-fetchFileUsingCachePrivate :: FromWhere -> Cache -> String -> String -> IO (String, PackedString)
+fetchFileUsingCachePrivate :: FromWhere -> Cache -> HashedDir -> String -> IO (String, PackedString)
 fetchFileUsingCachePrivate fromWhere (Ca cache) subdir f =
     do when (fromWhere == Anywhere) $ copyFileUsingCache ActuallyCopy (Ca cache) subdir f
        ffuc cache
hunk ./src/Darcs/Repository/Cache.lhs 157
-    `catchall` debugFail ("Couldn't fetch `"++f++"'\nin subdir "++subdir++
+    `catchall` debugFail ("Couldn't fetch `"++f++"'\nin subdir "++(hashedDir subdir)++
                           " from sources:\n\n"++show (Ca cache))
     where ffuc (Cache t NotWritable d:cs)
               | Anywhere == fromWhere || is_file (fn t d) =
hunk ./src/Darcs/Repository/Cache.lhs 195
           ffuc (_:cs) = ffuc cs
           ffuc [] = debugFail $ "No sources from which to fetch file `"++f++"'\n"++ show (Ca cache)
           tryLinking ff (Cache Directory Writable d) =
-              do createDirectoryIfMissing False (d++"/"++subdir)
+              do createDirectoryIfMissing False (d++"/"++(hashedDir subdir))
                  createLink ff (fn Directory d)
               `catchall` return ()
           tryLinking _ _ = return ()
hunk ./src/Darcs/Repository/Cache.lhs 199
-          fn Directory d = d ++ "/" ++ subdir ++ "/" ++ f
-          fn Repo r = r ++ "/"++darcsdir++"/" ++ subdir ++ "/" ++ f
+          fn Directory d = d ++ "/" ++ (hashedDir subdir) ++ "/" ++ f
+          fn Repo r = r ++ "/"++darcsdir++"/" ++ (hashedDir subdir) ++ "/" ++ f
 
hunk ./src/Darcs/Repository/Cache.lhs 202
-createCache :: CacheType -> String -> String -> IO ()
-createCache Directory d subdir = createDirectoryIfMissing True (d ++ "/" ++ subdir)
+createCache :: CacheType -> String -> HashedDir -> IO ()
+createCache Directory d subdir = createDirectoryIfMissing True (d ++ "/" ++ (hashedDir subdir))
 createCache _ _ _ = return ()
 
hunk ./src/Darcs/Repository/Cache.lhs 206
-writeFileUsingCache :: Cache -> [DarcsFlag] -> String -> PackedString -> IO String
+writeFileUsingCache :: Cache -> [DarcsFlag] -> HashedDir -> PackedString -> IO String
 writeFileUsingCache (Ca cache) opts subdir ps =
     (fetchFileUsingCachePrivate LocalOnly (Ca cache) subdir hash >> return hash) `catchall`
     wfuc cache `catchall`
hunk ./src/Darcs/Repository/Cache.lhs 210
-         debugFail ("Couldn't write `"++hash++"'\nin subdir "++subdir++" to sources:\n\n"++
+         debugFail ("Couldn't write `"++hash++"'\nin subdir "++(hashedDir subdir)++" to sources:\n\n"++
                     show (Ca cache))
     where hash = cacheHash ps
           wfuc (Cache _ NotWritable _:cs) = wfuc cs
hunk ./src/Darcs/Repository/Cache.lhs 220
                     then writeAtomicFilePS (fn t d) ps -- FIXME: create links in caches
                     else gzWriteAtomicFilePS (fn t d) ps -- FIXME: create links in caches
                  return hash
-          wfuc [] = debugFail $ "No location to write file `" ++ subdir ++"/"++hash ++ "'"
-          fn Directory d = d ++ "/" ++ subdir ++ "/" ++ hash
-          fn Repo r = r ++ "/"++darcsdir++"/" ++ subdir ++ "/" ++ hash
+          wfuc [] = debugFail $ "No location to write file `" ++ (hashedDir subdir) ++"/"++hash ++ "'"
+          fn Directory d = d ++ "/" ++ (hashedDir subdir) ++ "/" ++ hash
+          fn Repo r = r ++ "/"++darcsdir++"/" ++ (hashedDir subdir) ++ "/" ++ hash
 
hunk ./src/Darcs/Repository/Cache.lhs 224
-cleanCaches :: Cache -> String -> IO ()
+cleanCaches :: Cache -> HashedDir -> IO ()
 cleanCaches (Ca cs) subdir = mapM_ cleanCache cs
     where cleanCache (Cache Directory Writable d) =
hunk ./src/Darcs/Repository/Cache.lhs 227
-             (withCurrentDirectory (d++"/"++subdir) $
+             (withCurrentDirectory (d++"/"++(hashedDir subdir)) $
               do fs <- getDirectoryContents "."
hunk ./src/Darcs/Repository/Cache.lhs 229
-                 mapM_ clean $ progressList ("Cleaning cache "++d++"/"++subdir) $
+                 mapM_ clean $ progressList ("Cleaning cache "++d++"/"++(hashedDir subdir)) $
                        filter okayHash fs) `catchall` return ()
           cleanCache _ = return ()
           clean f = do lc <- linkCount `liftM` getSymbolicLinkStatus f
hunk ./src/Darcs/Repository/HashedIO.lhs 39
 import Darcs.Repository.Cache ( Cache, fetchFileUsingCache, writeFileUsingCache,
                                 peekInCache, speculateFileUsingCache,
                                 findFileMtimeUsingCache, setFileMtimeUsingCache,
-                                okayHash, cleanCaches )
+                                okayHash, cleanCaches, HashedDir(..), hashedDir )
 import Darcs.Patch ( Patchy, apply )
 import Darcs.IO ( ReadableDirectory(..), WriteableDirectory(..) )
 import Darcs.Flags ( DarcsFlag )
hunk ./src/Darcs/Repository/HashedIO.lhs 51
 import FastPackedString ( PackedString, packString, unpackPS, linesPS, unlinesPS, nilPS, lengthPS )
 import SHA1 ( sha1PS )
 
-readHashFile :: Cache -> String -> String -> IO (String,PackedString)
+readHashFile :: Cache -> HashedDir -> String -> IO (String,PackedString)
 readHashFile c subdir hash =
hunk ./src/Darcs/Repository/HashedIO.lhs 53
-    do debugMessage $ "Reading hash file "++hash++" from "++subdir++"/"
+    do debugMessage $ "Reading hash file "++hash++" from "++(hashedDir subdir)++"/"
        fetchFileUsingCache c subdir hash
 
 applyHashed :: Patchy q => Cache -> [DarcsFlag] -> String -> q C(x y) -> IO String
hunk ./src/Darcs/Repository/HashedIO.lhs 57
-applyHashed c fs h p = do s <- slurpHashedPristine c fs h "pristine.hashed"
+applyHashed c fs h p = do s <- slurpHashedPristine c fs h
                           let ms = withSlurpy s $ apply fs p
                           case ms of
                             Left e -> fail e
hunk ./src/Darcs/Repository/HashedIO.lhs 61
-                            Right (s', ()) -> writeHashedPristine c fs s' "pristine.hashed"
+                            Right (s', ()) -> writeHashedPristine c fs s'
 {-
 applyHashed c fs h p = do (_,hd) <- runStateT (apply fs p) $
                                     HashDir { permissions = RW, cache = c,
hunk ./src/Darcs/Repository/HashedIO.lhs 70
 -}
 
 data HashDir r p = HashDir { permissions :: !r, cache :: !Cache,
-                             options :: ![DarcsFlag], rootHash :: !String,
-                             hashDir :: !String }
+                             options :: ![DarcsFlag], rootHash :: !String }
 type HashedIO r p = StateT (HashDir r p) IO
 
 data RO = RO
hunk ./src/Darcs/Repository/HashedIO.lhs 176
 
 readhash :: String -> HashedIO r p PackedString
 readhash h = do c <- gets cache
-                dir_ <- gets hashDir
-                z <- lift $ unsafeInterleaveIO $ readHashFile c dir_ h
+                z <- lift $ unsafeInterleaveIO $ readHashFile c HashedPristineDir h
                 let (_,out) = z
                 return out
 
hunk ./src/Darcs/Repository/HashedIO.lhs 185
                          readhash h
 
 gethashmtime :: String -> HashedIO r p EpochTime
-gethashmtime h = do HashDir _ c _ _ dir_ <- get
-                    lift $ unsafeInterleaveIO $ findFileMtimeUsingCache c dir_ h
+gethashmtime h = do HashDir _ c _ _ <- get
+                    lift $ unsafeInterleaveIO $ findFileMtimeUsingCache c HashedPristineDir h
 
 withh :: String -> HashedIO RW p a -> HashedIO RW p (String,a)
 withh h j = do hd <- get
hunk ./src/Darcs/Repository/HashedIO.lhs 204
              return x
 
 safeInterleave :: HashedIO RO p a -> HashedIO r p a
-safeInterleave job = do HashDir _ c opts h dir_ <- get
+safeInterleave job = do HashDir _ c opts h <- get
                         z <- lift $ unsafeInterleaveIO $ runStateT job
hunk ./src/Darcs/Repository/HashedIO.lhs 206
-                             (HashDir { permissions = RO, cache = c, options = opts, rootHash = h, hashDir = dir_ })
+                             (HashDir { permissions = RO, cache = c, options = opts, rootHash = h })
                         let (x,_) = z
                         return x
 
hunk ./src/Darcs/Repository/HashedIO.lhs 217
               return cc
     where speculate :: [(a,b,String)] -> HashedIO r q ()
           speculate c = do cac <- gets cache
-                           dir_ <- gets hashDir
-                           mapM_ (\(_,_,z) -> lift $ speculateFileUsingCache cac dir_ z) c
+                           mapM_ (\(_,_,z) -> lift $ speculateFileUsingCache cac HashedPristineDir z) c
           peekroot :: HashedIO r p Bool
hunk ./src/Darcs/Repository/HashedIO.lhs 219
-          peekroot = do HashDir _ c _ h dir_ <- get
-                        lift $ peekInCache c dir_ h
+          peekroot = do HashDir _ c _ h <- get
+                        lift $ peekInCache c HashedPristineDir h
 
 writeroot :: [(ObjType, FileName, String)] -> HashedIO r p ()
 writeroot c = do h <- writedir c
hunk ./src/Darcs/Repository/HashedIO.lhs 262
 writeHashFile :: PackedString -> HashedIO r p String
 writeHashFile ps = do c <- gets cache
                       opts <- gets options
-                      dir_ <- gets hashDir
-                      lift $ writeFileUsingCache c opts dir_ ps
+                      lift $ writeFileUsingCache c opts HashedPristineDir ps
 
hunk ./src/Darcs/Repository/HashedIO.lhs 264
-slurpHashedPristine :: Cache -> [DarcsFlag] -> String -> String -> IO Slurpy
-slurpHashedPristine c opts h dir_ = fst `fmap` runStateT slh
+slurpHashedPristine :: Cache -> [DarcsFlag] -> String -> IO Slurpy
+slurpHashedPristine c opts h = fst `fmap` runStateT slh
                                   (HashDir { permissions = RO, cache = c,
hunk ./src/Darcs/Repository/HashedIO.lhs 267
-                                             options = opts, rootHash = h,
-                                             hashDir = dir_ })
+                                             options = opts, rootHash = h })
 
 slh :: HashedIO r p Slurpy
 slh = do c <- readroot
hunk ./src/Darcs/Repository/HashedIO.lhs 288
 rootdir :: FileName
 rootdir = fp2fn "."
 
-writeHashedPristine :: Cache -> [DarcsFlag] -> Slurpy -> String -> IO String
-writeHashedPristine c opts sl dir_ =
+writeHashedPristine :: Cache -> [DarcsFlag] -> Slurpy -> IO String
+writeHashedPristine c opts sl =
     do beginTedious k
        h <- fst `fmap` runStateT (hsl sl)
             (HashDir { permissions = RW, cache = c,
hunk ./src/Darcs/Repository/HashedIO.lhs 293
-                       hashDir = dir_,
                        options = opts, rootHash = sha1PS nilPS })
        endTedious k
        return h
hunk ./src/Darcs/Repository/HashedIO.lhs 319
                                        g (_:x) = g x
 
 syncHashedPristine :: Cache -> Slurpy -> String -> IO ()
-syncHashedPristine c s r = do runStateT sh $ HashDir {permissions=RW, cache=c, options=[], rootHash=r, hashDir="pristine.hashed" }
+syncHashedPristine c s r = do runStateT sh $ HashDir {permissions=RW, cache=c, options=[], rootHash=r }
                               return ()
     where sh = do cc <- readroot
                   lift $ tediousSize k (length cc)
hunk ./src/Darcs/Repository/HashedIO.lhs 329
                         Nothing -> return ()
           sh' (F,n,h) = case progress k $ grab n s of
                         Just (SlurpFile _ (_,t',l) x) ->
-                            do dir_ <- gets hashDir
-                               t <- lift $ findFileMtimeUsingCache c dir_ h
+                            do t <- lift $ findFileMtimeUsingCache c HashedPristineDir h
                                when (t' /= undefined_time && t' /= t) $
                                     do ps <- readhash h
                                        when (lengthPS ps == fromIntegral l && ps == x) $
hunk ./src/Darcs/Repository/HashedIO.lhs 333
-                                            lift $ setFileMtimeUsingCache c dir_ h t'
+                                            lift $ setFileMtimeUsingCache c HashedPristineDir h t'
                         _ -> return ()
           k = "Synchronizing pristine"
 
hunk ./src/Darcs/Repository/HashedIO.lhs 339
 copyHashed :: String -> Cache -> [DarcsFlag] -> String -> IO ()
 copyHashed k c opts z = do runStateT cph $ HashDir { permissions = RO, cache = c,
-                                                     options = opts, rootHash = z,
-                                                   hashDir = "pristine.hashed" }
+                                                     options = opts, rootHash = z }
                            return ()
     where cph = do cc <- readroot
                    lift $ tediousSize k (length cc)
hunk ./src/Darcs/Repository/HashedIO.lhs 358
 copyPartialHashed c opts root ff =
     do createDirectoryIfMissing True (basename ff)
        runStateT (cp $ fp2fn ff) $ HashDir { permissions = RO, cache = c,
-                                             options=opts, rootHash = root,
-                                             hashDir = "pristine.hashed" }
+                                             options=opts, rootHash = root }
        return ()
  where basename = reverse . dropWhile ('/' /=) . dropWhile ('/' ==) . reverse
        cp f = do mt <- identifyThing f
hunk ./src/Darcs/Repository/HashedIO.lhs 370
                    Nothing -> return ()
 
 -- Seems to list all hashes reachable from "root".
-listHashedContents :: String -> Cache -> [DarcsFlag] -> String -> String -> IO [String]
-listHashedContents k c opts root dir_ =
+listHashedContents :: String -> Cache -> [DarcsFlag] -> String -> IO [String]
+listHashedContents k c opts root =
     do beginTedious k
        tediousSize k 1
hunk ./src/Darcs/Repository/HashedIO.lhs 374
-       x <- fst `fmap` runStateT (lhc (D,fp2fn ".",root)) (HashDir RO c opts root dir_)
+       x <- fst `fmap` runStateT (lhc (D,fp2fn ".",root)) (HashDir RO c opts root)
        endTedious k
        return x
     where lhc :: (ObjType, FileName, String) -> HashedIO r a [String]
hunk ./src/Darcs/Repository/HashedIO.lhs 385
                                return (d:concat hcxs)
           lhc (F,_,h) = return [h]
 
-clean_hashdir :: Cache -> [DarcsFlag] -> String -> String -> IO ()
+clean_hashdir :: Cache -> [DarcsFlag] -> HashedDir -> String -> IO ()
 clean_hashdir c opts dir_ hashroot =
    do -- we'll remove obsolete bits of "dir"
hunk ./src/Darcs/Repository/HashedIO.lhs 388
-      debugMessage $ "Cleaning out " ++ dir_ ++ "..."
-      let hashdir = darcsdir ++ "/" ++ dir_ ++ "/"
-      hs <- listHashedContents "cleaning up..." c opts hashroot dir_
+      debugMessage $ "Cleaning out " ++ (hashedDir dir_) ++ "..."
+      let hashdir = darcsdir ++ "/" ++ (hashedDir dir_) ++ "/"
+      hs <- listHashedContents "cleaning up..." c opts hashroot
       fs <- filter okayHash `fmap` getDirectoryContents hashdir
       mapM_ (removeFileMayNotExist . (hashdir++)) (fs \\ hs)
       -- and also clean out any global caches.
hunk ./src/Darcs/Repository/HashedRepo.lhs 47
 import Darcs.FilePathUtils ( absolute_dir )
 import Darcs.Repository.Cache ( Cache, fetchFileUsingCache, speculateFileUsingCache,
                                 writeFileUsingCache,
-                                unionCaches, repo2cache, okayHash, takeHash )
+                                unionCaches, repo2cache, okayHash, takeHash,
+                                HashedDir(..), hashedDir )
 import Darcs.Repository.HashedIO ( applyHashed, slurpHashedPristine, writeHashedPristine,
                                    copyHashed, syncHashedPristine, copyPartialsHashed,
                                    clean_hashdir )
hunk ./src/Darcs/Repository/HashedRepo.lhs 104
    do -- we'll remove obsolete bits of our pristine cache
       debugMessage "Cleaning out the pristine cache..."
       i <- gzReadFilePS (darcsdir++"/hashed_inventory")
-      clean_hashdir (extractCache r) opts "pristine.hashed" $ inv2pris i
+      clean_hashdir (extractCache r) opts HashedPristineDir $ inv2pris i
 
 add_to_tentative_inventory :: RepoPatch p => Cache -> [DarcsFlag] -> PatchInfoAnd p C(x y) -> IO FilePath
 add_to_tentative_inventory c opts p =
hunk ./src/Darcs/Repository/HashedRepo.lhs 141
           cut_inv xs ((hp:<:r):<:rs) | info hp `elem` xs = cut_inv (info hp `delete` xs) (r:<:rs)
           cut_inv _ _ = Nothing
 
-writeHashFile :: Cache -> [DarcsFlag] -> String -> Doc -> IO String
-writeHashFile c opts subdir d = do debugMessage $ "Writing hash file to "++subdir
+writeHashFile :: Cache -> [DarcsFlag] -> HashedDir -> Doc -> IO String
+writeHashFile c opts subdir d = do debugMessage $ "Writing hash file to "++(hashedDir subdir)
                                    writeFileUsingCache c opts subdir $ renderPS d
 
 read_repo :: RepoPatch p => Repository p C(r u t) -> [DarcsFlag] -> String -> IO (PatchSet p C(r))
hunk ./src/Darcs/Repository/HashedRepo.lhs 184
           speculate :: String -> [(PatchInfo, String)] -> IO ()
           speculate h is = do already_got_one <- doesFileExist (d++"/"++darcsdir++"/patches/"++h)
                               unless already_got_one $
-                                     mapM_ (speculateFileUsingCache (extractCache repo) "patches" . snd) is
+                                     mapM_ (speculateFileUsingCache (extractCache repo) HashedPatchesDir . snd) is
           parse :: Patchy p => PatchInfo -> String -> IO (Sealed (p C(x)))
           parse i h = do debugMessage ("Reading patch file: "++ show (human_friendly i))
hunk ./src/Darcs/Repository/HashedRepo.lhs 187
-                         (fn,ps) <- fetchFileUsingCache (extractCache repo) "patches" h
+                         (fn,ps) <- fetchFileUsingCache (extractCache repo) HashedPatchesDir h
                          case readPatch ps of
                            Just (p,_) -> return p
                            Nothing -> fail $ unlines ["Couldn't parse file "++fn,
hunk ./src/Darcs/Repository/HashedRepo.lhs 208
                                    Sealed x <- createHashed h (parse i)
                                    return $ patchInfoAndPatch i $ unsafeCoerceP x
     where parse i h = do debugMessage ("Reading patch file: "++ show (human_friendly i))
-                         (fn,ps) <- fetchFileUsingCache c "patches" h
+                         (fn,ps) <- fetchFileUsingCache c HashedPatchesDir h
                          case readPatch ps of
                            Just (x,_) -> return x
                            Nothing -> fail $ unlines ["Couldn't parse patch file "++fn,
hunk ./src/Darcs/Repository/HashedRepo.lhs 253
                              Just lasthash -> text ("Starting with inventory:\n"++lasthash) $$
                                               inventorylist
                              _ -> inventorylist
-     hash <- writeHashFile c opts "inventories" inventorycontents
+     hash <- writeHashFile c opts HashedInventoriesDir inventorycontents
      return $ Just hash
 
 write_patch_if_necesary :: RepoPatch p => Cache -> [DarcsFlag]
hunk ./src/Darcs/Repository/HashedRepo.lhs 261
 write_patch_if_necesary c opts hp =
     case extractHash hp of
     Right h -> return (info hp, h)
-    Left p -> fmap (\h -> (info hp, h)) $ writeHashFile c opts "patches" $ showPatch p
+    Left p -> fmap (\h -> (info hp, h)) $ writeHashFile c opts HashedPatchesDir $ showPatch p
 
 pihash :: (PatchInfo,String) -> Doc
 pihash (pinf,hash) = showPatchInfo pinf $$ text ("hash: " ++ hash ++ "\n")
hunk ./src/Darcs/Repository/HashedRepo.lhs 283
 
 read_inventories :: Cache -> [DarcsFlag] -> String -> IO [[(PatchInfo, String)]]
 read_inventories cache opts ihash = do
-    (fn,i_and_p) <- fetchFileUsingCache cache "inventories" ihash
+    (fn,i_and_p) <- fetchFileUsingCache cache HashedInventoriesDir ihash
     let i = skip_pristine i_and_p
     (rest,str) <- case breakOnPS '\n' i of
                   (swt,pistr) | swt == packString "Starting with inventory:" ->
hunk ./src/Darcs/Repository/HashedRepo.lhs 330
 slurp_pristine_private :: Cache -> [DarcsFlag] -> PackedString -> IO Slurpy
 slurp_pristine_private c opts inv = case inv2pris inv of
                                     h | h == sha1PS nilPS -> return empty_slurpy
-                                      | otherwise -> slurpHashedPristine c opts h "pristine.hashed"
+                                      | otherwise -> slurpHashedPristine c opts h
 
 pristine_from_working :: Cache -> [DarcsFlag] -> IO ()
 pristine_from_working c opts = replacePristine c opts "."
hunk ./src/Darcs/Repository/HashedRepo.lhs 337
 
 replacePristine :: Cache -> [DarcsFlag] -> FilePath -> IO ()
 replacePristine c opts d = do s <- slurp_all_but_darcs d
-                              h <- writeHashedPristine c opts s "pristine.hashed"
+                              h <- writeHashedPristine c opts s
                               let t = darcsdir++"/hashed_inventory"
                               i <- gzReadFilePS t
                               writeDocBinFile t $ pris2inv h i
[Haddock the {slurp,write,sync}HashedPristine functions in HashedIO.
[EMAIL PROTECTED] hunk ./src/Darcs/Repository/HashedIO.lhs 264
                       opts <- gets options
                       lift $ writeFileUsingCache c opts HashedPristineDir ps
 
+-- |Create a Slurpy representing the pristine content determined by the
+-- supplied root hash (which uniquely determines the pristine tree)
 slurpHashedPristine :: Cache -> [DarcsFlag] -> String -> IO Slurpy
 slurpHashedPristine c opts h = fst `fmap` runStateT slh
                                   (HashDir { permissions = RO, cache = c,
hunk ./src/Darcs/Repository/HashedIO.lhs 290
 rootdir :: FileName
 rootdir = fp2fn "."
 
+-- |Write contents of a Slurpy into hashed pristine. Only files that have not
+-- not yet been hashed (that is, the hash corresponding to their content is
+-- already present in hashed pristine) will be written out, so it is efficient
+-- to use this function to update existing pristine cache. Note that the
+-- pristine root hash will *not* be updated. You need to do that manually.
 writeHashedPristine :: Cache -> [DarcsFlag] -> Slurpy -> IO String
 writeHashedPristine c opts sl =
     do beginTedious k
hunk ./src/Darcs/Repository/HashedIO.lhs 325
                                        g (s@(SlurpFile fn' _ _):_) | fn' == fn = Just s
                                        g (_:x) = g x
 
+-- |Update timestamps on pristine files to match those in the working directory
+-- (which is passed to this function in form of a Slurpy). It needed for the
+-- mtime-based smart_diff optimisation to work efficiently.
 syncHashedPristine :: Cache -> Slurpy -> String -> IO ()
 syncHashedPristine c s r = do runStateT sh $ HashDir {permissions=RW, cache=c, options=[], rootHash=r }
                               return ()

Context:

[don't show ssh stderr output unless we're passed --debug.
David Roundy <[EMAIL PROTECTED]>**20080831200751
 Also fix the incorrect comment that often incorrectly declares that the
 server is running an older version of darcs.
] 
[fix bug in --list-options (tab completion).
David Roundy <[EMAIL PROTECTED]>**20080830195051] 
[fix bug in makeRelative.
David Roundy <[EMAIL PROTECTED]>**20080830174722] 
[add warning to configure about Haskell zlib speed
Ganesh Sittampalam <[EMAIL PROTECTED]>**20080830013457] 
[make use of Haskell zlib dependent on bytestring
Ganesh Sittampalam <[EMAIL PROTECTED]>**20080829221605] 
[add option to use Haskell zlib package
Ganesh Sittampalam <[EMAIL PROTECTED]>**20080829203032] 
[Remove unused FileSystem module.
Eric Kow <[EMAIL PROTECTED]>**20080822151214] 
[Add a link to a repository browser for darcs's code.
Eric Kow <[EMAIL PROTECTED]>**20080829144357] 
[Replace grep invocation by perl code
[EMAIL PROTECTED] 
[clean up network/get.sh test.
David Roundy <[EMAIL PROTECTED]>**20080824190916] 
[fix type of withRepository and friends.
David Roundy <[EMAIL PROTECTED]>**20080828181834] 
[fix recent bug in --list-options.
David Roundy <[EMAIL PROTECTED]>**20080828162707] 
[Check for package random on windows, used in Ssh module.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080828091554] 
[Debug messages in curl module.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080827222845] 
[TAG working version.
David Roundy <[EMAIL PROTECTED]>**20080828131617] 
[Use InclusiveOrExclusive instead of Bool in apply_inv_to_matcher.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080827201820] 
[add more modules to make witnesses.
David Roundy <[EMAIL PROTECTED]>**20080827201217] 
[updates to Darcs.Patch.Unit for type witnesses
Jason Dagit <[EMAIL PROTECTED]>**20080827165445] 
[Refactor get_matcher and apply_inv_to_matcher functions from Darcs.Match module.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080827105843] 
[Resolve issue966: fix apply_inv_to_matcher_inclusive.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080827091833] 
[Simplify withCurrentDirectory.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080823004712] 
[updates to Sealed.lhs to support type witness refactor in commands
Jason Dagit <[EMAIL PROTECTED]>**20080827165357] 
[updates to Ordered.lhs to support type witness refactor in commands
Jason Dagit <[EMAIL PROTECTED]>**20080827165053] 
[make Annotate.lhs compile with type witnesses
Jason Dagit <[EMAIL PROTECTED]>**20080827164003] 
[fix type witnesses in Internal.
David Roundy <[EMAIL PROTECTED]>**20080827190200] 
[updates to Repository.Internal to fix conflicts and support type witness refactor in commands
Jason Dagit <[EMAIL PROTECTED]>**20080827165327] 
[fix error in Properties due to new commuteFL
Jason Dagit <[EMAIL PROTECTED]>**20080827044025] 
[fix minor type witness compile error with new commuteFL
Jason Dagit <[EMAIL PROTECTED]>**20080827041344] 
[fix conflicts with get_extra changes
Jason Dagit <[EMAIL PROTECTED]>**20080827041321] 
[improve reporting for bug in get_extra
Jason Dagit <[EMAIL PROTECTED]>**20080825011810] 
[Finish refactor of Unrevert as well as making it pass double-unrevert.sh
Jason Dagit <[EMAIL PROTECTED]>**20080825185907] 
[add double-unrevert.sh test
Jason Dagit <[EMAIL PROTECTED]>**20080825183235] 
[partial type witnesses in Unrevert
Jason Dagit <[EMAIL PROTECTED]>**20080813053837] 
[More ChangeLog entries since 2.0.2
Eric Kow <[EMAIL PROTECTED]>**20080826082638] 
[fix bug in defaultrepo.
David Roundy <[EMAIL PROTECTED]>**20080827152710] 
[fix accidental reversal in tentativelyAddToPending
Jason Dagit <[EMAIL PROTECTED]>**20080826003605] 
[minor refator to get_extra improve comments
Jason Dagit <[EMAIL PROTECTED]>**20080825170111] 
[Same ChangeLog entries since 2.0.2
Eric Kow <[EMAIL PROTECTED]>**20080825164844] 
[Some more globally ignored changes.
Eric Kow <[EMAIL PROTECTED]>**20080825164814] 
[Changelog (ignore 'Add a test entries')
Eric Kow <[EMAIL PROTECTED]>**20080822152614] 
[Simplify filepath handling, cutting lots of hardly-used code.
David Roundy <[EMAIL PROTECTED]>**20080824173919] 
[don't bother computing path when checking prereqs (since we now can handle looking at beginning/ending working directories).
David Roundy <[EMAIL PROTECTED]>**20080823193448] 
[resolve issue950: fix fix_filepath to work with --repodir (and add test demonstrating this).
David Roundy <[EMAIL PROTECTED]>**20080823185940] 
[eliminate fix_flag.
David Roundy <[EMAIL PROTECTED]>**20080823180947] 
[add new framework for ensuring that certain arguments are converted to absolute paths.
David Roundy <[EMAIL PROTECTED]>**20080823164410
 Currently this is only used for --output, but there are a few other
 commands we can fix.  Ideally, we'll fix enough flags that fix_flag
 will become identity, and can be removed.
] 
[make Darcs.Lock functions accept FilePathLike arguments.
David Roundy <[EMAIL PROTECTED]>**20080823162940] 
[refactor maybeMkSubPath very slightly.
David Roundy <[EMAIL PROTECTED]>**20080823143505] 
[refactor repoPath very slightly.
David Roundy <[EMAIL PROTECTED]>**20080823143153] 
[make makeAbsolute behavior match comment.
David Roundy <[EMAIL PROTECTED]>**20080823121149] 
[Fix makeAbsolute to work with '../foo' paths.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080822184823
 This fixes option arguments with '../', like 'darcs send -o ../foo.dpatch'.
 Part of issue950.
] 
[move withCurrentDirectory, withTempDir and withPermDir
David Roundy <[EMAIL PROTECTED]>**20080822155100
 out of RepoPath.  This is a pretty invasive change, part of a pathetic
 attempt to allow AbsolutePath to permeate the code when we know that
 paths are absolute.  Eventually this will allow us to statically
 ensure that paths *are* absolute.  For now, it mostly just makes a few
 things more ugly.  Eventually we'd like to only use (for instance)
 Darcs.RepoPath.getCurrentDirectory, which itself witnesses that the
 resulting path must be absolute.
] 
[rewrite mkAbsolutePath to be safe.
David Roundy <[EMAIL PROTECTED]>**20080822150037] 
[resolve conflicts.
David Roundy <[EMAIL PROTECTED]>**20080822133823] 
[Resolve issue936: fix type witnesses configure check.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080819193228] 
[Use forkIO in URL module as suggested by Simon Marlow.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080819182648] 
[Remove HTTP.copyUrl, integrate it to URL module.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080819170350] 
[More URL module refactoring.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080819145234] 
[Canonize Nathaniel Filardo and Simon Marlow.
Eric Kow <[EMAIL PROTECTED]>**20080822021232] 
[Add test case for issue966 (from Dan Pascu's bug report)
Eric Kow <[EMAIL PROTECTED]>**20080822020616] 
[remove trailing whitespace.
David Roundy <[EMAIL PROTECTED]>**20080821224353] 
[Documentation for match touch primitive.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080821193706] 
[Resolve issue115: match patches touching given files.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080821183355] 
[fix type witnesses in with_selected_patch_from_repo.
David Roundy <[EMAIL PROTECTED]>**20080820130112] 
[clean up bugs functions (eliminate darcsBug.h).
David Roundy <[EMAIL PROTECTED]>**20080820124425] 
[Fix a bug with incorrectly specified with_selecte_patch_from_repository.
Jason Dagit <[EMAIL PROTECTED]>**20080819233348] 
[Remove HTTP.exists, use Autoconf.have_HTTP instead.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080819131617] 
[fix improper use of bug in HTTP.
David Roundy <[EMAIL PROTECTED]>**20080819211201
 In these cases failure is not a bug, it may just as well mean that the
 user has typed in a bad URL.
] 
[Do not import HTTP module in Darcs.Bug, use bug and debugFail for error reporting in HTTP module.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080819124207] 
[fix incompatibility with ghc 6.6.
David Roundy <[EMAIL PROTECTED]>**20080819161540] 
[make scan_bundle create a lazy patch bundle.
David Roundy <[EMAIL PROTECTED]>**20080819154624
 The idea is to more easily catch errors in which the patch bundle is
 misused.
] 
[resolve conflicts with Darcs.Ordered change.
David Roundy <[EMAIL PROTECTED]>**20080819153558] 
[replace separate_middle_last_from_first and separate_last_from_first_middle with get_choices
Jason Dagit <[EMAIL PROTECTED]>**20080815222635] 
[correct a bug in with_selected_patches_from_repository
Jason Dagit <[EMAIL PROTECTED]>**20080815201125
 Fixing this bug allows w_s_p_f_r to have the expected type signature
 and also corrects a problem where the non-selected patches were returned
 in the wrong context.
] 
[refine type witnesses in SelectChanges
Jason Dagit <[EMAIL PROTECTED]>**20080813050425] 
[make WhatsNew work with type witnesses
Jason Dagit <[EMAIL PROTECTED]>**20080813044354] 
[major refactor of SelectChanges to work with type witnesses
Jason Dagit <[EMAIL PROTECTED]>**20080813031625] 
[Eliminate HopefullyPrivate (fixed patch edition)
[EMAIL PROTECTED] 
[Move Darcs.Patch.Ordered to Darcs.Ordered since it isn't patchy
[EMAIL PROTECTED] 
[Fix use of threadWaitRead on Windows
Simon Marlow <[EMAIL PROTECTED]>**20080819141151
 threadWaitRead doesn't work on Windows in all GHC versions < 6.10.1
 (which isn't released yet).
 
 This means that since darcs is compiled with -threaded, when compiled
 with GHC < 6.10 on Windows, darcs will not respond to ^C when waiting
 for user input.
 
] 
[Fix Windows build
Simon Marlow <[EMAIL PROTECTED]>**20080819134252
 On Windows, System.Posix.Types.FileOffset is not the same as the type
 of the st_size field of the stat structure: the latter is Int64,
 whereas COff == Int32.
 
 This is almost ceratinly not the right fix, but it gets the build
 going.
 
 In general I don't recommend using System.Posix.* on Windows.  The
 right way is to either use the official platform-independent libraries
 like System.IO, System.Directory or System.Process, or to use
 System.Win32 directly.
] 
[URL module refactoring.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080817124816] 
[Do not compile curl support if libwww is enabled.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080817121834] 
[URL.hs: always import debugFail, again.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080817121101] 
[URL.hs: call debugFail when download fails.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080816070213] 
[URL.hs: debug messages.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080816070147] 
[Spacing in Darcs/Commands/Changes.lhs
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080815221245] 
[Rename catchInt to catchInterrupt, better message when get is interrupted.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080815154421] 
[Resolve issue995: changes --context : {--human-readable,--xml-output} have no effect.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080815114105] 
[Tidy up known failing shell tests.
Eric Kow <[EMAIL PROTECTED]>**20080818102100
 
 * Keeping track of these bugs could be simpler if they were all
   associated with a ticket and a short description
 * The shell harness allows us to avoid a lot of bureaucracy in
   in the scripts.  In fact, people should be able to submit a
   bug just by sticking a shell script in bugs, no hoops to jump.
] 
[Tidy up failing test for issue1013.
Eric Kow <[EMAIL PROTECTED]>**20080818101351
 
 We don't need to use a $DARCS variable anymore, thanks to the shell
 harness.  Also, I noticed that what used to trigger a bug now hangs.
] 
[Add failing test for issue1012 (Simon Marlow).
Eric Kow <[EMAIL PROTECTED]>**20080818094104] 
[Add test for issue1017 (as suggested by Bjorn Bringert)
Eric Kow <[EMAIL PROTECTED]>**20080818194115] 
[don't print "Wrote patch to -" when writing patch to stdout.
David Roundy <[EMAIL PROTECTED]>**20080819142537] 
[always send with context.
David Roundy <[EMAIL PROTECTED]>**20080819140729] 
[Resolve issue823: do not exit on keyboard interrupt when getting patches.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080815070943
 And give a chance for go_to_chosen_version to run.
] 
[fix buggy comments in bugs/identical-patches.sh.
David Roundy <[EMAIL PROTECTED]>**20080814135322] 
[Add Ian's identical-patch test case.
Eric Kow <[EMAIL PROTECTED]>**20080813171032] 
[URL.hs: store only URL in waitToStart queue.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080813122246] 
[Add (failing) test for issue944.
Eric Kow <[EMAIL PROTECTED]>**20080814055903
 
 This appears to be a reggression from darcs 1.0.9, and was submitted by
 Wolfgang Lux on the bug tracker.  Interestingly, only the old format
 repositories are affected, not the hashed ones.
] 
[add type witnesses to TouchesFiles
Jason Dagit <[EMAIL PROTECTED]>**20080810063403] 
[add type witnesses to Patch/Choices.lhs
Jason Dagit <[EMAIL PROTECTED]>**20080809000237] 
[Split Cache mostly out of Darsc/Repository/Prefs into its own file (take 2)
[EMAIL PROTECTED] 
[Make Darcs.Repository.Prefs export the cache hash function
[EMAIL PROTECTED] 
[remove a few unsightly functions
Jason Dagit <[EMAIL PROTECTED]>**20080813061256] 
[Fix URL module bug with pipelining enabled.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080813081218] 
[Minor change to URL module.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080813074218] 
[Enable pipelining by default, add --disable-pipelining option (issue838).
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080813011342] 
[Generalize HashRepo.clean_pristine to HashIO.clean_hashdir.
[EMAIL PROTECTED] 
[Add writeSlurpy to roll out a copy of slurpy into a filesystem.
[EMAIL PROTECTED] 
[fix breakage in URL.
David Roundy <[EMAIL PROTECTED]>**20080812141220] 
[Parametrize "pristine.hashed" in a bunch of functions.
[EMAIL PROTECTED] 
[Rework URL module for multi threading.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080811221209] 
[Add thread synchronization to URL module and resume select() if interrupted by signal in curl module.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080810092810] 
[Handle error case with empty URL in URL.waitNextUrl function.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080809221755] 
[Add --debug-http flag to enable curl and libwww debug at run-time instead of compile-time.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080809154834] 
[Print a warning when the remote end does not have darcs 2.
Eric Kow <[EMAIL PROTECTED]>**20080811100933
 
 Two reasons:
 (1) right now people get a scary warning from ssh when it can't fetch
     some non-essential files (it used to be that we would send stderr from ssh
     to /dev/null, but that has other problems...)
 (2) darcs transfer-mode more widely deployed could help a lot of people
     wrt darcs performance
] 
[Added a beware note to the unrecord command
[EMAIL PROTECTED] 
[Fixed typo
[EMAIL PROTECTED] 
[Better debug messages in URL module.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080809215247] 
[make Convert.lhs compile.
David Roundy <[EMAIL PROTECTED]>**20080810201725] 
[improve type safety of Darcs.Repository.Internal.
Jason Dagit <[EMAIL PROTECTED]>**20080810051109] 
[Refactor `darcs convert' warning at kowey's request.
Trent W. Buck <[EMAIL PROTECTED]>**20080810110014] 
[Expand formats text based in part on suggestions from darcs-users
Max Battcher <[EMAIL PROTECTED]>**20080809184043] 
[Fixes to global cache text based on darcs-users suggestions
Max Battcher <[EMAIL PROTECTED]>**20080809181424] 
[Add user-focused documentation of repository format options
Max Battcher <[EMAIL PROTECTED]>**20080807195429] 
[Highlight the global cache as a best practice
Max Battcher <[EMAIL PROTECTED]>**20080807193918] 
[Describe best practice in `darcs convert --help'.
Trent W. Buck <[EMAIL PROTECTED]>**20080810110615] 
[add type witnesses to Population
Jason Dagit <[EMAIL PROTECTED]>**20080808053252] 
[add type witnesses to CommandsAux
Jason Dagit <[EMAIL PROTECTED]>**20080808052738] 
[Add type witnesses to more modules, rounding out Darcs/Repository/*
Jason Dagit <[EMAIL PROTECTED]>**20080808050947] 
[fixed a bug in identity_commutes property
Jason Dagit <[EMAIL PROTECTED]>**20080808023025
 In the right identity check the patch order should have gone from
 (identity :> p) to (p2 :> i2).  I added a rigid type context too
 so that ghc 6.8 and newer would type the definition.
] 
[Make Darcs.Repository.Internal compile with type witnesses.
Jason Dagit <[EMAIL PROTECTED]>**20080808015343] 
[UF8.lhs: remove unusued functions/imports/docs
[EMAIL PROTECTED] 
[Resolve issue974 : do not pass both -optc-g and -opta-g to GHC
Eric Kow <[EMAIL PROTECTED]>**20080807073620] 
[make this test more cross-platform
Simon Michael <[EMAIL PROTECTED]>**20080807103433] 
[document how to run unit tests
Simon Michael <[EMAIL PROTECTED]>**20080807030416] 
[move (most) failing tests to bugs for clean test output
Simon Michael <[EMAIL PROTECTED]>**20080806191336] 
[fix an old spelling error
Simon Michael <[EMAIL PROTECTED]>**20080806170432] 
[make searching for "test:" in makefile work
Simon Michael <[EMAIL PROTECTED]>**20080805222241] 
[run only normal (expected to pass) tests by default
Simon Michael <[EMAIL PROTECTED]>**20080805222108] 
[Downplay quantum mechanics link.
Eric Kow <[EMAIL PROTECTED]>**20080806124109
 Besides, darcs has far more than 3 users by now.
] 
[Make patch theory intro more inviting to math people.
Eric Kow <[EMAIL PROTECTED]>**20080806123411] 
[cleanup and slight rewrite of the test docs
Simon Michael <[EMAIL PROTECTED]>**20080806165949] 
[make order of running tests consistent
Simon Michael <[EMAIL PROTECTED]>**20080806172123] 
[small makefile refactoring: allow just the normal tests to be run, without bugs/*
Simon Michael <[EMAIL PROTECTED]>**20080805203242] 
[Rectify dist help
[EMAIL PROTECTED]
 Removed the "make dist" suggestion, the manual is a better place for that.
 Instead, make clear that it operates on a clean copy of the tree, and
 mention the "predist" functionality.
] 
[website: explain that darcs 2 is required to get the darcs source.
Simon Michael <[EMAIL PROTECTED]>**20080803181216] 
[Canonize Gaetan Lehmann and Daniel Buenzli.
Eric Kow <[EMAIL PROTECTED]>**20080730104357
 (for Daniel B, avoid an accent in his name)
] 
[configure: check for packages needed with split base.
Eric Kow <[EMAIL PROTECTED]>**20080730103840
 Now that all packages must be used explicitly.
] 
[fix type witness compile errors specific to ghc 6.8
Jason Dagit <[EMAIL PROTECTED]>**20080722182729] 
[avoid import of unused function fromMaybe.
David Roundy <[EMAIL PROTECTED]>**20080729172825] 
[configure: suggest regex-compat before text
Eric Kow <[EMAIL PROTECTED]>**20080725095336] 
[configure: mention Haskell in 'try installing' suggestion
Eric Kow <[EMAIL PROTECTED]>**20080725095015] 
[Typo (Text.Regex)
Eric Kow <[EMAIL PROTECTED]>**20080715121708] 
[Use haskeline to have a readline-like behavior when asking something to the user
[EMAIL PROTECTED]
 Unlike the implementations using readline or editline packages, this code
 code doesn't break the Ctrl-C behavior.
] 
[Improve generic rules for English plurals. 
Eric Kow <[EMAIL PROTECTED]>**20080604123728] 
[add configure check for Network.URI.
David Roundy <[EMAIL PROTECTED]>**20080711011914] 
[add -hide-all-packages to default GHCFLAGS.
David Roundy <[EMAIL PROTECTED]>**20080711010952] 
[add support for outputting patch numbers in darcs changes.
David Roundy <[EMAIL PROTECTED]>**20080710011211] 
[add support for matching single patches by index.
David Roundy <[EMAIL PROTECTED]>**20080710004512] 
[add support for matching ranges of patches (counting back from present).
David Roundy <[EMAIL PROTECTED]>**20080710003225] 
[Better avoid silly manpage error.
Trent W. Buck <[EMAIL PROTECTED]>**20080704024920
 
 It turned out only initialize's help string used 'quotes', so just
 remove them.  This makes init's docstring consistent with the others.
] 
[Missing period at end of sentence.
Trent W. Buck <[EMAIL PROTECTED]>**20080704024232] 
[darcs --overview no longer works, so don't document it.
Trent W. Buck <[EMAIL PROTECTED]>**20080704030804] 
[Avoid silly manpage error.
Trent W. Buck <[EMAIL PROTECTED]>**20080703010733
 man (nroff) treats an apostrophe in the first column specially,
 resulting in a syntax error without this patch.
 
 Ideally, all cases of 'foo' in the manpage (i.e. docstrings) should
 become `foo', since man -Tps turns ` and ' into left and right single
 quotes respectively.
] 
[obliterate whitespace in Darcs.Commands.Get
[EMAIL PROTECTED]
 'twas causing lhs/haddock difficulties where a \end{code} wasn't getting recognized.
] 
[rm haddock CPP business
[EMAIL PROTECTED]
 Try as I might, I can't see any reason to special-case some Haddock CPP logic to deal with some *commented-out guards*, unless CPP magically restores and uncomments the code if Haddock isn't being run.
] 
[make pull less verbose when --verbose flag is given.
David Roundy <[EMAIL PROTECTED]>**20080624170035] 
[fix makefile to remember to regenerate version information after running configure.
David Roundy <[EMAIL PROTECTED]>**20080624170001] 
[TAG 2.0.2
David Roundy <[EMAIL PROTECTED]>**20080624012041] 
Patch bundle hash:
5a4bb0d0219925e10f1d31c7255680b94a668b96
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to