Petr Ročkai <[email protected]> added the comment: I have pushed the missing patches now, sorry for the inconvenience. This is the relevant diff:
Thu Jun 3 22:41:50 CEST 2010 Petr Rockai <[email protected]> * Make readBlob work out of the original working directory for Index Trees. diff -rN -u -p old-hashed-storage/Storage/Hashed/Index.hs new-hashed- storage/Storage/Hashed/Index.hs --- old-hashed-storage/Storage/Hashed/Index.hs 2010-06-06 16:40:45.000000000 +0200 +++ new-hashed-storage/Storage/Hashed/Index.hs 2010-06-06 16:40:45.000000000 +0200 @@ -50,13 +50,14 @@ import Bundled.Posix( getFileStatusBS, m getFileStatus, fileSize, fileExists ) import System.IO.MMap( mmapFileForeignPtr, mmapFileByteString, Mode(..) ) import System.IO( ) -import System.Directory( doesFileExist ) +import System.Directory( doesFileExist, getCurrentDirectory ) #if mingw32_HOST_OS import System.Directory( renameFile ) import System.FilePath( (<.>) ) #else import System.Directory( removeFile ) #endif +import System.FilePath( (</>) ) import Control.Monad( when ) import Control.Exception.Extensible @@ -220,6 +221,7 @@ mmapIndex indexpath req_size = do return (x, size) data IndexM m = Index { mmap :: (ForeignPtr ()) + , basedir :: FilePath , hashtree :: Tree m -> Hash , predicate :: AnchoredPath -> TreeItem m -> Bool } | EmptyIndex @@ -291,7 +293,7 @@ readFile index state item = size <- xlatePeek64 $ iSize item let mtime' = modificationTime st size' = fromIntegral $ fileSize st - readblob = readSegment (BSC.unpack $ iPath item, Nothing) + readblob = readSegment (basedir index </> BSC.unpack (iPath item), Nothing) exists = fileExists st we_changed = mtime /= mtime' || size /= size' hash = iHash' item @@ -329,8 +331,10 @@ updateIndex index = readIndex :: FilePath -> (Tree IO -> Hash) -> IO Index readIndex indexpath ht = do (mmap_ptr, mmap_size) <- mmapIndex indexpath 0 + base <- getCurrentDirectory return $ if mmap_size == 0 then EmptyIndex else Index { mmap = mmap_ptr + , basedir = base , hashtree = ht , predicate = \_ _ -> True } __________________________________ Darcs bug tracker <[email protected]> <http://bugs.darcs.net/patch264> __________________________________ _______________________________________________ darcs-users mailing list [email protected] http://lists.osuosl.org/mailman/listinfo/darcs-users
