Hi!
For Kowey with love.
Yours,
Petr.
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.
Thu Sep 4 12:28:55 CEST 2008 [EMAIL PROTECTED]
* Haddock speculateFileUsingCache.
New patches:
[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 <- slurpHashed c fs h "pristine.hashed"
+applyHashed c fs h p = do s <- slurpHashed 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', ()) -> hashSlurped c fs s' "pristine.hashed"
+ Right (s', ()) -> hashSlurped 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
-slurpHashed :: Cache -> [DarcsFlag] -> String -> String -> IO Slurpy
-slurpHashed c opts h dir_ = fst `fmap` runStateT slh
+slurpHashed :: Cache -> [DarcsFlag] -> String -> IO Slurpy
+slurpHashed 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 "."
-hashSlurped :: Cache -> [DarcsFlag] -> Slurpy -> String -> IO String
-hashSlurped c opts sl dir_ =
+hashSlurped :: Cache -> [DarcsFlag] -> Slurpy -> IO String
+hashSlurped 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
syncHashed :: Cache -> Slurpy -> String -> IO ()
-syncHashed c s r = do runStateT sh $ HashDir {permissions=RW, cache=c, options=[], rootHash=r, hashDir="pristine.hashed" }
+syncHashed 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, slurpHashed, hashSlurped,
copyHashed, syncHashed, 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 -> slurpHashed c opts h "pristine.hashed"
+ | otherwise -> slurpHashed 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 <- hashSlurped c opts s "pristine.hashed"
+ h <- hashSlurped c opts s
let t = darcsdir++"/hashed_inventory"
i <- gzReadFilePS t
writeDocBinFile t $ pris2inv h i
[Haddock speculateFileUsingCache.
[EMAIL PROTECTED] hunk ./src/Darcs/Repository/Cache.lhs 121
fn Directory d = d ++ "/" ++ (hashedDir subdir) ++ "/" ++ f
fn Repo r = r ++ "/"++darcsdir++"/" ++ (hashedDir subdir) ++ "/" ++ f
+-- |Note that the file is likely to be useful soon: pipelined downloads will
+-- add it to the (low-priority) queue, for the rest it is a noop.
speculateFileUsingCache :: Cache -> HashedDir -> String -> IO ()
speculateFileUsingCache c sd h = do debugMessage $ "Speculating on "++h
copyFileUsingCache OnlySpeculate c sd h
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:
9ab8a1c8ccd2f1074d807b6bfd194047e472cf73
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users