git-annex 3.20120315 → 3.20120405
raw patch · 126 files changed
+526/−475 lines, 126 filesdep +HUnitdep +testpackbinary-added
Dependencies added: HUnit, testpack
Files
- .ghci +4/−0
- Annex/Content.hs +8/−25
- Annex/Queue.hs +3/−3
- Annex/Ssh.hs +2/−2
- Annex/UUID.hs +1/−2
- Annex/Version.hs +1/−2
- Backend.hs +2/−2
- Build/SysConfig.hi binary
- Build/SysConfig.o binary
- Build/TestConfig.hi binary
- Build/TestConfig.hs +7/−1
- Build/TestConfig.o binary
- CHANGELOG +8/−0
- Command/Find.hs +1/−1
- Command/Status.hs +29/−13
- Command/Unused.hs +3/−3
- Common.hi binary
- Common.o binary
- Config.hs +20/−9
- Git.hi binary
- Git.hs +12/−12
- Git.o binary
- Git/Branch.hs +5/−5
- Git/Command.hi binary
- Git/Command.o binary
- Git/Config.hs +6/−7
- Git/Construct.hs +25/−34
- Git/Index.hi binary
- Git/Index.o binary
- Git/Queue.hi binary
- Git/Queue.o binary
- Git/Types.hi binary
- Git/Types.o binary
- Init.hs +5/−5
- Logs/Presence.hs +3/−4
- Logs/Remote.hs +5/−4
- Makefile +9/−7
- Messages/JSON.hi binary
- Messages/JSON.o binary
- Remote/Bup.hs +2/−2
- Remote/Directory.hs +4/−10
- Remote/Git.hs +27/−27
- Remote/Helper/Hooks.hs +3/−5
- Remote/Helper/Ssh.hs +1/−1
- Remote/Hook.hs +9/−10
- Remote/Rsync.hs +12/−16
- Types/BranchState.hi binary
- Types/BranchState.o binary
- Types/TrustLevel.hi binary
- Types/TrustLevel.o binary
- Types/UUID.hi binary
- Types/UUID.o binary
- Upgrade/V0.hs +5/−8
- Upgrade/V1.hs +29/−27
- Utility/Base64.hi binary
- Utility/Base64.o binary
- Utility/CopyFile.hi binary
- Utility/CopyFile.o binary
- Utility/DataUnits.hi binary
- Utility/DataUnits.o binary
- Utility/Directory.hi binary
- Utility/Directory.o binary
- Utility/DiskFree.hs +29/−0
- Utility/Dot.hi binary
- Utility/Dot.o binary
- Utility/Exception.hi binary
- Utility/Exception.hs +1/−4
- Utility/Exception.o binary
- Utility/FileMode.hi binary
- Utility/FileMode.o binary
- Utility/FileSystemEncoding.hi binary
- Utility/FileSystemEncoding.o binary
- Utility/Format.hi binary
- Utility/Format.o binary
- Utility/JSONStream.hi binary
- Utility/JSONStream.o binary
- Utility/Matcher.hi binary
- Utility/Matcher.hs +5/−5
- Utility/Matcher.o binary
- Utility/Misc.hi binary
- Utility/Misc.o binary
- Utility/Monad.hi binary
- Utility/Monad.hs +8/−0
- Utility/Monad.o binary
- Utility/PartialPrelude.hi binary
- Utility/PartialPrelude.o binary
- Utility/Path.hi binary
- Utility/Path.o binary
- Utility/RsyncFile.hi binary
- Utility/RsyncFile.o binary
- Utility/SafeCommand.hi binary
- Utility/SafeCommand.o binary
- Utility/StatFS.hsc +0/−128
- Utility/State.hi binary
- Utility/State.o binary
- Utility/TempFile.hi binary
- Utility/TempFile.o binary
- Utility/Touch.hi binary
- Utility/Touch.o binary
- Utility/Url.hi binary
- Utility/Url.hs +12/−24
- Utility/Url.o binary
- Utility/diskfree.c +73/−0
- Utility/diskfree.h +1/−0
- configure.hi binary
- configure.hs +2/−17
- configure.o binary
- debian/changelog +8/−0
- debian/copyright +0/−30
- doc/bugs/configurable_path_to_git-annex-shell.mdwn +7/−0
- doc/bugs/git_annex_unused_seems_to_check_for_current_path.mdwn +2/−0
- doc/forum/Sharing_annex_with_local_clones.mdwn +1/−0
- doc/forum/Sharing_annex_with_local_clones/comment_1_2b60e13e5f7b8cee56cf2ddc6c47f64d._comment +12/−0
- doc/forum/Sharing_annex_with_local_clones/comment_2_24ff2c1eb643077daa37c01644cebcd2._comment +8/−0
- doc/forum/Sharing_annex_with_local_clones/comment_3_5359b8eada24d27be83214ac0ae62f23._comment +8/−0
- doc/forum/tell_us_how_you__39__re_using_git-annex.mdwn +12/−0
- doc/git-annex.mdwn +14/−8
- doc/index.mdwn +1/−1
- doc/install/OSX/comment_2_0327c64b15249596add635d26f4ce67f._comment +19/−0
- doc/install/OSX/comment_3_47c682a779812dda77601c24a619923c._comment +8/−0
- doc/news/sharebox_a_FUSE_filesystem_for_git-annex.mdwn +1/−1
- doc/news/version_3.20120229.mdwn +0/−4
- doc/news/version_3.20120405.mdwn +5/−0
- doc/not.mdwn +1/−1
- doc/tips/using_the_web_as_a_special_remote.mdwn +25/−0
- git-annex.cabal +12/−5
@@ -0,0 +1,4 @@+-- make ghci use precompiled modules, and C library+:set -outputdir=tmp+:set -IUtility+:load Common
@@ -33,11 +33,10 @@ import Logs.Location import Annex.UUID import qualified Git-import qualified Git.Config import qualified Annex import qualified Annex.Queue import qualified Annex.Branch-import Utility.StatFS+import Utility.DiskFree import Utility.FileMode import qualified Utility.Url as Url import Types.Key@@ -176,34 +175,19 @@ checkDiskSpace' :: Integer -> Key -> Annex () checkDiskSpace' adjustment key = do- g <- gitRepo- r <- getConfig g "diskreserve" ""- let reserve = fromMaybe megabyte $ readSize dataUnits r- stats <- liftIO $ getFileSystemStats (gitAnnexDir g)- sanitycheck r stats- case (stats, keySize key) of- (Nothing, _) -> return ()- (_, Nothing) -> return ()- (Just (FileSystemStats { fsStatBytesAvailable = have }), Just need) ->+ reserve <- getDiskReserve+ free <- inRepo $ getDiskFree . gitAnnexDir+ case (free, keySize key) of+ (Just have, Just need) -> when (need + reserve > have + adjustment) $ needmorespace (need + reserve - have - adjustment)+ _ -> return () where- megabyte :: Integer- megabyte = 1000000 needmorespace n = unlessM (Annex.getState Annex.force) $ error $ "not enough free space, need " ++ roughSize storageUnits True n ++ " more" ++ forcemsg forcemsg = " (use --force to override this check or adjust annex.diskreserve)"- sanitycheck r stats- | not (null r) && isNothing stats = do- unlessM (Annex.getState Annex.force) $- error $ "You have configured a diskreserve of "- ++ r ++- " but disk space checking is not working"- ++ forcemsg- return ()- | otherwise = return () {- Moves a file into .git/annex/objects/ -@@ -319,13 +303,12 @@ ( Annex.Branch.commit "update" , Annex.Branch.stage) where alwayscommit = fromMaybe True . Git.configTrue- <$> fromRepo (Git.Config.get "annex.alwayscommit" "")+ <$> getConfig "annex.alwayscommit" "" {- Downloads content from any of a list of urls. -} downloadUrl :: [Url.URLString] -> FilePath -> Annex Bool downloadUrl urls file = do- g <- gitRepo- o <- map Param . words <$> getConfig g "web-options" ""+ o <- map Param . words <$> getConfig "annex.web-options" "" liftIO $ anyM (\u -> Url.download u o file) urls {- Copies a key's content, when present, to a temp file.
@@ -14,7 +14,7 @@ import Common.Annex import Annex hiding (new) import qualified Git.Queue-import qualified Git.Config+import Config {- Adds a git command to the queue. -} add :: String -> [CommandParam] -> [FilePath] -> Annex ()@@ -43,11 +43,11 @@ new :: Annex Git.Queue.Queue new = do- q <- Git.Queue.new <$> fromRepo queuesize+ q <- Git.Queue.new <$> queuesize store q return q where- queuesize r = readish =<< Git.Config.getMaybe "annex.queuesize" r+ queuesize = readish <$> getConfig "annex.queuesize" "" store :: Git.Queue.Queue -> Annex () store q = changeState $ \s -> s { repoqueue = Just q }
@@ -15,7 +15,7 @@ import Common.Annex import Annex.LockPool import qualified Git-import qualified Git.Config+import Config import qualified Build.SysConfig as SysConfig {- Generates parameters to ssh to a given host (or user@host) on a given@@ -47,7 +47,7 @@ where caching = fromMaybe SysConfig.sshconnectioncaching . Git.configTrue- <$> fromRepo (Git.Config.get "annex.sshcaching" "")+ <$> getConfig "annex.sshcaching" "" cacheParams :: FilePath -> [CommandParam] cacheParams socketfile =
@@ -47,7 +47,7 @@ {- Looks up a repo's UUID, caching it in .git/config if it's not already. -} getRepoUUID :: Git.Repo -> Annex UUID getRepoUUID r = do- c <- fromRepo cached+ c <- toUUID <$> getConfig cachekey "" let u = getUncachedUUID r if c /= u && u /= NoUUID@@ -56,7 +56,6 @@ return u else return c where- cached = toUUID . Git.Config.get cachekey "" updatecache u = do g <- gitRepo when (g /= r) $ storeUUID cachekey u
@@ -8,7 +8,6 @@ module Annex.Version where import Common.Annex-import qualified Git.Config import Config type Version = String@@ -26,7 +25,7 @@ versionField = "annex.version" getVersion :: Annex (Maybe Version)-getVersion = handle <$> fromRepo (Git.Config.get versionField "")+getVersion = handle <$> getConfig versionField "" where handle [] = Nothing handle v = Just v
@@ -18,7 +18,7 @@ import System.Posix.Files import Common.Annex-import qualified Git.Config+import Config import qualified Annex import Annex.CheckAttr import Types.Key@@ -46,7 +46,7 @@ l' <- (lookupBackendName name :) <$> standard Annex.changeState $ \s -> s { Annex.backends = l' } return l'- standard = fromRepo $ parseBackendList . Git.Config.get "annex.backends" ""+ standard = parseBackendList <$> getConfig "annex.backends" "" parseBackendList [] = list parseBackendList s = map lookupBackendName $ words s
binary file changed (absent → 2557 bytes)
binary file changed (absent → 4400 bytes)
binary file changed (absent → 2894 bytes)
@@ -10,7 +10,8 @@ data ConfigValue = BoolConfig Bool | StringConfig String |- MaybeStringConfig (Maybe String)+ MaybeStringConfig (Maybe String) |+ MaybeBoolConfig (Maybe Bool) data Config = Config ConfigKey ConfigValue type Test = IO Config@@ -21,6 +22,7 @@ show (BoolConfig b) = show b show (StringConfig s) = show s show (MaybeStringConfig s) = show s+ show (MaybeBoolConfig s) = show s instance Show Config where show (Config key value) = unlines@@ -31,6 +33,7 @@ valuetype (BoolConfig _) = "Bool" valuetype (StringConfig _) = "String" valuetype (MaybeStringConfig _) = "Maybe String"+ valuetype (MaybeBoolConfig _) = "Maybe Bool" writeSysConfig :: [Config] -> IO () writeSysConfig config = writeFile "Build/SysConfig.hs" body@@ -109,6 +112,9 @@ testEnd (Config _ (StringConfig s)) = status s testEnd (Config _ (MaybeStringConfig (Just s))) = status s testEnd (Config _ (MaybeStringConfig Nothing)) = status "not available"+testEnd (Config _ (MaybeBoolConfig (Just True))) = status "yes"+testEnd (Config _ (MaybeBoolConfig (Just False))) = status "no"+testEnd (Config _ (MaybeBoolConfig Nothing)) = status "unknown" status :: String -> IO () status s = putStrLn $ ' ':s
binary file changed (absent → 25876 bytes)
@@ -1,3 +1,11 @@+git-annex (3.20120405) unstable; urgency=low++ * Rewrote free disk space checking code, moving the portability+ handling into a small C library.+ * status: Display amount of free disk space.++ -- Joey Hess <joeyh@debian.org> Thu, 05 Apr 2012 16:19:10 -0400+ git-annex (3.20120315) unstable; urgency=low * fsck: Fix up any broken links and misplaced content caused by the
@@ -42,7 +42,7 @@ start format file (key, _) = do -- only files inAnnex are shown, unless the user has requested -- others via a limit- whenM (liftM2 (||) limited (inAnnex key)) $+ whenM (limited <||> inAnnex key) $ unlessM (showFullJSON vars) $ case format of Nothing -> liftIO $ putStrLn file
@@ -22,12 +22,14 @@ import qualified Annex import Command import Utility.DataUnits+import Utility.DiskFree import Annex.Content import Types.Key import Backend import Logs.UUID import Logs.Trust import Remote+import Config -- a named computation that produces a statistic type Stat = StatState (Maybe (String, StatState String))@@ -76,6 +78,7 @@ , local_annex_size , known_annex_keys , known_annex_size+ , disk_size , bloom_info , backend_usage ]@@ -137,6 +140,20 @@ local_annex_keys = stat "local annex keys" $ json show $ countKeys <$> cachedPresentData +known_annex_size :: Stat+known_annex_size = stat "known annex size" $ json id $+ showSizeKeys <$> cachedReferencedData++known_annex_keys :: Stat+known_annex_keys = stat "known annex keys" $ json show $+ countKeys <$> cachedReferencedData++tmp_size :: Stat+tmp_size = staleSize "temporary directory size" gitAnnexTmpDir++bad_data_size :: Stat+bad_data_size = staleSize "bad keys size" gitAnnexBadDir+ bloom_info :: Stat bloom_info = stat "bloom filter size" $ json id $ do localkeys <- countKeys <$> cachedPresentData@@ -153,19 +170,18 @@ return $ size ++ note -known_annex_size :: Stat-known_annex_size = stat "known annex size" $ json id $- showSizeKeys <$> cachedReferencedData--known_annex_keys :: Stat-known_annex_keys = stat "known annex keys" $ json show $- countKeys <$> cachedReferencedData--tmp_size :: Stat-tmp_size = staleSize "temporary directory size" gitAnnexTmpDir--bad_data_size :: Stat-bad_data_size = staleSize "bad keys size" gitAnnexBadDir+disk_size :: Stat+disk_size = stat "available local disk space" $ json id $ lift $+ calcfree+ <$> getDiskReserve+ <*> inRepo (getDiskFree . gitAnnexDir)+ where+ calcfree reserve (Just have) =+ roughSize storageUnits True $ nonneg $ have - reserve+ calcfree _ _ = "unknown"+ nonneg x+ | x >= 0 = x+ | otherwise = 0 backend_usage :: Stat backend_usage = stat "backend usage" $ nojson $
@@ -23,13 +23,13 @@ import Utility.FileMode import Utility.TempFile import Logs.Location+import Config import qualified Annex import qualified Git import qualified Git.Command import qualified Git.Ref import qualified Git.LsFiles as LsFiles import qualified Git.LsTree as LsTree-import qualified Git.Config import qualified Backend import qualified Remote import qualified Annex.Branch@@ -189,10 +189,10 @@ -} bloomCapacity :: Annex Int bloomCapacity = fromMaybe 500000 . readish- <$> fromRepo (Git.Config.get "annex.bloomcapacity" "")+ <$> getConfig "annex.bloomcapacity" "" bloomAccuracy :: Annex Int bloomAccuracy = fromMaybe 1000 . readish- <$> fromRepo (Git.Config.get "annex.bloomaccuracy" "")+ <$> getConfig "annex.bloomaccuracy" "" bloomBitsHashes :: Annex (Int, Int) bloomBitsHashes = do capacity <- bloomCapacity
binary file changed (absent → 28564 bytes)
binary file changed (absent → 622 bytes)
@@ -12,6 +12,7 @@ import qualified Git.Config import qualified Git.Command import qualified Annex+import Utility.DataUnits type ConfigKey = String @@ -23,12 +24,15 @@ newg <- inRepo Git.Config.read Annex.changeState $ \s -> s { Annex.repo = newg } +{- Looks up a git config setting in git config. -}+getConfig :: ConfigKey -> String -> Annex String+getConfig key def = fromRepo $ Git.Config.get key def+ {- Looks up a per-remote config setting in git config. - Failing that, tries looking for a global config option. -}-getConfig :: Git.Repo -> ConfigKey -> String -> Annex String-getConfig r key def = do- def' <- fromRepo $ Git.Config.get ("annex." ++ key) def- fromRepo $ Git.Config.get (remoteConfig r key) def'+getRemoteConfig :: Git.Repo -> ConfigKey -> String -> Annex String+getRemoteConfig r key def =+ getConfig (remoteConfig r key) =<< getConfig key def {- A per-remote config setting in git config. -} remoteConfig :: Git.Repo -> ConfigKey -> String@@ -39,11 +43,11 @@ - is set and prints a number, that is used. -} remoteCost :: Git.Repo -> Int -> Annex Int remoteCost r def = do- cmd <- getConfig r "cost-command" ""+ cmd <- getRemoteConfig r "cost-command" "" (fromMaybe def . readish) <$> if not $ null cmd then liftIO $ snd <$> pipeFrom "sh" ["-c", cmd]- else getConfig r "cost" ""+ else getRemoteConfig r "cost" "" cheapRemoteCost :: Int cheapRemoteCost = 100@@ -69,7 +73,8 @@ {- Checks if a repo should be ignored. -} repoNotIgnored :: Git.Repo -> Annex Bool-repoNotIgnored r = not . fromMaybe False . Git.configTrue <$> getConfig r "ignore" ""+repoNotIgnored r = not . fromMaybe False . Git.configTrue+ <$> getRemoteConfig r "ignore" "" {- If a value is specified, it is used; otherwise the default is looked up - in git config. forcenumcopies overrides everything. -}@@ -78,10 +83,16 @@ where use (Just n) = return n use Nothing = perhaps (return 1) =<< - readish <$> fromRepo (Git.Config.get config "1")+ readish <$> getConfig "annex.numcopies" "1" perhaps fallback = maybe fallback (return . id)- config = "annex.numcopies" {- Gets the trust level set for a remote in git config. -} getTrustLevel :: Git.Repo -> Annex (Maybe String) getTrustLevel r = fromRepo $ Git.Config.getMaybe $ remoteConfig r "trustlevel"++{- Gets annex.diskreserve setting. -}+getDiskReserve :: Annex Integer+getDiskReserve = fromMaybe megabyte . readSize dataUnits+ <$> getConfig "diskreserve" ""+ where+ megabyte = 1000000
binary file changed (absent → 4033 bytes)
@@ -31,7 +31,6 @@ import qualified Data.Map as M import Data.Char import Network.URI (uriPath, uriScheme, unEscapeString)-import System.Directory import System.Posix.Files import Common@@ -83,11 +82,14 @@ repoIsLocalBare _ = False assertLocal :: Repo -> a -> a-assertLocal repo action = - if not $ repoIsUrl repo- then action- else error $ "acting on non-local git repo " ++ repoDescribe repo ++ - " not supported"+assertLocal repo action+ | repoIsUrl repo = error $ unwords+ [ "acting on non-local git repo"+ , repoDescribe repo+ , "not supported"+ ]+ | otherwise = action+ configBare :: Repo -> Bool configBare repo = maybe unknown (fromMaybe False . configTrue) $ M.lookup "core.bare" $ config repo@@ -113,12 +115,10 @@ hookPath :: String -> Repo -> IO (Maybe FilePath) hookPath script repo = do let hook = gitDir repo </> "hooks" </> script- e <- doesFileExist hook- if e- then do- m <- fileMode <$> getFileStatus hook- return $ if isExecutable m then Just hook else Nothing- else return Nothing+ ifM (catchBoolIO $ isexecutable hook)+ ( return $ Just hook , return Nothing )+ where+ isexecutable f = isExecutable . fileMode <$> getFileStatus f {- Path to a repository's --work-tree, that is, its top. -
binary file changed (absent → 14816 bytes)
@@ -41,14 +41,14 @@ -} fastForward :: Branch -> [Ref] -> Repo -> IO Bool fastForward _ [] _ = return True-fastForward branch (first:rest) repo = do+fastForward branch (first:rest) repo = -- First, check that the branch does not contain any -- new commits that are not in the first ref. If it does, -- cannot fast-forward.- diverged <- changed first branch repo- if diverged- then no_ff- else maybe no_ff do_ff =<< findbest first rest+ ifM (changed first branch repo)+ ( no_ff+ , maybe no_ff do_ff =<< findbest first rest+ ) where no_ff = return False do_ff to = do
binary file changed (absent → 4413 bytes)
binary file changed (absent → 19256 bytes)
@@ -26,16 +26,15 @@ {- Runs git config and populates a repo with its config. -} read :: Repo -> IO Repo-read repo@(Repo { location = Dir d }) = do+read repo@(Repo { location = Dir d }) = bracketcd d $ {- Cannot use pipeRead because it relies on the config having been already read. Instead, chdir to the repo. -}- cwd <- getCurrentDirectory- if dirContains d cwd- then go- else bracket_ (changeWorkingDirectory d) (changeWorkingDirectory cwd) go+ pOpen ReadFromPipe "git" ["config", "--null", "--list"] $ hRead repo where- go = pOpen ReadFromPipe "git" ["config", "--null", "--list"] $- hRead repo+ bracketcd to a = bracketcd' to a =<< getCurrentDirectory+ bracketcd' to a cwd + | dirContains to cwd = a+ | otherwise = bracket_ (changeWorkingDirectory to) (changeWorkingDirectory cwd) a read r = assertLocal r $ error $ "internal error; trying to read config of " ++ show r
@@ -69,27 +69,25 @@ - specified. -} fromAbsPath :: FilePath -> IO Repo fromAbsPath dir- | "/" `isPrefixOf` dir = do- -- Git always looks for "dir.git" in preference to- -- to "dir", even if dir ends in a "/".- let canondir = dropTrailingPathSeparator dir- let dir' = canondir ++ ".git"- e <- doesDirectoryExist dir'- if e- then ret dir'- else if "/.git" `isSuffixOf` canondir- then do- -- When dir == "foo/.git", git looks- -- for "foo/.git/.git", and failing- -- that, uses "foo" as the repository.- e' <- doesDirectoryExist $ dir </> ".git"- if e'- then ret dir- else ret $ takeDirectory canondir- else ret dir- | otherwise = error $ "internal error, " ++ dir ++ " is not absolute"+ | "/" `isPrefixOf` dir =+ ifM (doesDirectoryExist dir') ( ret dir' , hunt )+ | otherwise =+ error $ "internal error, " ++ dir ++ " is not absolute" where ret = newFrom . Dir+ {- Git always looks for "dir.git" in preference to+ - to "dir", even if dir ends in a "/". -}+ canondir = dropTrailingPathSeparator dir+ dir' = canondir ++ ".git"+ {- When dir == "foo/.git", git looks for "foo/.git/.git",+ - and failing that, uses "foo" as the repository. -}+ hunt+ | "/.git" `isSuffixOf` canondir =+ ifM (doesDirectoryExist $ dir </> ".git")+ ( ret dir+ , ret $ takeDirectory canondir+ )+ | otherwise = ret dir {- Remote Repo constructor. Throws exception on invalid url. -@@ -229,27 +227,20 @@ | otherwise = findname (n++[c]) cs seekUp :: (FilePath -> IO Bool) -> FilePath -> IO (Maybe FilePath)-seekUp want dir = do- ok <- want dir- if ok- then return $ Just dir- else case parentDir dir of+seekUp want dir =+ ifM (want dir)+ ( return $ Just dir+ , case parentDir dir of "" -> return Nothing d -> seekUp want d+ ) isRepoTop :: FilePath -> IO Bool-isRepoTop dir = do- r <- isRepo- if r- then return r- else isBareRepo+isRepoTop dir = ifM isRepo ( return True , isBareRepo ) where isRepo = gitSignature (".git" </> "config")- isBareRepo = do- e <- doesDirectoryExist (dir </> "objects")- if not e- then return e- else gitSignature "config"+ isBareRepo = ifM (doesDirectoryExist $ dir </> "objects")+ ( gitSignature "config" , return False ) gitSignature file = doesFileExist (dir </> file) newFrom :: RepoLocation -> IO Repo
binary file changed (absent → 786 bytes)
binary file changed (absent → 3032 bytes)
binary file changed (absent → 16957 bytes)
binary file changed (absent → 36544 bytes)
binary file changed (absent → 2797 bytes)
binary file changed (absent → 25896 bytes)
@@ -58,13 +58,13 @@ gitPreCommitHookUnWrite :: Annex () gitPreCommitHookUnWrite = unlessBare $ do hook <- preCommitHook- whenM (liftIO $ doesFileExist hook) $ do- c <- liftIO $ readFile hook- if c == preCommitScript- then liftIO $ removeFile hook- else warning $ "pre-commit hook (" ++ hook ++ + whenM (liftIO $ doesFileExist hook) $+ ifM (liftIO $ (==) preCommitScript <$> readFile hook)+ ( liftIO $ removeFile hook+ , warning $ "pre-commit hook (" ++ hook ++ ") contents modified; not deleting." ++ " Edit it to remove call to git annex."+ ) unlessBare :: Annex () -> Annex () unlessBare = unlessM $ fromRepo Git.repoIsLocalBare
@@ -99,10 +99,9 @@ {- Inserts a log into a map of logs, if the log has better (ie, newer) - information than the other logs in the map -} mapLog :: LogLine -> LogMap -> LogMap-mapLog l m = - if better- then M.insert i l m- else m+mapLog l m+ | better = M.insert i l m+ | otherwise = m where better = maybe True newer $ M.lookup i m newer l' = date l' <= date l
@@ -72,14 +72,15 @@ unescape (c:rest) | c == '&' = entity rest | otherwise = c : unescape rest- entity s = if ok- then chr (Prelude.read num) : unescape rest- else '&' : unescape s+ entity s+ | not (null num) && ";" `isPrefixOf` r =+ chr (Prelude.read num) : unescape rest+ | otherwise =+ '&' : unescape s where num = takeWhile isNumber s r = drop (length num) s rest = drop 1 r- ok = not (null num) && ";" `isPrefixOf` r {- for quickcheck -} prop_idempotent_configEscape :: String -> Bool
@@ -1,6 +1,6 @@ PREFIX=/usr IGNORE=-ignore-package monads-fd-BASEFLAGS=-Wall $(IGNORE) -outputdir tmp+BASEFLAGS=-Wall $(IGNORE) -outputdir tmp -IUtility GHCFLAGS=-O2 $(BASEFLAGS) ifdef PROFILE@@ -11,7 +11,8 @@ bins=git-annex mans=git-annex.1 git-annex-shell.1-sources=Build/SysConfig.hs Utility/StatFS.hs Utility/Touch.hs+sources=Build/SysConfig.hs Utility/Touch.hs+clibs=Utility/diskfree.o all=$(bins) $(mans) docs @@ -28,16 +29,17 @@ fast: GHCFLAGS=$(BASEFLAGS) fast: $(bins) -Build/SysConfig.hs: configure.hs Build/TestConfig.hs Utility/StatFS.hs+Build/SysConfig.hs: configure.hs Build/TestConfig.hs Build/Configure.hs $(GHCMAKE) configure ./configure %.hs: %.hsc hsc2hs $< -$(bins): $(sources)- $(GHCMAKE) $@ +git-annex: $(sources) $(clibs)+ $(GHCMAKE) $@ $(clibs)+ git-annex.1: doc/git-annex.mdwn ./mdwn2man git-annex 1 doc/git-annex.mdwn > git-annex.1 git-annex-shell.1: doc/git-annex-shell.mdwn@@ -57,7 +59,7 @@ fi test:- @if ! $(GHCMAKE) -O0 test; then \+ @if ! $(GHCMAKE) -O0 test $(clibs); then \ echo "** failed to build the test suite" >&2; \ exit 1; \ elif ! ./test; then \@@ -92,7 +94,7 @@ clean: rm -rf tmp $(bins) $(mans) test configure *.tix .hpc $(sources) \- doc/.ikiwiki html dist+ doc/.ikiwiki html dist $(clibs) # Workaround for cabal sdist not running Setup hooks, so I cannot # generate a file list there.
binary file changed (absent → 1609 bytes)
binary file changed (absent → 6016 bytes)
@@ -35,7 +35,7 @@ gen :: Git.Repo -> UUID -> Maybe RemoteConfig -> Annex Remote gen r u c = do- buprepo <- getConfig r "buprepo" (error "missing buprepo")+ buprepo <- getRemoteConfig r "buprepo" (error "missing buprepo") cst <- remoteCost r (if bupLocal buprepo then semiCheapRemoteCost else expensiveRemoteCost) bupr <- liftIO $ bup2GitRemote buprepo (u', bupr') <- getBupUUID bupr u@@ -99,7 +99,7 @@ bupSplitParams :: Git.Repo -> BupRepo -> Key -> CommandParam -> Annex [CommandParam] bupSplitParams r buprepo k src = do- o <- getConfig r "bup-split-options" ""+ o <- getRemoteConfig r "bup-split-options" "" let os = map Param $ words o showOutput -- make way for bup output return $ bupParams "split" buprepo
@@ -33,7 +33,7 @@ gen :: Git.Repo -> UUID -> Maybe RemoteConfig -> Annex Remote gen r u c = do- dir <- getConfig r "directory" (error "missing directory")+ dir <- getRemoteConfig r "directory" (error "missing directory") cst <- remoteCost r cheapRemoteCost let chunksize = chunkSize c return $ encryptableRemote c@@ -100,11 +100,7 @@ withCheckedFiles check Nothing d k a = go $ locations d k where go [] = return False- go (f:fs) = do- use <- check f- if use- then a [f]- else go fs+ go (f:fs) = ifM (check f) ( a [f] , go fs ) withCheckedFiles check (Just _) d k a = go $ locations d k where go [] = return False@@ -115,10 +111,8 @@ then do count <- readcount chunkcount let chunks = take count $ chunkStream f- ok <- all id <$> mapM check chunks- if ok- then a chunks- else return False+ ifM (all id <$> mapM check chunks)+ ( a chunks , return False ) else go fs readcount f = fromMaybe (error $ "cannot parse " ++ f) . (readish :: String -> Maybe Int)
@@ -7,8 +7,8 @@ module Remote.Git (remote, repoAvail) where -import Control.Exception.Extensible import qualified Data.Map as M+import Control.Exception.Extensible import Common.Annex import Utility.CopyFile@@ -102,11 +102,8 @@ where -- Reading config can fail due to IO error or -- for other reasons; catch all possible exceptions.- safely a = do- result <- liftIO (try a :: IO (Either SomeException Git.Repo))- case result of- Left _ -> return r- Right r' -> return r'+ safely a = either (const $ return r) return+ =<< liftIO (try a :: IO (Either SomeException Git.Repo)) pipedconfig cmd params = safely $ pOpen ReadFromPipe cmd (toCommand params) $@@ -127,10 +124,11 @@ Annex.changeState $ \s -> s { Annex.repo = g' } exchange [] _ = []- exchange (old:ls) new =- if Git.remoteName old == Git.remoteName new- then new : exchange ls new- else old : exchange ls new+ exchange (old:ls) new+ | Git.remoteName old == Git.remoteName new =+ new : exchange ls new+ | otherwise =+ old : exchange ls new {- Checks if a given remote has the content for a key inAnnex. - If the remote cannot be accessed, or if it cannot determine@@ -227,11 +225,11 @@ | not $ Git.repoIsUrl r = do loc <- liftIO $ gitAnnexLocation key r liftIO $ catchBoolIO $ createSymbolicLink loc file >> return True- | Git.repoIsSsh r = do- ok <- Annex.Content.preseedTmp key file- if ok- then copyFromRemote r key file- else return False+ | Git.repoIsSsh r =+ ifM (Annex.Content.preseedTmp key file)+ ( copyFromRemote r key file+ , return False+ ) | otherwise = return False {- Tries to copy a key's content to a remote's annex. -}@@ -254,22 +252,24 @@ rsyncHelper :: [CommandParam] -> Annex Bool rsyncHelper p = do showOutput -- make way for progress bar- res <- liftIO $ rsync p- if res- then return res- else do+ ifM (liftIO $ rsync p)+ ( return True+ , do showLongNote "rsync failed -- run git annex again to resume file transfer"- return res+ return False+ ) {- Copys a file with rsync unless both locations are on the same - filesystem. Then cp could be faster. -} rsyncOrCopyFile :: [CommandParam] -> FilePath -> FilePath -> Annex Bool-rsyncOrCopyFile rsyncparams src dest = do- ss <- liftIO $ getFileStatus $ parentDir src- ds <- liftIO $ getFileStatus $ parentDir dest- if deviceID ss == deviceID ds- then liftIO $ copyFileExternal src dest- else rsyncHelper $ rsyncparams ++ [Param src, Param dest]+rsyncOrCopyFile rsyncparams src dest =+ ifM (sameDeviceIds src dest)+ ( liftIO $ copyFileExternal src dest+ , rsyncHelper $ rsyncparams ++ [Param src, Param dest]+ )+ where+ sameDeviceIds a b = (==) <$> (getDeviceId a) <*> (getDeviceId b)+ getDeviceId f = deviceID <$> liftIO (getFileStatus $ parentDir f) {- Generates rsync parameters that ssh to the remote and asks it - to either receive or send the key's content. -}@@ -300,7 +300,7 @@ rsyncParams :: Git.Repo -> Annex [CommandParam] rsyncParams r = do- o <- getConfig r "rsync-options" ""+ o <- getRemoteConfig r "rsync-options" "" return $ options ++ map Param (words o) where -- --inplace to resume partial files
@@ -84,10 +84,8 @@ liftIO $ closeFd fd lookupHook :: Remote -> String -> Annex (Maybe String)-lookupHook r n = do- command <- getConfig (repo r) hookname ""- if null command- then return Nothing- else return $ Just command+lookupHook r n = go =<< getRemoteConfig (repo r) hookname "" where+ go "" = return Nothing+ go command = return $ Just command hookname = n ++ "-command"
@@ -19,7 +19,7 @@ - passed command. -} sshToRepo :: Git.Repo -> [CommandParam] -> Annex [CommandParam] sshToRepo repo sshcmd = do- opts <- map Param . words <$> getConfig repo "ssh-options" ""+ opts <- map Param . words <$> getRemoteConfig repo "ssh-options" "" params <- sshParams (Git.Url.hostuser repo, Git.Url.port repo) opts return $ params ++ sshcmd
@@ -30,7 +30,7 @@ gen :: Git.Repo -> UUID -> Maybe RemoteConfig -> Annex Remote gen r u c = do- hooktype <- getConfig r "hooktype" (error "missing hooktype")+ hooktype <- getRemoteConfig r "hooktype" (error "missing hooktype") cst <- remoteCost r expensiveRemoteCost return $ encryptableRemote c (storeEncrypted hooktype)@@ -74,28 +74,27 @@ lookupHook :: String -> String -> Annex (Maybe String) lookupHook hooktype hook =do- g <- gitRepo- command <- getConfig g hookname ""+ command <- getConfig hookname "" if null command then do warning $ "missing configuration for " ++ hookname return Nothing else return $ Just command where- hookname = hooktype ++ "-" ++ hook ++ "-hook"+ hookname = "annex." ++ hooktype ++ "-" ++ hook ++ "-hook" runHook :: String -> String -> Key -> Maybe FilePath -> Annex Bool -> Annex Bool runHook hooktype hook k f a = maybe (return False) run =<< lookupHook hooktype hook where run command = do showOutput -- make way for hook output- res <- liftIO $ boolSystemEnv- "sh" [Param "-c", Param command] $ hookEnv k f- if res- then a- else do+ ifM (liftIO $ boolSystemEnv+ "sh" [Param "-c", Param command] $ hookEnv k f)+ ( a+ , do warning $ hook ++ " hook exited nonzero!"- return res+ return False+ ) store :: String -> Key -> Annex Bool store h k = do
@@ -60,8 +60,8 @@ genRsyncOpts :: Git.Repo -> Annex RsyncOpts genRsyncOpts r = do- url <- getConfig r "rsyncurl" (error "missing rsyncurl")- opts <- getConfig r "rsync-options" ""+ url <- getRemoteConfig r "rsyncurl" (error "missing rsyncurl")+ opts <- getRemoteConfig r "rsync-options" "" return $ RsyncOpts url $ map Param $ filter safe $ words opts where safe o@@ -113,20 +113,16 @@ ] retrieveCheap :: RsyncOpts -> Key -> FilePath -> Annex Bool-retrieveCheap o k f = do- ok <- preseedTmp k f- if ok- then retrieve o k f- else return False+retrieveCheap o k f = ifM (preseedTmp k f) ( retrieve o k f , return False ) retrieveEncrypted :: RsyncOpts -> (Cipher, Key) -> Key -> FilePath -> Annex Bool retrieveEncrypted o (cipher, enck) _ f = withTmp enck $ \tmp -> do- res <- retrieve o enck tmp- if res- then liftIO $ catchBoolIO $ do+ ifM (retrieve o enck tmp)+ ( liftIO $ catchBoolIO $ do withDecryptedContent cipher (L.readFile tmp) $ L.writeFile f return True- else return res+ , return False+ ) remove :: RsyncOpts -> Key -> Annex Bool remove o k = withRsyncScratchDir $ \tmp -> liftIO $ do@@ -188,12 +184,12 @@ rsyncRemote :: RsyncOpts -> [CommandParam] -> Annex Bool rsyncRemote o params = do showOutput -- make way for progress bar- res <- liftIO $ rsync $ rsyncOptions o ++ defaultParams ++ params- if res- then return res- else do+ ifM (liftIO $ rsync $ rsyncOptions o ++ defaultParams ++ params)+ ( return True+ , do showLongNote "rsync failed -- run git annex again to resume file transfer"- return res+ return False+ ) where defaultParams = [Params "--progress"]
binary file changed (absent → 1153 bytes)
binary file changed (absent → 2400 bytes)
binary file changed (absent → 1259 bytes)
binary file changed (absent → 3240 bytes)
binary file changed (absent → 1175 bytes)
binary file changed (absent → 11540 bytes)
@@ -35,14 +35,11 @@ lookupFile0 = Upgrade.V1.lookupFile1 getKeysPresent0 :: FilePath -> Annex [Key]-getKeysPresent0 dir = do- exists <- liftIO $ doesDirectoryExist dir- if not exists- then return []- else do- contents <- liftIO $ getDirectoryContents dir- files <- liftIO $ filterM present contents- return $ map fileKey0 files+getKeysPresent0 dir = ifM (liftIO $ doesDirectoryExist dir)+ ( liftIO $ map fileKey0+ <$> (filterM present =<< getDirectoryContents dir)+ , return []+ ) where present d = do result <- tryIO $
@@ -50,18 +50,18 @@ upgrade = do showAction "v1 to v2" - bare <- fromRepo Git.repoIsLocalBare- if bare- then do+ ifM (fromRepo Git.repoIsLocalBare)+ ( do moveContent setVersion- else do+ , do moveContent updateSymlinks moveLocationLogs Annex.Queue.flush True setVersion+ ) Upgrade.V2.upgrade @@ -104,12 +104,11 @@ where oldlocationlogs = do dir <- fromRepo Upgrade.V2.gitStateDir- exists <- liftIO $ doesDirectoryExist dir- if exists- then do- contents <- liftIO $ getDirectoryContents dir- return $ mapMaybe oldlog2key contents- else return []+ ifM (liftIO $ doesDirectoryExist dir)+ ( mapMaybe oldlog2key+ <$> (liftIO $ getDirectoryContents dir)+ , return []+ ) move (l, k) = do dest <- fromRepo $ logFile2 k dir <- fromRepo Upgrade.V2.gitStateDir@@ -127,14 +126,13 @@ Annex.Queue.add "rm" [Param "--quiet", Param "-f", Param "--"] [f] oldlog2key :: FilePath -> Maybe (FilePath, Key)-oldlog2key l = - let len = length l - 4 in- if drop len l == ".log"- then let k = readKey1 (take len l) in- if null (keyName k) || null (keyBackendName k)- then Nothing- else Just (l, k)- else Nothing+oldlog2key l+ | drop len l == ".log" && sane = Just (l, k)+ | otherwise = Nothing+ where+ len = length l - 4+ k = readKey1 (take len l)+ sane = (not . null $ keyName k) && (not . null $ keyBackendName k) -- WORM backend keys: "WORM:mtime:size:filename" -- all the rest: "backend:key"@@ -143,10 +141,14 @@ -- v2 and v1; that infelicity is worked around by treating the value -- as the v2 key that it is. readKey1 :: String -> Key-readKey1 v = - if mixup- then fromJust $ readKey $ join ":" $ Prelude.tail bits- else Key { keyName = n , keyBackendName = b, keySize = s, keyMtime = t }+readKey1 v+ | mixup = fromJust $ readKey $ join ":" $ Prelude.tail bits+ | otherwise = Key+ { keyName = n+ , keyBackendName = b+ , keySize = s+ , keyMtime = t+ } where bits = split ":" v b = Prelude.head bits@@ -205,14 +207,14 @@ getKeyFilesPresent1 :: Annex [FilePath] getKeyFilesPresent1 = getKeyFilesPresent1' =<< fromRepo gitAnnexObjectDir getKeyFilesPresent1' :: FilePath -> Annex [FilePath]-getKeyFilesPresent1' dir = do- exists <- liftIO $ doesDirectoryExist dir- if not exists- then return []- else do+getKeyFilesPresent1' dir =+ ifM (liftIO $ doesDirectoryExist dir)+ ( do dirs <- liftIO $ getDirectoryContents dir let files = map (\d -> dir ++ "/" ++ d ++ "/" ++ takeFileName d) dirs liftIO $ filterM present files+ , return []+ ) where present f = do result <- tryIO $ getFileStatus f
binary file changed (absent → 980 bytes)
binary file changed (absent → 2820 bytes)
binary file changed (absent → 3358 bytes)
binary file changed (absent → 3364 bytes)
binary file changed (absent → 2140 bytes)
binary file changed (absent → 49224 bytes)
binary file changed (absent → 2638 bytes)
binary file changed (absent → 7240 bytes)
@@ -0,0 +1,29 @@+{- disk free space checking + -+ - Copyright 2012 Joey Hess <joey@kitenet.net>+ -+ - Licensed under the GNU GPL version 3 or higher.+ -}++{-# LANGUAGE ForeignFunctionInterface #-}++module Utility.DiskFree ( getDiskFree ) where++import Common++import Foreign.C.Types+import Foreign.C.String+import Foreign.C.Error++foreign import ccall unsafe "diskfree.h diskfree" c_diskfree+ :: CString -> IO CULLong++getDiskFree :: String -> IO (Maybe Integer)+getDiskFree path = withFilePath path $ \c_path -> do+ free <- c_diskfree c_path+ ifM (safeErrno <$> getErrno)+ ( return $ Just $ toInteger free+ , return Nothing+ )+ where+ safeErrno (Errno v) = v == 0
binary file changed (absent → 1375 bytes)
binary file changed (absent → 13280 bytes)
binary file changed (absent → 1571 bytes)
@@ -25,10 +25,7 @@ {- Catches IO errors and returns the error message. -} catchMsgIO :: IO a -> IO (Either String a)-catchMsgIO a = dispatch <$> tryIO a- where- dispatch (Left e) = Left $ show e- dispatch (Right v) = Right v+catchMsgIO a = either (Left . show) Right <$> tryIO a {- catch specialized for IO errors only -} catchIO :: IO a -> (IOException -> IO a) -> IO a
binary file changed (absent → 5516 bytes)
binary file changed (absent → 1300 bytes)
binary file changed (absent → 5524 bytes)
binary file changed (absent → 1471 bytes)
binary file changed (absent → 3656 bytes)
binary file changed (absent → 2338 bytes)
binary file changed (absent → 39364 bytes)
binary file changed (absent → 1280 bytes)
binary file changed (absent → 5020 bytes)
binary file changed (absent → 2061 bytes)
@@ -25,7 +25,7 @@ matchesAny ) where -import Control.Monad+import Common {- A Token can be an Operation of an arbitrary type, or one of a few - predefined peices of syntax. -}@@ -78,8 +78,8 @@ where go MAny = True go (MAnd m1 m2) = go m1 && go m2- go (MOr m1 m2) = go m1 || go m2- go (MNot m1) = not (go m1)+ go (MOr m1 m2) = go m1 || go m2+ go (MNot m1) = not $ go m1 go (MOp o) = a o v {- Runs a monadic Matcher, where Operations are actions in the monad. -}@@ -87,8 +87,8 @@ matchM m v = go m where go MAny = return True- go (MAnd m1 m2) = liftM2 (&&) (go m1) (go m2)- go (MOr m1 m2) = liftM2 (||) (go m1) (go m2)+ go (MAnd m1 m2) = go m1 <&&> go m2+ go (MOr m1 m2) = go m1 <||> go m2 go (MNot m1) = liftM not (go m1) go (MOp o) = o v
binary file changed (absent → 30548 bytes)
binary file changed (absent → 1430 bytes)
binary file changed (absent → 5400 bytes)
binary file changed (absent → 1214 bytes)
@@ -31,6 +31,14 @@ c <- cond if c then thenclause else elseclause +{- short-circuiting monadic || -}+(<||>) :: Monad m => m Bool -> m Bool -> m Bool+ma <||> mb = ifM ma ( return True , mb )++{- short-circuiting monadic && -}+(<&&>) :: Monad m => m Bool -> m Bool -> m Bool+ma <&&> mb = ifM ma ( mb , return False )+ {- Runs an action, passing its value to an observer before returning it. -} observe :: Monad m => (a -> m b) -> m a -> m a observe observer a = do
binary file changed (absent → 3756 bytes)
binary file changed (absent → 1470 bytes)
binary file changed (absent → 5456 bytes)
binary file changed (absent → 3361 bytes)
binary file changed (absent → 22356 bytes)
binary file changed (absent → 2611 bytes)
binary file changed (absent → 10856 bytes)
binary file changed (absent → 3740 bytes)
binary file changed (absent → 33320 bytes)
@@ -1,128 +0,0 @@--------------------------------------------------------------------------------- |------ (This code originally comes from xmobar)--- --- Module : StatFS--- Copyright : (c) Jose A Ortega Ruiz--- License : BSD-3-clause------ All rights reserved.--- --- Redistribution and use in source and binary forms, with or without--- modification, are permitted provided that the following conditions--- are met:--- --- 1. Redistributions of source code must retain the above copyright--- notice, this list of conditions and the following disclaimer.--- 2. Redistributions in binary form must reproduce the above copyright--- notice, this list of conditions and the following disclaimer in the--- documentation and/or other materials provided with the distribution.--- 3. Neither the name of the author nor the names of his contributors--- may be used to endorse or promote products derived from this software--- without specific prior written permission.--- --- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND--- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE--- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE--- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE--- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL--- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS--- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)--- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT--- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY--- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF--- SUCH DAMAGE.------ Maintainer : Jose A Ortega Ruiz <jao@gnu.org>--- Stability : unstable--- Portability : unportable------ A binding to C's statvfs(2)-----------------------------------------------------------------------------------{-# LANGUAGE CPP, ForeignFunctionInterface, EmptyDataDecls #-}---module Utility.StatFS ( FileSystemStats(..), getFileSystemStats ) where--import Utility.FileSystemEncoding--import Foreign-import Foreign.C.Types-import Foreign.C.String--#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__)-# include <sys/param.h>-# include <sys/mount.h>-#else-#if defined (__linux__)-#include <sys/vfs.h>-#else-#define UNKNOWN-#endif-#endif--data FileSystemStats = FileSystemStats {- fsStatBlockSize :: Integer- -- ^ Optimal transfer block size.- , fsStatBlockCount :: Integer- -- ^ Total data blocks in file system.- , fsStatByteCount :: Integer- -- ^ Total bytes in file system.- , fsStatBytesFree :: Integer- -- ^ Free bytes in file system.- , fsStatBytesAvailable :: Integer- -- ^ Free bytes available to non-superusers.- , fsStatBytesUsed :: Integer- -- ^ Bytes used.- } deriving (Show, Eq)--data CStatfs--#ifdef UNKNOWN-#warning free space checking code not available for this OS-#else-#if defined(__APPLE__)-foreign import ccall unsafe "sys/mount.h statfs64"-#else-#if defined(__FreeBSD__) || defined (__FreeBSD_kernel__)-foreign import ccall unsafe "sys/mount.h statfs"-#else-foreign import ccall unsafe "sys/vfs.h statfs64"-#endif-#endif- c_statfs :: CString -> Ptr CStatfs -> IO CInt-#endif--toI :: CULong -> Integer-toI = toInteger--getFileSystemStats :: String -> IO (Maybe FileSystemStats)-getFileSystemStats path =-#ifdef UNKNOWN- return Nothing-#else- allocaBytes (#size struct statfs) $ \vfs ->- withFilePath path $ \cpath -> do- res <- c_statfs cpath vfs- if res == -1 then return Nothing- else do- bsize <- (#peek struct statfs, f_bsize) vfs- bcount <- (#peek struct statfs, f_blocks) vfs- bfree <- (#peek struct statfs, f_bfree) vfs- bavail <- (#peek struct statfs, f_bavail) vfs- let bpb = toI bsize- let stats = FileSystemStats- { fsStatBlockSize = bpb- , fsStatBlockCount = toI bcount- , fsStatByteCount = toI bcount * bpb- , fsStatBytesFree = toI bfree * bpb- , fsStatBytesAvailable = toI bavail * bpb- , fsStatBytesUsed = toI (bcount - bfree) * bpb- }- if fsStatBlockCount stats == 0 || fsStatBlockSize stats == 0- then return Nothing- else return $ Just stats-#endif
binary file changed (absent → 1015 bytes)
binary file changed (absent → 2420 bytes)
binary file changed (absent → 2467 bytes)
binary file changed (absent → 6216 bytes)
binary file changed (absent → 8689 bytes)
binary file changed (absent → 8356 bytes)
binary file changed (absent → 3389 bytes)
@@ -9,21 +9,15 @@ URLString, check, exists,- canDownload, download, get ) where -import Control.Applicative-import Control.Monad+import Common import qualified Network.Browser as Browser import Network.HTTP import Network.URI-import Data.Maybe -import Utility.SafeCommand-import Utility.Path- type URLString = String {- Checks that an url exists and could be successfully downloaded,@@ -47,10 +41,7 @@ (2,_,_) -> return (True, size r) _ -> return (False, Nothing) where- size = liftM read . lookupHeader HdrContentLength . rspHeaders--canDownload :: IO Bool-canDownload = (||) <$> inPath "wget" <*> inPath "curl"+ size = liftM Prelude.read . lookupHeader HdrContentLength . rspHeaders {- Used to download large files, such as the contents of keys. -@@ -60,20 +51,17 @@ - for only one in. -} download :: URLString -> [CommandParam] -> FilePath -> IO Bool-download url options file = do- e <- inPath "wget"- if e- then- go "wget" [Params "-c -O", File file, File url]- else- -- Uses the -# progress display, because the normal- -- one is very confusing when resuming, showing- -- the remainder to download as the whole file,- -- and not indicating how much percent was- -- downloaded before the resume.- go "curl" [Params "-L -C - -# -o", File file, File url]+download url options file = ifM (inPath "wget") (wget , curl) where- go cmd opts = boolSystem cmd (options++opts)+ wget = go "wget" [Params "-c -O"]+ {- Uses the -# progress display, because the normal+ - one is very confusing when resuming, showing+ - the remainder to download as the whole file,+ - and not indicating how much percent was+ - downloaded before the resume. -}+ curl = go "curl" [Params "-L -C - -# -o"]+ go cmd opts = boolSystem cmd $+ options++opts++[File file, File url] {- Downloads a small file. -} get :: URLString -> IO String
binary file changed (absent → 18436 bytes)
@@ -0,0 +1,73 @@+/* disk free space checking, C mini-library+ *+ * Copyright 2012 Joey Hess <joey@kitenet.net>+ *+ * Licensed under the GNU GPL version 3 or higher.+ */++/* Include appropriate headers for the OS, and define what will be used to+ * check the free space. */+#if defined(__APPLE__)+# include <sys/param.h>+# include <sys/mount.h>+/* In newer OSX versions, statfs64 is deprecated, in favor of statfs,+ * which is 64 bit only with a build option -- but statfs64 still works,+ * and this keeps older OSX also supported. */+# define STATCALL statfs64+# define STATSTRUCT statfs64+#else+#if defined (__FreeBSD__)+# include <sys/param.h>+# include <sys/mount.h>+# define STATCALL statfs /* statfs64 not yet tested on a real FreeBSD machine */+# define STATSTRUCT statfs+#else+#if defined (__FreeBSD_kernel__) /* Debian kFreeBSD */+# include <sys/param.h>+# include <sys/mount.h>+# define STATCALL statfs64+# define STATSTRUCT statfs+#else+#if defined (__linux__)+/* This is a POSIX standard, so might also work elsewhere. */+# include <sys/statvfs.h>+# define STATCALL statvfs+# define STATSTRUCT statvfs+#else+# warning free space checking code not available for this OS+# define UNKNOWN+#endif+#endif+#endif+#endif++#include <errno.h>+#include <stdio.h>++/* Checks the amount of disk that is available to regular (non-root) users.+ * (If there's an error, or this is not supported,+ * returns 0 and sets errno to nonzero.)+ */+unsigned long long int diskfree(const char *path) {+#ifdef UNKNOWN+ errno = 1;+ return 0;+#else+ unsigned long long int available, blocksize;+ struct STATSTRUCT buf;++ errno = 0;+ if (STATCALL(path, &buf) != 0)+ return 0; /* errno is set */++ available = buf.f_bavail;+ blocksize = buf.f_bsize;+ return available * blocksize;+#endif+}++/*+main () {+ printf("%lli\n", diskfree("."));+}+*/
@@ -0,0 +1,1 @@+unsigned long long int diskfree(const char *path);
binary file changed (absent → 2502 bytes)
@@ -1,21 +1,6 @@ {- configure program -} -import Data.Maybe--import qualified Build.Configure as Configure-import Build.TestConfig-import Utility.StatFS--tests :: [TestCase]-tests = [ TestCase "StatFS" testStatFS- ] ++ Configure.tests--{- This test cannot be included in Build.Configure due to needing- - Utility/StatFS.hs to be built. -}-testStatFS :: Test-testStatFS = do- s <- getFileSystemStats "."- return $ Config "statfs_sane" $ BoolConfig $ isJust s+import Build.Configure main :: IO ()-main = Configure.run tests+main = run tests
binary file changed (absent → 37808 bytes)
@@ -1,3 +1,11 @@+git-annex (3.20120405) unstable; urgency=low++ * Rewrote free disk space checking code, moving the portability+ handling into a small C library.+ * status: Display amount of free disk space.++ -- Joey Hess <joeyh@debian.org> Thu, 05 Apr 2012 16:19:10 -0400+ git-annex (3.20120315) unstable; urgency=low * fsck: Fix up any broken links and misplaced content caused by the
@@ -7,33 +7,3 @@ The full text of version 3 of the GPL is distributed as doc/GPL in this package's source, or in /usr/share/common-licenses/GPL-3 on Debian systems.--Files: Utility/StatFS.hsc-Copyright: Jose A Ortega Ruiz <jao@gnu.org>-License: BSD-3-clause- -- All rights reserved.- -- - -- Redistribution and use in source and binary forms, with or without- -- modification, are permitted provided that the following conditions- -- are met:- -- - -- 1. Redistributions of source code must retain the above copyright- -- notice, this list of conditions and the following disclaimer.- -- 2. Redistributions in binary form must reproduce the above copyright- -- notice, this list of conditions and the following disclaimer in the- -- documentation and/or other materials provided with the distribution.- -- 3. Neither the name of the author nor the names of his contributors- -- may be used to endorse or promote products derived from this software- -- without specific prior written permission.- -- - -- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND- -- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE- -- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE- -- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE- -- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL- -- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS- -- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)- -- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT- -- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY- -- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF- -- SUCH DAMAGE.
@@ -0,0 +1,7 @@+On one of my ssh remotes I had to install git-annex using cabal. No system-wide installation possible. Hence `git-annex` and `git-annex-shell` are not in the default `$PATH` but in `$HOME/.cabal/bin`.++Right now the command run by git-annex when ssh'ing to a remote is hardcoded to "`git-annex-shell`", which doesn't work for me. It would be nice to be able to change this per remote, for example with an option named `annex.<remote>.annex-shell-command`. Changing "`git-annex-shell`" in `Remote/Helper/Ssh.hs` to "`~/.cabal/bin/git-annex-shell`" worked for me, but it's obviously very ugly :)++Could you do that please? I'll try to hack it myself and send you a patch in the next few days, but I'm pretty new to Haskell so it may take me a while... Thanks!++> [[closing|done]], see comments --[[Joey]]
@@ -35,3 +35,5 @@ > but I don't know how to construct such an ignore. > > --[[Joey]] ++>> Closing as there is no followup. [[done]] --[[Joey]]
@@ -0,0 +1,1 @@+Hi, is there any particular problem with symlinking one .git/annex to share between multiple repos?
@@ -0,0 +1,12 @@+[[!comment format=mdwn+ username="http://joey.kitenet.net/"+ nickname="joey"+ subject="don't do that"+ date="2012-03-19T18:23:13Z"+ content="""+Suppose you do that to repos A and B. Now, in A, you `git annex drop` a file that is only present in those repositories. A checks B to make sure it still has a copy of the file. It sees the (same) file there, so assumes it's safe to drop. The file is removed from A, also removing it from B, and losing data.++It is possible to configure A and B to mutually distrust one-another and avoid this problem, but there will be other problems too.++Instead, git-annex supports using `cp --reflink=auto`, which on filesystems supporting Copy On Write (eg, btrfs), avoids duplicating contents when A and B are on the same filesystem.+"""]]
@@ -0,0 +1,8 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawnhsaESlYphzLTzpJy5IxxGFxxctIhWYfo"+ nickname="Bryon"+ subject="comment 2"+ date="2012-03-19T18:46:13Z"+ content="""+Ah, OK. Is there a configuration step to set this up, or is this included magic in a new enough git-annex client?+"""]]
@@ -0,0 +1,8 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawnhsaESlYphzLTzpJy5IxxGFxxctIhWYfo"+ nickname="Bryon"+ subject="comment 3"+ date="2012-03-19T18:55:03Z"+ content="""+Nevermind, found it. (git-annex 0.08)+"""]]
@@ -0,0 +1,12 @@+Tell your git-annex stories here. Feel free to give as little or as much detail as appropriate about how you're using it. How's it working out for you?++I'll start with a comment a user just posted to IRC:++<pre>+oh my god, git-annex is amazing+this is the revolution in fucking with gigantic piles of files that I've been waiting for+</pre>++And then my own story: I have a ton of drives. I have a lot of servers. I live in a cabin on **dialup** and often have 1 hour on broadband in a week to get everything I need. Without git-annex, managing all this would not be possible. It works perfectly for me, not a surprise since I wrote it, but still, it's a different level of "perfect" than anything I could put together before.++[[!meta author=Joey]]
@@ -649,7 +649,7 @@ A command to run when git-annex begins to use the remote. This can be used to, for example, mount the directory containing the remote. - The command may be run repeatedly in multiple git-annex processes+ The command may be run repeatedly when multiple git-annex processes are running concurrently. * `remote.<name>.annex-stop-command`@@ -696,22 +696,28 @@ to or from this remote. For example, to force ipv6, and limit the bandwidth to 100Kbyte/s, set it to "-6 --bwlimit 100" -* `remote.<name>.annex-web-options`-- Options to use when using wget or curl to download a file from the web.- (wget is always used in preference to curl if available).- For example, to force ipv4 only, set it to "-4"- * `remote.<name>.annex-bup-split-options` Options to pass to bup split when storing content in this remote. For example, to limit the bandwidth to 100Kbye/s, set it to "--bwlimit 100k" (There is no corresponding option for bup join.) -* `annex.ssh-options`, `annex.rsync-options`, `annex.web-options, `annex.bup-split-options`+* `annex.ssh-options`, `annex.rsync-options`, `annex.bup-split-options` Default ssh, rsync, wget/curl, and bup options to use if a remote does not have specific options.++* `annex.web-options`++ Options to use when using wget or curl to download a file from the web.+ (wget is always used in preference to curl if available).+ For example, to force ipv4 only, set it to "-4"++* `remote.<name>.rsyncurl`++ Used by rsync special remotes, this configures+ the location of the rsync repository to use. Normally this is automaticaly+ set up by `git annex initremote`, but you can change it if needed. * `remote.<name>.buprepo`
@@ -24,7 +24,7 @@ [[Feeds]]: <small>-[[!inline pages="internal(feeds/*)" archive=yes show=5 feeds=no]]+[[!inline pages="internal(feeds/*)" archive=yes show=8 feeds=no]] </small> """]]
@@ -0,0 +1,19 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawkEUhIcw37X2Kh-dznSMIb9Vgcq0frfdWs"+ nickname="Ethan"+ subject="GHC 7"+ date="2012-03-28T19:06:51Z"+ content="""+The Haskell Platform installer for OSX uses GHC 7.0.4, which doesn't seem able to support the current version of git-annex.++Cabal throws a very cryptic error about not being able to use the proper base package.++I was able to install it by ++1. cloning the repo+2. merging the ghc7.0 branch+3. resolving merge conflicts in git-annex.cabal+4. cabal install git-annex.cabal++(Note I also tried this with homebrew and had similar results)+"""]]
@@ -0,0 +1,8 @@+[[!comment format=mdwn+ username="http://joey.kitenet.net/"+ nickname="joey"+ subject="ghc 7.0"+ date="2012-03-28T19:18:58Z"+ content="""+You did the right thing, although just checking out the ghc-7.0 branch will avoid merge conflicts. I am trying to keep it fairly close to up-to-date.+"""]]
@@ -1,7 +1,7 @@ [[!meta title="sharebox: a FUSE filesystem for git-annex"]] Christophe-Marie Duquesne has just announced -[Sharebox](https://github.com/chmduquesne/sharebox), a FUSE filesystem+[Sharebox](https://github.com/chmduquesne/sharebox-fs), a FUSE filesystem relying on git-annex: <blockquote>
@@ -1,4 +0,0 @@-git-annex 3.20120229 released with [[!toggle text="these changes"]]-[[!toggleable text="""- * Fix test suite to not require a unicode locale.- * Fix cabal build failure. Thanks, Sergei Trofimovich"""]]
@@ -0,0 +1,5 @@+git-annex 3.20120405 released with [[!toggle text="these changes"]]+[[!toggleable text="""+ * Rewrote free disk space checking code, moving the portability+ handling into a small C library.+ * status: Display amount of free disk space."""]]
@@ -7,7 +7,7 @@ * git-annex is not a filesystem or DropBox clone. But there is a FUSE filesystem built on top of git-annex, called - [ShareBox](https://github.com/chmduquesne/sharebox), and there is+ [ShareBox](https://github.com/chmduquesne/sharebox-fs), and there is interest in making it easy to use and covering some of the use cases supported by DropBox.
@@ -30,3 +30,28 @@ 00000000-0000-0000-0000-000000000001 -- web (Use --force to override this check, or adjust annex.numcopies.) failed++You can also add urls to any file already in the annex:++ # git annex addurl --file my_cool_big_file http://example.com/cool_big_file+ addurl my_cool_big_file ok+ # git annex whereis my_cool_big_file+ whereis my_cool_big_file (2 copies) + 00000000-0000-0000-0000-000000000001 -- web+ 27a9510c-760a-11e1-b9a0-c731d2b77df9 -- here++To add a lot of urls at once, just list them all as parameters to+`git annex addurl`. ++If you're adding a bunch of related files to a directory, or just don't+like the default filenames generated by `addurl`, you can use `--pathdepth`+to specify how many parts of the url are put in the filename.+A positive number drops that many paths from the beginning, while a negative+number takes that many paths from the end.+ + # git annex addurl http://example.com/videos/2012/01/video.mpeg+ addurl example.com_videos_2012_01_video.mpeg (downloading http://example.com/videos/2012/01/video.mpeg)+ # git annex addurl http://example.com/videos/2012/01/video.mpeg --pathdepth=2+ addurl 2012_01_video.mpeg (downloading http://example.com/videos/2012/01/video.mpeg)+ # git annex addurl http://example.com/videos/2012/video.mpeg --pathdepth=-2+ addurl 01_video.mpeg (downloading http://example.com/videos/2012/01/video.mpeg)
@@ -1,13 +1,13 @@ Name: git-annex-Version: 3.20120315-Cabal-Version: >= 1.6+Version: 3.20120405+Cabal-Version: >= 1.8 License: GPL Maintainer: Joey Hess <joey@kitenet.net> Author: Joey Hess Stability: Stable Copyright: 2010-2012 Joey Hess License-File: GPL-Extra-Source-Files: ./debian/NEWS ./debian/control ./debian/rules ./debian/changelog ./debian/doc-base ./debian/copyright ./debian/compat ./Messages/JSON.hs ./NEWS ./Option.hs ./configure.hs ./Annex.hs ./Seek.hs ./Crypto.hs ./Common.hs ./README ./Command/Merge.hs ./Command/AddUrl.hs ./Command/Whereis.hs ./Command/Unlock.hs ./Command/Commit.hs ./Command/Version.hs ./Command/FromKey.hs ./Command/PreCommit.hs ./Command/Sync.hs ./Command/Map.hs ./Command/Unused.hs ./Command/Uninit.hs ./Command/ReKey.hs ./Command/Migrate.hs ./Command/Init.hs ./Command/ConfigList.hs ./Command/Trust.hs ./Command/Lock.hs ./Command/SendKey.hs ./Command/RecvKey.hs ./Command/Reinject.hs ./Command/Add.hs ./Command/Fix.hs ./Command/Untrust.hs ./Command/Dead.hs ./Command/InitRemote.hs ./Command/Semitrust.hs ./Command/Fsck.hs ./Command/Move.hs ./Command/DropUnused.hs ./Command/Get.hs ./Command/Upgrade.hs ./Command/Describe.hs ./Command/Drop.hs ./Command/DropKey.hs ./Command/InAnnex.hs ./Command/Find.hs ./Command/Log.hs ./Command/Unannex.hs ./Command/Status.hs ./Command/Copy.hs ./Init.hs ./Types.hs ./Common/Annex.hs ./Makefile ./git-annex.cabal ./Upgrade/V1.hs ./Upgrade/V2.hs ./Upgrade/V0.hs ./GitAnnexShell.hs ./CHANGELOG ./Git/LsFiles.hs ./Git/Version.hs ./Git/UnionMerge.hs ./Git/Url.hs ./Git/HashObject.hs ./Git/Types.hs ./Git/CatFile.hs ./Git/Queue.hs ./Git/Ref.hs ./Git/Filename.hs ./Git/Branch.hs ./Git/Sha.hs ./Git/LsTree.hs ./Git/Config.hs ./Git/CheckAttr.hs ./Git/Command.hs ./Git/Construct.hs ./Git/Index.hs ./doc/upgrades.mdwn ./doc/forum/Recommended_number_of_repositories.mdwn ./doc/forum/unlock__47__lock_always_gets_me.mdwn ./doc/forum/wishlist:_define_remotes_that_must_have_all_files.mdwn ./doc/forum/Will_git_annex_work_on_a_FAT32_formatted_key__63__.mdwn ./doc/forum/wishlist:_command_options_changes/comment_2_f6a637c78c989382e3c22d41b7fb4cc2._comment ./doc/forum/wishlist:_command_options_changes/comment_3_bf1114533d2895804e531e76eb6b8095._comment ./doc/forum/wishlist:_command_options_changes/comment_1_bfba72a696789bf21b2435dea15f967a._comment ./doc/forum/pure_git-annex_only_workflow/comment_4_dc8a3f75533906ad3756fcc47f7e96bb._comment ./doc/forum/pure_git-annex_only_workflow/comment_15_cb7c856d8141b2de3cc95874753f1ee5._comment ./doc/forum/pure_git-annex_only_workflow/comment_7_33db51096f568c65b22b4be0b5538c0d._comment ./doc/forum/pure_git-annex_only_workflow/comment_9_ace319652f9c7546883b5152ddc82591._comment ./doc/forum/pure_git-annex_only_workflow/comment_12_ca8ca35d6cd4a9f94568536736c12adc._comment ./doc/forum/pure_git-annex_only_workflow/comment_10_683768c9826b0bf0f267e8734b9eb872._comment ./doc/forum/pure_git-annex_only_workflow/comment_11_6b541ed834ef45606f3b98779a25a148._comment ./doc/forum/pure_git-annex_only_workflow/comment_14_b63568b327215ef8f646a39d760fdfc0._comment ./doc/forum/pure_git-annex_only_workflow/comment_8_6e5b42fdb7801daadc0b3046cbc3d51e._comment ./doc/forum/pure_git-annex_only_workflow/comment_1_a32f7efd18d174845099a4ed59e6feae._comment ./doc/forum/pure_git-annex_only_workflow/comment_13_00c82d320c7b4bb51078beba17e14dc8._comment ./doc/forum/pure_git-annex_only_workflow/comment_3_9b7d89da52f7ebb7801f9ec8545c3aba._comment ./doc/forum/pure_git-annex_only_workflow/comment_6_3660d45c5656f68924acbd23790024ee._comment ./doc/forum/pure_git-annex_only_workflow/comment_2_66dc9b65523a9912411db03c039ba848._comment ./doc/forum/pure_git-annex_only_workflow/comment_5_afe5035a6b35ed2c7e193fb69cc182e2._comment ./doc/forum/wishlist:_git-annex_replicate/comment_3_c13f4f9c3d5884fc6255fd04feadc2b1._comment ./doc/forum/wishlist:_git-annex_replicate/comment_1_9926132ec6052760cdf28518a24e2358._comment ./doc/forum/wishlist:_git-annex_replicate/comment_2_c43932f4194aba8fb2470b18e0817599._comment ./doc/forum/wishlist:_git-annex_replicate/comment_4_63f24abf086d644dced8b01e1a9948c9._comment ./doc/forum/Podcast_syncing_use-case/comment_1_ace6f9d3a950348a3ac0ff592b62e786._comment ./doc/forum/Podcast_syncing_use-case/comment_2_930a6620b4d516e69ed952f9da5371bb._comment ./doc/forum/Behaviour_of_fsck/comment_4_e4911dc6793f98fb81151daacbe49968._comment ./doc/forum/Behaviour_of_fsck/comment_3_97848f9a3db89c0427cfb671ba13300e._comment ./doc/forum/Behaviour_of_fsck/comment_2_ead36a23c3e6efa1c41e4555f93e014e._comment ./doc/forum/Behaviour_of_fsck/comment_1_0e40f158b3f4ccdcaab1408d858b68b8._comment ./doc/forum/incompatible_versions__63__/comment_1_629f28258746d413e452cbd42a1a43f4._comment ./doc/forum/vlc_and_git-annex/comment_1_9c9ab8ce463cf74418aa2f385955f165._comment ./doc/forum/vlc_and_git-annex/comment_2_037f94c1deeac873dbdb36cd4c927e45._comment ./doc/forum/Recommended_number_of_repositories/comment_1_3ef256230756be8a9679b107cdbfd018._comment ./doc/forum/migration_to_git-annex_and_rsync.mdwn ./doc/forum/hashing_objects_directories.mdwn ./doc/forum/git_annex_ls___47___metadata_in_git_annex_whereis.mdwn ./doc/forum/unlock__47__lock_always_gets_me/comment_1_dee73a7ea3e1a5154601adb59782831f._comment ./doc/forum/git-subtree_support__63__.mdwn ./doc/forum/Podcast_syncing_use-case.mdwn ./doc/forum/hashing_objects_directories/comment_5_ef6cfd49d24c180c2d0a062e5bd3a0be._comment ./doc/forum/hashing_objects_directories/comment_1_c55c56076be4f54251b0b7f79f28a607._comment ./doc/forum/hashing_objects_directories/comment_2_504c96959c779176f991f4125ea22009._comment ./doc/forum/hashing_objects_directories/comment_3_9134bde0a13aac0b6a4e5ebabd7f22e8._comment ./doc/forum/hashing_objects_directories/comment_4_0de9170e429cbfea66f5afa8980d45ac._comment ./doc/forum/location_tracking_cleanup.mdwn ./doc/forum/Wishlist:_Ways_of_selecting_files_based_on_meta-information.mdwn ./doc/forum/confusion_with_remotes__44___map.mdwn ./doc/forum/git-annex_on_OSX.mdwn ./doc/forum/A_really_stupid_question.mdwn ./doc/forum/post-copy__47__sync_hook.mdwn ./doc/forum/git_tag_missing_for_3.20111011/comment_1_7a53bf273f3078ab3351369ef2b5f2a6._comment ./doc/forum/version_3_upgrade/comment_1_05fc9c9cad26c520bebb98c852c71e35._comment ./doc/forum/example_of_massively_disconnected_operation.mdwn ./doc/forum/git-annex_communication_channels/comment_2_c7aeefa6ef9a2e75d8667b479ade1b7f._comment ./doc/forum/git-annex_communication_channels/comment_5_404b723a681eb93fee015cea8024b6bc._comment ./doc/forum/git-annex_communication_channels/comment_1_198325d2e9337c90f026396de89eec0e._comment ./doc/forum/git-annex_communication_channels/comment_4_1ba6ddf54843c17c7d19a9996f2ab712._comment ./doc/forum/git-annex_communication_channels/comment_6_0d87d0e26461494b1d7f8a701a924729._comment ./doc/forum/git-annex_communication_channels/comment_3_1ff08a3e0e63fa0e560cbc9602245caa._comment ./doc/forum/git-annex_communication_channels/comment_7_2c87c7a0648fe87c2bf6b4391f1cc468._comment ./doc/forum/wishlist:_git-annex_replicate.mdwn ./doc/forum/advantages_of_SHA__42___over_WORM/comment_1_96c354cac4b5ce5cf6664943bc84db1d._comment ./doc/forum/performance_improvement:_git_on_ssd__44___annex_on_spindle_disk.mdwn ./doc/forum/Behaviour_of_fsck.mdwn ./doc/forum/git_annex_add_crash_and_subsequent_recovery.mdwn ./doc/forum/Handling_web_special_remote_when_content_changes__63__.mdwn ./doc/forum/nfs_mounted_repo_results_in_errors_on_drop__47__move.mdwn ./doc/forum/working_without_git-annex_commits.mdwn ./doc/forum/migrate_existing_git_repository_to_git-annex.mdwn ./doc/forum/__34__git_annex_lock__34___very_slow_for_big_repo.mdwn ./doc/forum/wishlist:_traffic_accounting_for_git-annex.mdwn ./doc/forum/git_pull_remote_git-annex.mdwn ./doc/forum/rsync_over_ssh__63__.mdwn ./doc/forum/unannex_alternatives/comment_3_b1687fc8f9e7744327bbeb6f0635d1cd._comment ./doc/forum/unannex_alternatives/comment_1_dcd4cd41280b41512bbdffafaf307993._comment ./doc/forum/unannex_alternatives/comment_2_58a72a9fe0f58c7af0b4d7927a2dd21d._comment ./doc/forum/wishlist:_git_annex_status/comment_4_9aeeb83d202dc8fb33ff364b0705ad94._comment ./doc/forum/wishlist:_git_annex_status/comment_3_d1fd70c67243971c96d59e1ffb7ef6e7._comment ./doc/forum/wishlist:_git_annex_status/comment_2_c2b0ce025805b774dc77ce264a222824._comment ./doc/forum/wishlist:_git_annex_status/comment_1_994bfd12c5d82e08040d6116915c5090._comment ./doc/forum/git_pull_remote_git-annex/comment_7_24c45ee981b18bc78325c768242e635d._comment ./doc/forum/git_pull_remote_git-annex/comment_2_0f7f4a311b0ec1d89613e80847e69b42._comment ./doc/forum/git_pull_remote_git-annex/comment_1_9c245db3518d8b889ecdf5115ad9e053._comment ./doc/forum/git_pull_remote_git-annex/comment_5_4f2a05ef6551806dd0ec65372f183ca4._comment ./doc/forum/git_pull_remote_git-annex/comment_4_646f2077edcabc000a7d9cb75a93cf55._comment ./doc/forum/git_pull_remote_git-annex/comment_8_7e76ee9b6520cbffaf484c9299a63ad3._comment ./doc/forum/git_pull_remote_git-annex/comment_3_1aa89725b5196e40a16edeeb5ccfa371._comment ./doc/forum/git_pull_remote_git-annex/comment_6_3925d1aa56bce9380f712e238d63080f._comment ./doc/forum/Please_fix_compatibility_with_ghc_7.0.mdwn ./doc/forum/wishlist:_command_options_changes.mdwn ./doc/forum/location_tracking_cleanup/comment_3_c15428cec90e969284a5e690fb4b2fde._comment ./doc/forum/location_tracking_cleanup/comment_2_e7395cb6e01f42da72adf71ea3ebcde4._comment ./doc/forum/location_tracking_cleanup/comment_1_7d6319e8c94dfe998af9cfcbf170efb2._comment ./doc/forum/new_microfeatures/comment_2_41ad904c68e89c85e1fc49c9e9106969._comment ./doc/forum/new_microfeatures/comment_1_058bd517c6fffaf3446b1f5d5be63623._comment ./doc/forum/new_microfeatures/comment_3_a1a9347b5bc517f2a89a8b292c3f8517._comment ./doc/forum/new_microfeatures/comment_7_94045b9078b1fff877933b012d1b49e2._comment ./doc/forum/new_microfeatures/comment_5_3c627d275586ff499d928a8f8136babf._comment ./doc/forum/new_microfeatures/comment_4_5a6786dc52382fff5cc42fdb05770196._comment ./doc/forum/new_microfeatures/comment_6_31ea08c008500560c0b96c6601bc6362._comment ./doc/forum/Error_while_adding_a_file___34__createSymbolicLink:_already_exists__34__.mdwn ./doc/forum/How_to_expire_old_versions_of_files_that_have_been_edited__63__.mdwn ./doc/forum/advantages_of_SHA__42___over_WORM.mdwn ./doc/forum/wishlist:_git_annex_put_--_same_as_get__44___but_for_defaults.mdwn ./doc/forum/cloud_services_to_support.mdwn ./doc/forum/OSX__39__s_default_sshd_behaviour_has_limited_paths_set.mdwn ./doc/forum/Auto_archiving.mdwn ./doc/forum/bainstorming:_git_annex_push___38___pull.mdwn ./doc/forum/sparse_git_checkouts_with_annex.mdwn ./doc/forum/Need_new_build_instructions_for_Debian_stable.mdwn ./doc/forum/batch_check_on_remote_when_using_copy.mdwn ./doc/forum/tips:_special__95__remotes__47__hook_with_tahoe-lafs.mdwn ./doc/forum/wishlist:alias_system.mdwn ./doc/forum/incompatible_versions__63__.mdwn ./doc/forum/Automatic_commit_messages_for_git_annex_sync.mdwn ./doc/forum/fsck_gives_false_positives.mdwn ./doc/forum/Preserving_file_access_rights_in_directory_tree_below_objects__47__.mdwn ./doc/forum/A_really_stupid_question/comment_1_40e02556de0b00b94f245a0196b5a89f._comment ./doc/forum/wishlist:_git_backend_for_git-annex.mdwn ./doc/forum/vlc_and_git-annex.mdwn ./doc/forum/seems_to_build_fine_on_haskell_platform_2011.mdwn ./doc/forum/rsync_over_ssh__63__/comment_1_ee21f32e90303e20339e0a568321bbbe._comment ./doc/forum/rsync_over_ssh__63__/comment_2_aa690da6ecfb2b30fc5080ad76dc77b1._comment ./doc/forum/wishlist:_special_remote_for_sftp_or_rsync.mdwn ./doc/forum/OSX__39__s_haskell-platform_statically_links_things.mdwn ./doc/forum/using_git_annex_to_merge_and_synchronize_2_directories___40__like_unison__41__.mdwn ./doc/forum/git_tag_missing_for_3.20111011.mdwn ./doc/forum/unannex_alternatives.mdwn ./doc/forum/can_git-annex_replace_ddm__63__.mdwn ./doc/forum/sparse_git_checkouts_with_annex/comment_2_e357db3ccc4079f07a291843975535eb._comment ./doc/forum/sparse_git_checkouts_with_annex/comment_1_c7dc199c5740a0e7ba606dfb5e3e579a._comment ./doc/forum/sparse_git_checkouts_with_annex/comment_3_fcfafca994194d57dccf5319c7c9e646._comment ./doc/forum/sparse_git_checkouts_with_annex/comment_4_04dc14880f31eee2b6d767d4d4258c5a._comment ./doc/forum/syncing_non-git_trees_with_git-annex.mdwn ./doc/forum/git-annex_communication_channels.mdwn ./doc/forum/fsck_gives_false_positives/comment_4_7ceb395bf8a2e6a041ccd8de63b1b6eb._comment ./doc/forum/fsck_gives_false_positives/comment_3_692d6d4cd2f75a497e7d314041a768d2._comment ./doc/forum/fsck_gives_false_positives/comment_5_86484a504c3bbcecd5876982b9c95688._comment ./doc/forum/fsck_gives_false_positives/comment_2_f51c53f3f6e6ee1ad463992657db5828._comment ./doc/forum/fsck_gives_false_positives/comment_1_b91070218b9d5fb687eeee1f244237ad._comment ./doc/forum/can_git-annex_replace_ddm__63__/comment_3_4c69097fe2ee81359655e59a03a9bb8d._comment ./doc/forum/can_git-annex_replace_ddm__63__/comment_2_008554306dd082d7f543baf283510e92._comment ./doc/forum/can_git-annex_replace_ddm__63__/comment_1_aa05008dfe800474ff76678a400099e1._comment ./doc/forum/version_3_upgrade.mdwn ./doc/forum/relying_on_git_for_numcopies/comment_3_43d8e1513eb9947f8a503f094c03f307._comment ./doc/forum/relying_on_git_for_numcopies/comment_2_be6acbc26008a9cb54e7b8f498f2c2a2._comment ./doc/forum/relying_on_git_for_numcopies/comment_1_8ad3cccd7f66f6423341d71241ba89fc._comment ./doc/forum/confusion_with_remotes__44___map/comment_1_a38ded23b7f288292a843abcb1a56f38._comment ./doc/forum/confusion_with_remotes__44___map/comment_2_cd1c98b1276444e859a22c3dbd6f2a79._comment ./doc/forum/confusion_with_remotes__44___map/comment_6_496b0d9b86869bbac3a1356d53a3dda4._comment ./doc/forum/confusion_with_remotes__44___map/comment_5_27801584325d259fa490f67273f2ff71._comment ./doc/forum/confusion_with_remotes__44___map/comment_4_3b89b6d1518267fcbc050c9de038b9ca._comment ./doc/forum/confusion_with_remotes__44___map/comment_3_18531754089c991b6caefc57a5c17fe9._comment ./doc/forum/confusion_with_remotes__44___map/comment_7_9a456f61f956a3d5e81e723d5a90794c._comment ./doc/forum/--print0_option_as_in___34__find__34__.mdwn ./doc/forum/relying_on_git_for_numcopies.mdwn ./doc/forum/wishlist:_do_round_robin_downloading_of_data.mdwn ./doc/forum/pure_git-annex_only_workflow.mdwn ./doc/forum/post-copy__47__sync_hook/comment_1_c8322d4b9bbf5eac80b48c312a42fbcf._comment ./doc/forum/wishlist:_git_annex_status.mdwn ./doc/forum/getting_git_annex_to_do_a_force_copy_to_a_remote.mdwn ./doc/forum/Problems_with_large_numbers_of_files.mdwn ./doc/forum/Can_I_store_normal_files_in_the_git-annex_git_repository__63__.mdwn ./doc/forum/Is_an_automagic_upgrade_of_the_object_directory_safe__63__.mdwn ./doc/forum/windows_port__63__.mdwn ./doc/forum/windows_port__63__/comment_1_23fa9aa3b00940a1c1b3876c35eef019._comment ./doc/forum/wishlist:_push_to_cia.vc_from_the_website__39__s_repo__44___not_your_personal_one.mdwn ./doc/forum/new_microfeatures.mdwn ./doc/forum/git-subtree_support__63__/comment_2_73d2a015b1ac79ec99e071a8b1e29034._comment ./doc/forum/git-subtree_support__63__/comment_1_4f333cb71ed1ff259bbfd86704806aa6._comment ./doc/forum/git-subtree_support__63__/comment_4_75b0e072e668aa46ff0a8d62a6620306._comment ./doc/forum/git-subtree_support__63__/comment_3_c533400e22c306c033fcd56e64761b0b._comment ./doc/forum/git-subtree_support__63__/comment_6_85df530f7b6d76b74ac8017c6034f95e._comment ./doc/forum/git-subtree_support__63__/comment_5_f5ec9649d9f1dc122e715de5533bc674._comment ./doc/backends.mdwn ./doc/bugs/__39__annex_add__39___fails_to___39__git_add__39___for_parent_relative_path.mdwn ./doc/bugs/uuid.log_trust.log_and_remote.log_merge_wackiness.mdwn ./doc/bugs/Remote_repo_and_set_operation_with_find.mdwn ./doc/bugs/softlink_mtime.mdwn ./doc/bugs/uninit_should_not_run_when_branch_git-annex_is_checked_out.mdwn ./doc/bugs/ordering.mdwn ./doc/bugs/dropping_files_with_a_URL_backend_fails.mdwn ./doc/bugs/fsck__47__fix_should_check__47__fix_the_permissions_of_.git__47__annex.mdwn ./doc/bugs/dropunused_doesn__39__t_handle_double_spaces_in_filename.mdwn ./doc/bugs/add_script-friendly_output_options.mdwn ./doc/bugs/uninit_does_not_work_in_old_repos.mdwn ./doc/bugs/conq:_invalid_command_syntax.mdwn ./doc/bugs/git_annex_get_choke_when_remote_is_an_ssh_url_with_a_port.mdwn ./doc/bugs/unannex_and_uninit_do_not_work_when_git_index_is_broken.mdwn ./doc/bugs/git_annex_migrate_leaves_old_backend_versions_around.mdwn ./doc/bugs/git_annex_unused_failes_on_empty_repository.mdwn ./doc/bugs/git_annex_add_eats_files_when_filename_is_too_long.mdwn ./doc/bugs/S3_bucket_uses_the_same_key_for_encryption_and_hashing.mdwn ./doc/bugs/problem_with_upgrade_v2_-__62___v3.mdwn ./doc/bugs/git_annex_copy_--fast_does_not_copy_files.mdwn ./doc/bugs/Cabal_dependency_monadIO_missing.mdwn ./doc/bugs/dotdot_problem.mdwn ./doc/bugs/Problems_running_make_on_osx.mdwn ./doc/bugs/free_space_checking/comment_2_8a65f6d3dcf5baa3f7f2dbe1346e2615._comment ./doc/bugs/free_space_checking/comment_3_0fc6ff79a357b1619d13018ccacc7c10._comment ./doc/bugs/free_space_checking/comment_1_a868e805be43c5a7c19c41f1af8e41e6._comment ./doc/bugs/copy_doesn__39__t_scale.mdwn ./doc/bugs/Error_when_moving_annexed_file_to_a_.gitignored_location.mdwn ./doc/bugs/done.mdwn ./doc/bugs/git_annex_copy_-f_REMOTE_._doesn__39__t_work_as_expected.mdwn ./doc/bugs/Displayed_copy_speed_is_wrong/comment_2_8b240de1d5ae9229fa2d77d1cc15a552._comment ./doc/bugs/Displayed_copy_speed_is_wrong/comment_1_74de3091e8bfd7acd6795e61f39f07c6._comment ./doc/bugs/Build_error_on_Mac_OSX_10.6.mdwn ./doc/bugs/bare_git_repos.mdwn ./doc/bugs/nfs_mounted_repo_results_in_errors_on_drop_move.mdwn ./doc/bugs/fat_support.mdwn ./doc/bugs/problems_with_utf8_names.mdwn ./doc/bugs/error_with_file_names_starting_with_dash.mdwn ./doc/bugs/not_possible_to_have_annex_on_a_separate_filesystem.mdwn ./doc/bugs/Lost_S3_Remote.mdwn ./doc/bugs/unhappy_without_UTF8_locale.mdwn ./doc/bugs/S3_memory_leaks.mdwn ./doc/bugs/git_annex_map_has_problems_with_urls_containing___126__.mdwn ./doc/bugs/interrupting_migration_causes_problems.mdwn ./doc/bugs/upgrade_left_untracked_.git-annex__47____42___directories.mdwn ./doc/bugs/cyclic_drop.mdwn ./doc/bugs/Problems_running_make_on_osx/comment_9_cc283b485b3c95ba7eebc8f0c96969b3._comment ./doc/bugs/Problems_running_make_on_osx/comment_4_c52be386f79f14c8570a8f1397c68581._comment ./doc/bugs/Problems_running_make_on_osx/comment_18_64fab50d95de619eb2e8f08f90237de1._comment ./doc/bugs/Problems_running_make_on_osx/comment_16_5c2dd6002aadaab30841b77a5f5aed34._comment ./doc/bugs/Problems_running_make_on_osx/comment_10_94e4ac430140042a2d0fb5a16d86b4e5._comment ./doc/bugs/Problems_running_make_on_osx/comment_15_6b8867b8e48bf807c955779c9f8f0909._comment ./doc/bugs/Problems_running_make_on_osx/comment_11_56f1143fa191361d63b441741699e17f._comment ./doc/bugs/Problems_running_make_on_osx/comment_20_7db27d1a22666c831848bc6c06d66a84._comment ./doc/bugs/Problems_running_make_on_osx/comment_12_ec5131624d0d2285d3b6880e47033f97._comment ./doc/bugs/Problems_running_make_on_osx/comment_3_68f0f8ae953589ae26d57310b40c878d._comment ./doc/bugs/Problems_running_make_on_osx/comment_14_89a960b6706ed703b390a81a8bc4e311._comment ./doc/bugs/Problems_running_make_on_osx/comment_17_62fccb04b0e4b695312f7a3f32fb96ee._comment ./doc/bugs/Problems_running_make_on_osx/comment_19_4253988ed178054c8b6400beeed68a29._comment ./doc/bugs/Problems_running_make_on_osx/comment_6_0c46f5165ceb5a7b9ea9689c33b3a4f8._comment ./doc/bugs/Problems_running_make_on_osx/comment_1_34120e82331ace01a6a4960862d38f2d._comment ./doc/bugs/Problems_running_make_on_osx/comment_7_237a137cce58a28abcc736cbf2c420b0._comment ./doc/bugs/Problems_running_make_on_osx/comment_5_7f1330a1e541b0f3e2192e596d7f7bee._comment ./doc/bugs/Problems_running_make_on_osx/comment_2_cc53d1681d576186dbc868dd9801d551._comment ./doc/bugs/Problems_running_make_on_osx/comment_13_88ed095a448096bf8a69015a04e64df1._comment ./doc/bugs/Problems_running_make_on_osx/comment_8_efafa203addf8fa79e33e21a87fb5a2b._comment ./doc/bugs/git-annex_directory_hashing_problems_on_osx.mdwn ./doc/bugs/No_easy_way_to_re-inject_a_file_into_an_annex.mdwn ./doc/bugs/git_annex_unlock_is_not_atomic.mdwn ./doc/bugs/free_space_checking.mdwn ./doc/bugs/wishlist:_more_descriptive_commit_messages_in_git-annex_branch.mdwn ./doc/bugs/Displayed_copy_speed_is_wrong.mdwn ./doc/bugs/git_annex_should_use___39__git_add_-f__39___internally.mdwn ./doc/bugs/minor_bug:_errors_are_not_verbose_enough.mdwn ./doc/bugs/__34__make_test__34___fails_silently.mdwn ./doc/bugs/No_version_information_from_cli.mdwn ./doc/bugs/Error_while_adding_a_file___34__createSymbolicLink:_already_exists__34__.mdwn ./doc/bugs/conq:_invalid_command_syntax/comment_1_f33b83025ce974e496f83f248275a66a._comment ./doc/bugs/conq:_invalid_command_syntax/comment_2_195106ca8dedad5f4d755f625e38e8af._comment ./doc/bugs/conq:_invalid_command_syntax/comment_3_55af43e2f43a4c373f7a0a33678d0b1c._comment ./doc/bugs/old_data_isn__39__t_unused_after_migration.mdwn ./doc/bugs/fails_to_handle_lot_of_files.mdwn ./doc/bugs/tests_fail_when_there_is_no_global_.gitconfig_for_the_user.mdwn ./doc/bugs/git_annex_initremote_walks_.git-annex.mdwn ./doc/bugs/copy_doesn__39__t_scale/comment_1_7c12499c9ac28a9883c029f8c659eb57._comment ./doc/bugs/copy_doesn__39__t_scale/comment_2_f85d8023cdbc203bb439644cf7245d4e._comment ./doc/bugs/copy_doesn__39__t_scale/comment_3_4592765c3d77bb5664b8d16867e9d79c._comment ./doc/bugs/signal_weirdness.mdwn ./doc/bugs/git-annex_incorrectly_parses_bare_IPv6_addresses.mdwn ./doc/bugs/git_annex_version_should_without_being_in_a_repo_.mdwn ./doc/bugs/Can__39__t___34__git-annex_get__34___with_3.20111203.mdwn ./doc/bugs/Prevent_accidental_merges/comment_1_4c46a193915eab8f308a04175cb2e40a._comment ./doc/bugs/conflicting_haskell_packages/comment_1_e552a6cc6d7d1882e14130edfc2d6b3b._comment ./doc/bugs/tmp_file_handling.mdwn ./doc/bugs/annex_add_in_annex.mdwn ./doc/bugs/making_annex-merge_try_a_fast-forward.mdwn ./doc/bugs/bad_behaviour_with_file_names_with_newline_in_them.mdwn ./doc/bugs/Lost_S3_Remote/comment_2_c99c65882a3924f4890e500f9492b442._comment ./doc/bugs/Lost_S3_Remote/comment_3_1e434d5a20a692cd9dc7f6f8f20f30dd._comment ./doc/bugs/Lost_S3_Remote/comment_1_6e80e6db6671581d471fc9a54181c04c._comment ./doc/bugs/on--git-dir_and_--work-tree_options.mdwn ./doc/bugs/Makefile_is_missing_dependancies.mdwn ./doc/bugs/test_suite_shouldn__39__t_fail_silently.mdwn ./doc/bugs/git_annex_upgrade_output_is_inconsistent_and_spammy.mdwn ./doc/bugs/problem_with_upgrade_v2_-__62___v3/comment_4_91439d4dbbf1461e281b276eb0003691._comment ./doc/bugs/problem_with_upgrade_v2_-__62___v3/comment_6_f360f0006bc9115bc5a3e2eb9fe58abd._comment ./doc/bugs/problem_with_upgrade_v2_-__62___v3/comment_3_86d9e7244ae492bcbe62720b8c4fc4a9._comment ./doc/bugs/problem_with_upgrade_v2_-__62___v3/comment_2_cd0123392b16d89db41b45464165c247._comment ./doc/bugs/problem_with_upgrade_v2_-__62___v3/comment_1_5f60006c9bb095167d817f234a14d20b._comment ./doc/bugs/problem_with_upgrade_v2_-__62___v3/comment_5_ca33a9ca0df33f7c1b58353d7ffb943d._comment ./doc/bugs/wishlist:_query_things_like_description__44___trust_level.mdwn ./doc/bugs/git_rename_detection_on_file_move/comment_9_75e0973f6d573df615e01005ebcea87d._comment ./doc/bugs/git_rename_detection_on_file_move/comment_7_7f20d0b2f6ed1c34021a135438037306._comment ./doc/bugs/git_rename_detection_on_file_move/comment_3_57010bcaca42089b451ad8659a1e018e._comment ./doc/bugs/git_rename_detection_on_file_move/comment_4_79d96599f757757f34d7b784e6c0e81c._comment ./doc/bugs/git_rename_detection_on_file_move/comment_5_d61f5693d947b9736b29fca1dbc7ad76._comment ./doc/bugs/git_rename_detection_on_file_move/comment_8_6a00500b24ba53248c78e1ffc8d1a591._comment ./doc/bugs/git_rename_detection_on_file_move/comment_2_7101d07400ad5935f880dc00d89bf90e._comment ./doc/bugs/git_rename_detection_on_file_move/comment_6_f63de6fe2f7189c8c2908cc41c4bc963._comment ./doc/bugs/git_rename_detection_on_file_move/comment_1_0531dcfa833b0321a7009526efe3df33._comment ./doc/bugs/fsck_claims_failed_checksum_when_less_copies_than_required_are_found.mdwn ./doc/bugs/add_range_argument_to___34__git_annex_dropunused__34___.mdwn ./doc/bugs/git_rename_detection_on_file_move.mdwn ./doc/bugs/problem_commit_normal_links.mdwn ./doc/bugs/extraneous_shell_escaping_for_rsync_remotes.mdwn ./doc/bugs/problems_with_utf8_names/comment_1_3c7e3f021c2c94277eecf9c8af6cec5f._comment ./doc/bugs/problems_with_utf8_names/comment_7_0cc588f787d6eecfa19a8f6cee4b07b5._comment ./doc/bugs/problems_with_utf8_names/comment_8_ff5c6da9eadfee20c18c86b648a62c47._comment ./doc/bugs/problems_with_utf8_names/comment_4_93bee35f5fa7744834994bc7a253a6f9._comment ./doc/bugs/problems_with_utf8_names/comment_3_4f936a5d3f9c7df64c8a87e62b7fbfdc._comment ./doc/bugs/problems_with_utf8_names/comment_5_519cda534c7aea7f5ad5acd3f76e21fa._comment ./doc/bugs/problems_with_utf8_names/comment_6_52e0bfff2b177b6f92e226b25d2f3ff1._comment ./doc/bugs/problems_with_utf8_names/comment_2_bad4c4c5f54358d1bc0ab2adc713782a._comment ./doc/bugs/git_annex_unused_seems_to_check_for_current_path.mdwn ./doc/bugs/Makefile_is_missing_dependancies/comment_6_24119fc5d5963ce9dd669f7dcf006859._comment ./doc/bugs/Makefile_is_missing_dependancies/comment_3_c38b6f4abc9b9ad413c3b83ca04386c3._comment ./doc/bugs/Makefile_is_missing_dependancies/comment_8_a3555e3286cdc2bfeb9cde0ff727ba74._comment ./doc/bugs/Makefile_is_missing_dependancies/comment_2_416f12dbd0c2b841fac8164645b81df5._comment ./doc/bugs/Makefile_is_missing_dependancies/comment_5_0a1c52e2c96d19b9c3eb7e99b8c2434f._comment ./doc/bugs/Makefile_is_missing_dependancies/comment_7_96fd4725df4b54e670077a18d3ac4943._comment ./doc/bugs/Makefile_is_missing_dependancies/comment_1_5a3da5f79c8563c7a450aa29728abe7c._comment ./doc/bugs/Makefile_is_missing_dependancies/comment_4_cc13873175edf191047282700315beee._comment ./doc/bugs/Trouble_initializing_git_annex_on_NFS.mdwn ./doc/bugs/touch.hsc_has_problems_on_non-linux_based_systems.mdwn ./doc/bugs/build_issue_with_latest_release_0.20110522-1-gde817ba.mdwn ./doc/bugs/weird_local_clone_confuses.mdwn ./doc/bugs/fsck_output.mdwn ./doc/bugs/git_annex_add_memory_leak.mdwn ./doc/bugs/git-annex_branch_push_race.mdwn ./doc/bugs/wishlist:_allow_users_to_provide_UUID_when_running___96__git_annex_init__96__.mdwn ./doc/bugs/git-annex_has_issues_with_git_when_staging__47__commiting_logs.mdwn ./doc/bugs/git_annex_gets_confused_about_remotes_with_dots_in_their_names.mdwn ./doc/bugs/unannex_vs_unlock_hook_confusion.mdwn ./doc/bugs/Cabal_dependency_monadIO_missing/comment_2_4f4d8e1e00a2a4f7e8a8ab082e16adac._comment ./doc/bugs/Cabal_dependency_monadIO_missing/comment_1_14be660aa57fadec0d81b32a8b52c66f._comment ./doc/bugs/conflicting_haskell_packages.mdwn ./doc/bugs/git_command_line_constructed_by_unannex_command_has_tons_of_redundant_-a_paramters.mdwn ./doc/bugs/backend_version_upgrade_leaves_repo_unusable.mdwn ./doc/bugs/fat_support/comment_3_df3b943bc1081a8f3f7434ae0c8e061e._comment ./doc/bugs/fat_support/comment_4_90a8a15bedd94480945a374f9d706b86._comment ./doc/bugs/fat_support/comment_5_64bbf89de0836673224b83fdefa0407b._comment ./doc/bugs/fat_support/comment_1_04bcc4795d431e8cb32293aab29bbfe2._comment ./doc/bugs/fat_support/comment_2_bb4a97ebadb5c53809fc78431eabd7c8._comment ./doc/bugs/unannex_command_doesn__39__t_all_files.mdwn ./doc/bugs/annex_unannex__47__uninit_should_handle_copies.mdwn ./doc/bugs/git-annex_branch_corruption.mdwn ./doc/bugs/git_annex_fsck_is_a_no-op_in_bare_repos.mdwn ./doc/bugs/show_version_without_having_to_be_in_a_git_repo.mdwn ./doc/bugs/Unfortunate_interaction_with_Calibre.mdwn ./doc/bugs/error_propigation.mdwn ./doc/bugs/wishlist:_support_drop__44___find_on_special_remotes.mdwn ./doc/bugs/scp_interrupt_to_background.mdwn ./doc/bugs/copy_fast_confusing_with_broken_locationlog.mdwn ./doc/bugs/uninit_does_not_work_in_old_repos/comment_1_bc0619c6e17139df74639448aa6a0f72._comment ./doc/bugs/git-annex_losing_rsync_remotes_with_encryption_enabled.mdwn ./doc/bugs/configure_script_should_detect_uuidgen_instead_of_just_uuid.mdwn ./doc/bugs/check_for_curl_in_configure.hs.mdwn ./doc/bugs/fails_to_handle_lot_of_files/comment_1_09d8e4e66d8273fab611bd29e82dc7fc._comment ./doc/bugs/fails_to_handle_lot_of_files/comment_2_fd2ec05f4b5a7a6ae6bd9f5dbc3156de._comment ./doc/bugs/Name_scheme_does_not_follow_git__39__s_rules.mdwn ./doc/bugs/concurrent_git-annex_processes_can_lead_to_locking_issues.mdwn ./doc/bugs/Prevent_accidental_merges.mdwn ./doc/bugs/building_on_lenny.mdwn ./doc/bugs/case_sensitivity_on_FAT.mdwn ./doc/bugs/encrypted_S3_stalls.mdwn ./doc/bugs/support_bare_git_repo__44___with_the_annex_directory_exposed_to_http.mdwn ./doc/bugs/WORM:_Handle_long_filenames_correctly.mdwn ./doc/logo_small.png ./doc/tips.mdwn ./doc/use_case/Bob.mdwn ./doc/use_case/Alice.mdwn ./doc/upgrades/SHA_size.mdwn ./doc/news/sharebox_a_FUSE_filesystem_for_git-annex.mdwn ./doc/news/version_3.20120229.mdwn ./doc/news/version_3.20120309.mdwn ./doc/news/version_3.20120315.mdwn ./doc/news/version_3.20120230/comment_2_899de1196cd1ba4a393e4ef574d7aa5e._comment ./doc/news/version_3.20120230/comment_1_b975cbd3a01ba5c2fa0f24fe739d3433._comment ./doc/news/Presentation_at_FOSDEM.mdwn ./doc/news/version_3.20120229/comment_5_7dbf131ff4611abbfc8fbf1ee0f66dbe._comment ./doc/news/version_3.20120229/comment_2_03436ddda42decf8cb1b4d5316d88a75._comment ./doc/news/version_3.20120229/comment_3_8f7f8d4758804f1b695925934219745a._comment ./doc/news/version_3.20120229/comment_4_cd90223f78571e5bdd3dfc07ab1369d7._comment ./doc/news/version_3.20120229/comment_1_18158b9be2313f49509d59295c7d3c90._comment ./doc/news/LWN_article.mdwn ./doc/news/version_3.20120230.mdwn ./doc/news/version_3.20120227/comment_2_ea5075cfecc50d5da2364931ef7a02d1._comment ./doc/news/version_3.20120227/comment_1_f8fc894680f2a2e5b5e757a677414b42._comment ./doc/news/version_3.20120106/comment_1_fb1a3135e2d9f39f2c372ccc2c50c85a._comment ./doc/news/version_3.20120106/comment_2_ae292ca7294b6790233e545086c3ac2f._comment ./doc/news/version_3.20120106/comment_3_29ccda9ac458fd5cc9ec5508c62df6ea._comment ./doc/git-union-merge.mdwn ./doc/special_remotes/S3.mdwn ./doc/special_remotes/web.mdwn ./doc/special_remotes/bup.mdwn ./doc/special_remotes/directory.mdwn ./doc/special_remotes/hook.mdwn ./doc/special_remotes/rsync.mdwn ./doc/how_it_works.mdwn ./doc/sitemap.mdwn ./doc/users/joey.mdwn ./doc/users/fmarier.mdwn ./doc/users/chrysn.mdwn ./doc/users/gebi.mdwn ./doc/templates/walkthrough.tmpl ./doc/templates/bugtemplate.mdwn ./doc/templates/bare.tmpl ./doc/index.mdwn ./doc/sync/comment_1_59681be5568f568f5c54eb0445163dd2._comment ./doc/summary.mdwn ./doc/forum.mdwn ./doc/encryption/comment_1_1afca8d7182075d46db41f6ad3dd5911._comment ./doc/transferring_data.mdwn ./doc/download.mdwn ./doc/future_proofing.mdwn ./doc/todo/redundancy_stats_in_status.mdwn ./doc/todo/auto_remotes/discussion.mdwn ./doc/todo/link_file_to_remote_repo_feature.mdwn ./doc/todo/file_copy_progress_bar.mdwn ./doc/todo/use_cp_reflink.mdwn ./doc/todo/gitrm.mdwn ./doc/todo/exclude_files_on_a_given_remote.mdwn ./doc/todo/git-annex_unused_eats_memory.mdwn ./doc/todo/Please_abort_build_if___34__make_test__34___fails.mdwn ./doc/todo/fsck_special_remotes.mdwn ./doc/todo/add_--exclude_option_to_git_annex_find.mdwn ./doc/todo/tahoe_lfs_for_reals/comment_2_80b9e848edfdc7be21baab7d0cef0e3a._comment ./doc/todo/tahoe_lfs_for_reals/comment_1_0a4793ce6a867638f6e510e71dd4bb44._comment ./doc/todo/object_dir_reorg_v2.mdwn ./doc/todo/S3.mdwn ./doc/todo/auto_remotes.mdwn ./doc/todo/wishlist:_support_for_more_ssh_urls_.mdwn ./doc/todo/support-non-utf8-locales.mdwn ./doc/todo/done.mdwn ./doc/todo/fsck.mdwn ./doc/todo/support_S3_multipart_uploads.mdwn ./doc/todo/wishlist:_Provide_a___34__git_annex__34___command_that_will_skip_duplicates.mdwn ./doc/todo/pushpull.mdwn ./doc/todo/smudge.mdwn ./doc/todo/cache_key_info/comment_1_578df1b3b2cbfdc4aa1805378f35dc48._comment ./doc/todo/windows_support.mdwn ./doc/todo/optimise_git-annex_merge.mdwn ./doc/todo/object_dir_reorg_v2/comment_3_79bdf9c51dec9f52372ce95b53233bb2._comment ./doc/todo/object_dir_reorg_v2/comment_7_42501404c82ca07147e2cce0cff59474._comment ./doc/todo/object_dir_reorg_v2/comment_5_821c382987f105da72a50e0a5ce61fdc._comment ./doc/todo/object_dir_reorg_v2/comment_1_ba03333dc76ff49eccaba375e68cb525._comment ./doc/todo/object_dir_reorg_v2/comment_2_81276ac309959dc741bc90101c213ab7._comment ./doc/todo/object_dir_reorg_v2/comment_6_8834c3a3f1258c4349d23aff8549bf35._comment ./doc/todo/object_dir_reorg_v2/comment_4_93aada9b1680fed56cc6f0f7c3aca5e5._comment ./doc/todo/union_mounting.mdwn ./doc/todo/wishlist:_swift_backend.mdwn ./doc/todo/Please_add_support_for_monad-control_0.3.x.mdwn ./doc/todo/wishlist:_swift_backend/comment_1_e6efbb35f61ee521b473a92674036788._comment ./doc/todo/wishlist:_swift_backend/comment_2_5d8c83b0485112e98367b7abaab3f4e3._comment ./doc/todo/git_annex_init_:_include_repo_description_and__47__or_UUID_in_commit_message.mdwn ./doc/todo/gitolite_and_gitosis_support.mdwn ./doc/todo/wishlist:___34__git_annex_add__34___multiple_processes.mdwn ./doc/todo/hidden_files.mdwn ./doc/todo/smudge/comment_1_4ea616bcdbc9e9a6fae9f2e2795c31c9._comment ./doc/todo/smudge/comment_2_e04b32caa0d2b4c577cdaf382a3ff7f6._comment ./doc/todo/network_remotes.mdwn ./doc/todo/add_a_git_backend.mdwn ./doc/todo/parallel_possibilities/comment_1_d8e34fc2bc4e5cf761574608f970d496._comment ./doc/todo/parallel_possibilities/comment_2_adb76f06a7997abe4559d3169a3181c3._comment ./doc/todo/checkout.mdwn ./doc/todo/immutable_annexed_files.mdwn ./doc/todo/wishlist:_Prevent_repeated_password_prompts_for_one_command.mdwn ./doc/todo/git-annex-shell.mdwn ./doc/todo/speed_up_fsck.mdwn ./doc/todo/tahoe_lfs_for_reals.mdwn ./doc/todo/avoid_unnecessary_union_merges.mdwn ./doc/todo/support_fsck_in_bare_repos.mdwn ./doc/todo/add_-all_option.mdwn ./doc/todo/using_url_backend.mdwn ./doc/todo/branching.mdwn ./doc/todo/rsync.mdwn ./doc/todo/backendSHA1.mdwn ./doc/todo/cache_key_info.mdwn ./doc/todo/parallel_possibilities.mdwn ./doc/todo/symlink_farming_commit_hook.mdwn ./doc/feeds.mdwn ./doc/sync.mdwn ./doc/copies.mdwn ./doc/repomap.png ./doc/scalability.mdwn ./doc/special_remotes.mdwn ./doc/todo.mdwn ./doc/walkthrough/using_ssh_remotes.mdwn ./doc/walkthrough/automatically_managing_content.mdwn ./doc/walkthrough/removing_files/comment_1_cb65e7c510b75be1c51f655b058667c6._comment ./doc/walkthrough/removing_files/comment_2_64709ea4558915edd5c8ca4486965b07._comment ./doc/walkthrough/moving_file_content_between_repositories.mdwn ./doc/walkthrough/modifying_annexed_files.mdwn ./doc/walkthrough/more.mdwn ./doc/walkthrough/removing_files.mdwn ./doc/walkthrough/creating_a_repository.mdwn ./doc/walkthrough/adding_a_remote.mdwn ./doc/walkthrough/adding_a_remote/comment_1_0a59355bd33a796aec97173607e6adc9._comment ./doc/walkthrough/adding_a_remote/comment_2_f8cd79ef1593a8181a7f1086a87713e8._comment ./doc/walkthrough/adding_a_remote/comment_3_60691af4400521b5a8c8d75efe3b44cb._comment ./doc/walkthrough/adding_a_remote/comment_4_6f7cf5c330272c96b3abeb6612075c9d._comment ./doc/walkthrough/removing_files:_When_things_go_wrong.mdwn ./doc/walkthrough/renaming_files.mdwn ./doc/walkthrough/using_bup.mdwn ./doc/walkthrough/fsck:_when_things_go_wrong.mdwn ./doc/walkthrough/syncing.mdwn ./doc/walkthrough/adding_files.mdwn ./doc/walkthrough/unused_data.mdwn ./doc/walkthrough/fsck:_verifying_your_data.mdwn ./doc/walkthrough/getting_file_content.mdwn ./doc/walkthrough/backups.mdwn ./doc/walkthrough/transferring_files:_When_things_go_wrong.mdwn ./doc/GPL ./doc/logo.png ./doc/location_tracking.mdwn ./doc/design.mdwn ./doc/news.mdwn ./doc/tips/visualizing_repositories_with_gource/screenshot.jpg ./doc/tips/untrusted_repositories.mdwn ./doc/tips/using_box.com_as_a_special_remote.mdwn ./doc/tips/automatically_getting_files_on_checkout.mdwn ./doc/tips/what_to_do_when_a_repository_is_corrupted.mdwn ./doc/tips/Internet_Archive_via_S3.mdwn ./doc/tips/what_to_do_when_you_lose_a_repository.mdwn ./doc/tips/using_Amazon_S3.mdwn ./doc/tips/using_the_web_as_a_special_remote.mdwn ./doc/tips/assume-unstaged.mdwn ./doc/tips/powerful_file_matching.mdwn ./doc/tips/using_gitolite_with_git-annex.mdwn ./doc/tips/recover_data_from_lost+found.mdwn ./doc/tips/visualizing_repositories_with_gource.mdwn ./doc/tips/centralized_git_repository_tutorial.mdwn ./doc/tips/finding_duplicate_files/comment_1_ddb477ca242ffeb21e0df394d8fdf5d2._comment ./doc/tips/using_git_annex_with_no_fixed_hostname_and_optimising_ssh.mdwn ./doc/tips/using_gitolite_with_git-annex/comment_4_eb81f824aadc97f098379c5f7e4fba4c._comment ./doc/tips/using_gitolite_with_git-annex/comment_6_3e203e010a4df5bf03899f867718adc5._comment ./doc/tips/using_gitolite_with_git-annex/comment_1_9a2a2a8eac9af97e0c984ad105763a73._comment ./doc/tips/using_gitolite_with_git-annex/comment_8_8249772c142117f88e37975d058aa936._comment ./doc/tips/using_gitolite_with_git-annex/comment_5_f688309532d2993630e9e72e87fb9c46._comment ./doc/tips/using_gitolite_with_git-annex/comment_7_f8fd08b6ab47378ad88c87348057220d._comment ./doc/tips/using_gitolite_with_git-annex/comment_3_807035f38509ccb9f93f1929ecd37417._comment ./doc/tips/using_gitolite_with_git-annex/comment_9_28418635a6ed7231b89e02211cd3c236._comment ./doc/tips/using_gitolite_with_git-annex/comment_2_d8efea4ab9576555fadbb47666ecefa9._comment ./doc/tips/finding_duplicate_files.mdwn ./doc/tips/centralised_repository:_starting_from_nothing.mdwn ./doc/tips/using_the_SHA1_backend.mdwn ./doc/tips/migrating_data_to_a_new_backend.mdwn ./doc/encryption.mdwn ./doc/not.mdwn ./doc/download/comment_7_a5eebd214b135f34b18274a682211943._comment ./doc/download/comment_3_cf6044ebe99f71158034e21197228abd._comment ./doc/download/comment_5_c6b1bc40226fc2c8ba3e558150856992._comment ./doc/download/comment_6_3a52993d3553deb9a413debec9a5f92d._comment ./doc/download/comment_2_f85f72b33aedc3425f0c0c47867d02f3._comment ./doc/download/comment_8_59a976de6c7d333709b92f7cd5830850._comment ./doc/download/comment_4_10fc013865c7542c2ed9d6c0963bb391._comment ./doc/download/comment_1_fbd8b6d39e9d3c71791551358c863966._comment ./doc/contact.mdwn ./doc/trust.mdwn ./doc/bare_repositories.mdwn ./doc/NixOS.mdwn ./doc/distributed_version_control.mdwn ./doc/install.mdwn ./doc/git-annex-shell.mdwn ./doc/bugs.mdwn ./doc/meta.mdwn ./doc/design/encryption/comment_2_a610b3d056a059899178859a3a821ea5._comment ./doc/design/encryption/comment_3_cca186a9536cd3f6e86994631b14231c._comment ./doc/design/encryption/comment_1_4715ffafb3c4a9915bc33f2b26aaa9c1._comment ./doc/design/encryption/comment_4_8f3ba3e504b058791fc6e6f9c38154cf._comment ./doc/design/encryption.mdwn ./doc/comments.mdwn ./doc/git-annex.mdwn ./doc/internals.mdwn ./doc/users.mdwn ./doc/install/Ubuntu.mdwn ./doc/install/Debian.mdwn ./doc/install/openSUSE.mdwn ./doc/install/OSX.mdwn ./doc/install/FreeBSD.mdwn ./doc/install/OSX/comment_1_0a1760bf0db1f1ba89bdb4c62032f631._comment ./doc/install/ArchLinux.mdwn ./doc/install/Debian/comment_2_648e3467e260cdf233acdb0b53313ce0._comment ./doc/install/Debian/comment_1_029486088d098c2d4f1099f2f0e701a9._comment ./doc/install/Fedora.mdwn ./doc/walkthrough.mdwn ./CmdLine.hs ./Messages.hs ./Setup.hs ./GPL ./mdwn2man ./Remote.hs ./git-annex.hs ./Locations.hs ./Usage.hs ./Backend/WORM.hs ./Backend/URL.hs ./Backend/SHA.hs ./git-annex-shell.hs ./test.hs ./INSTALL ./Remote/Web.hs ./Remote/Helper/Encryptable.hs ./Remote/Helper/Ssh.hs ./Remote/Helper/Special.hs ./Remote/Helper/Hooks.hs ./Remote/Directory.hs ./Remote/List.hs ./Remote/Bup.hs ./Remote/Hook.hs ./Remote/S3.hs ./Remote/Rsync.hs ./Remote/Git.hs ./Build/TestConfig.hs ./Build/Configure.hs ./Upgrade.hs ./Annex/Version.hs ./Annex/Exception.hs ./Annex/Journal.hs ./Annex/CatFile.hs ./Annex/Ssh.hs ./Annex/Queue.hs ./Annex/Branch.hs ./Annex/UUID.hs ./Annex/LockPool.hs ./Annex/BranchState.hs ./Annex/CheckAttr.hs ./Annex/Content.hs ./git-union-merge.hs ./Utility/Path.hs ./Utility/Matcher.hs ./Utility/TempFile.hs ./Utility/State.hs ./Utility/Url.hs ./Utility/DataUnits.hs ./Utility/StatFS.hsc ./Utility/CoProcess.hs ./Utility/Exception.hs ./Utility/Monad.hs ./Utility/RsyncFile.hs ./Utility/CopyFile.hs ./Utility/Misc.hs ./Utility/SafeCommand.hs ./Utility/Gpg.hs ./Utility/Directory.hs ./Utility/FileSystemEncoding.hs ./Utility/FileMode.hs ./Utility/PartialPrelude.hs ./Utility/JSONStream.hs ./Utility/Dot.hs ./Utility/Touch.hsc ./Utility/Base64.hs ./Utility/Format.hs ./Types/Option.hs ./Types/Crypto.hs ./Types/UUID.hs ./Types/TrustLevel.hs ./Types/Remote.hs ./Types/BranchState.hs ./Types/Command.hs ./Types/Backend.hs ./Types/Key.hs ./Config.hs ./Checks.hs ./Command.hs ./.gitignore ./Backend.hs ./Logs/Web.hs ./Logs/UUIDBased.hs ./Logs/Trust.hs ./Logs/Location.hs ./Logs/UUID.hs ./Logs/Remote.hs ./Logs/Presence.hs ./.gitattributes ./Git.hs ./Limit.hs ./GitAnnex.hs+Extra-Source-Files: ./debian/NEWS ./debian/control ./debian/rules ./debian/changelog ./debian/doc-base ./debian/copyright ./debian/compat ./Messages/JSON.hs ./Messages/JSON.o ./Messages/JSON.hi ./Git.o ./NEWS ./Option.hs ./Common.hi ./.ghci ./configure.hs ./Annex.hs ./Seek.hs ./Crypto.hs ./Common.hs ./README ./Command/Merge.hs ./Command/AddUrl.hs ./Command/Whereis.hs ./Command/Unlock.hs ./Command/Commit.hs ./Command/Version.hs ./Command/FromKey.hs ./Command/PreCommit.hs ./Command/Sync.hs ./Command/Map.hs ./Command/Unused.hs ./Command/Uninit.hs ./Command/ReKey.hs ./Command/Migrate.hs ./Command/Init.hs ./Command/ConfigList.hs ./Command/Trust.hs ./Command/Lock.hs ./Command/SendKey.hs ./Command/RecvKey.hs ./Command/Reinject.hs ./Command/Add.hs ./Command/Fix.hs ./Command/Untrust.hs ./Command/Dead.hs ./Command/InitRemote.hs ./Command/Semitrust.hs ./Command/Fsck.hs ./Command/Move.hs ./Command/DropUnused.hs ./Command/Get.hs ./Command/Upgrade.hs ./Command/Describe.hs ./Command/Drop.hs ./Command/DropKey.hs ./Command/InAnnex.hs ./Command/Find.hs ./Command/Log.hs ./Command/Unannex.hs ./Command/Status.hs ./Command/Copy.hs ./Init.hs ./Types.hs ./Common/Annex.hs ./Makefile ./configure.o ./Common.o ./git-annex.cabal ./Upgrade/V1.hs ./Upgrade/V2.hs ./Upgrade/V0.hs ./configure.hi ./GitAnnexShell.hs ./CHANGELOG ./Git/LsFiles.hs ./Git/Version.hs ./Git/Index.hi ./Git/UnionMerge.hs ./Git/Url.hs ./Git/HashObject.hs ./Git/Types.hs ./Git/CatFile.hs ./Git/Command.o ./Git/Command.hi ./Git/Queue.hs ./Git/Ref.hs ./Git/Filename.hs ./Git/Types.hi ./Git/Branch.hs ./Git/Sha.hs ./Git/Types.o ./Git/LsTree.hs ./Git/Config.hs ./Git/CheckAttr.hs ./Git/Command.hs ./Git/Queue.o ./Git/Queue.hi ./Git/Construct.hs ./Git/Index.hs ./Git/Index.o ./doc/upgrades.mdwn ./doc/forum/Recommended_number_of_repositories.mdwn ./doc/forum/unlock__47__lock_always_gets_me.mdwn ./doc/forum/wishlist:_define_remotes_that_must_have_all_files.mdwn ./doc/forum/Will_git_annex_work_on_a_FAT32_formatted_key__63__.mdwn ./doc/forum/wishlist:_command_options_changes/comment_2_f6a637c78c989382e3c22d41b7fb4cc2._comment ./doc/forum/wishlist:_command_options_changes/comment_3_bf1114533d2895804e531e76eb6b8095._comment ./doc/forum/wishlist:_command_options_changes/comment_1_bfba72a696789bf21b2435dea15f967a._comment ./doc/forum/pure_git-annex_only_workflow/comment_4_dc8a3f75533906ad3756fcc47f7e96bb._comment ./doc/forum/pure_git-annex_only_workflow/comment_15_cb7c856d8141b2de3cc95874753f1ee5._comment ./doc/forum/pure_git-annex_only_workflow/comment_7_33db51096f568c65b22b4be0b5538c0d._comment ./doc/forum/pure_git-annex_only_workflow/comment_9_ace319652f9c7546883b5152ddc82591._comment ./doc/forum/pure_git-annex_only_workflow/comment_12_ca8ca35d6cd4a9f94568536736c12adc._comment ./doc/forum/pure_git-annex_only_workflow/comment_10_683768c9826b0bf0f267e8734b9eb872._comment ./doc/forum/pure_git-annex_only_workflow/comment_11_6b541ed834ef45606f3b98779a25a148._comment ./doc/forum/pure_git-annex_only_workflow/comment_14_b63568b327215ef8f646a39d760fdfc0._comment ./doc/forum/pure_git-annex_only_workflow/comment_8_6e5b42fdb7801daadc0b3046cbc3d51e._comment ./doc/forum/pure_git-annex_only_workflow/comment_1_a32f7efd18d174845099a4ed59e6feae._comment ./doc/forum/pure_git-annex_only_workflow/comment_13_00c82d320c7b4bb51078beba17e14dc8._comment ./doc/forum/pure_git-annex_only_workflow/comment_3_9b7d89da52f7ebb7801f9ec8545c3aba._comment ./doc/forum/pure_git-annex_only_workflow/comment_6_3660d45c5656f68924acbd23790024ee._comment ./doc/forum/pure_git-annex_only_workflow/comment_2_66dc9b65523a9912411db03c039ba848._comment ./doc/forum/pure_git-annex_only_workflow/comment_5_afe5035a6b35ed2c7e193fb69cc182e2._comment ./doc/forum/wishlist:_git-annex_replicate/comment_3_c13f4f9c3d5884fc6255fd04feadc2b1._comment ./doc/forum/wishlist:_git-annex_replicate/comment_1_9926132ec6052760cdf28518a24e2358._comment ./doc/forum/wishlist:_git-annex_replicate/comment_2_c43932f4194aba8fb2470b18e0817599._comment ./doc/forum/wishlist:_git-annex_replicate/comment_4_63f24abf086d644dced8b01e1a9948c9._comment ./doc/forum/Podcast_syncing_use-case/comment_1_ace6f9d3a950348a3ac0ff592b62e786._comment ./doc/forum/Podcast_syncing_use-case/comment_2_930a6620b4d516e69ed952f9da5371bb._comment ./doc/forum/Behaviour_of_fsck/comment_4_e4911dc6793f98fb81151daacbe49968._comment ./doc/forum/Behaviour_of_fsck/comment_3_97848f9a3db89c0427cfb671ba13300e._comment ./doc/forum/Behaviour_of_fsck/comment_2_ead36a23c3e6efa1c41e4555f93e014e._comment ./doc/forum/Behaviour_of_fsck/comment_1_0e40f158b3f4ccdcaab1408d858b68b8._comment ./doc/forum/incompatible_versions__63__/comment_1_629f28258746d413e452cbd42a1a43f4._comment ./doc/forum/vlc_and_git-annex/comment_1_9c9ab8ce463cf74418aa2f385955f165._comment ./doc/forum/vlc_and_git-annex/comment_2_037f94c1deeac873dbdb36cd4c927e45._comment ./doc/forum/Recommended_number_of_repositories/comment_1_3ef256230756be8a9679b107cdbfd018._comment ./doc/forum/migration_to_git-annex_and_rsync.mdwn ./doc/forum/hashing_objects_directories.mdwn ./doc/forum/Sharing_annex_with_local_clones.mdwn ./doc/forum/git_annex_ls___47___metadata_in_git_annex_whereis.mdwn ./doc/forum/unlock__47__lock_always_gets_me/comment_1_dee73a7ea3e1a5154601adb59782831f._comment ./doc/forum/git-subtree_support__63__.mdwn ./doc/forum/Podcast_syncing_use-case.mdwn ./doc/forum/hashing_objects_directories/comment_5_ef6cfd49d24c180c2d0a062e5bd3a0be._comment ./doc/forum/hashing_objects_directories/comment_1_c55c56076be4f54251b0b7f79f28a607._comment ./doc/forum/hashing_objects_directories/comment_2_504c96959c779176f991f4125ea22009._comment ./doc/forum/hashing_objects_directories/comment_3_9134bde0a13aac0b6a4e5ebabd7f22e8._comment ./doc/forum/hashing_objects_directories/comment_4_0de9170e429cbfea66f5afa8980d45ac._comment ./doc/forum/location_tracking_cleanup.mdwn ./doc/forum/Wishlist:_Ways_of_selecting_files_based_on_meta-information.mdwn ./doc/forum/confusion_with_remotes__44___map.mdwn ./doc/forum/git-annex_on_OSX.mdwn ./doc/forum/A_really_stupid_question.mdwn ./doc/forum/post-copy__47__sync_hook.mdwn ./doc/forum/git_tag_missing_for_3.20111011/comment_1_7a53bf273f3078ab3351369ef2b5f2a6._comment ./doc/forum/version_3_upgrade/comment_1_05fc9c9cad26c520bebb98c852c71e35._comment ./doc/forum/example_of_massively_disconnected_operation.mdwn ./doc/forum/git-annex_communication_channels/comment_2_c7aeefa6ef9a2e75d8667b479ade1b7f._comment ./doc/forum/git-annex_communication_channels/comment_5_404b723a681eb93fee015cea8024b6bc._comment ./doc/forum/git-annex_communication_channels/comment_1_198325d2e9337c90f026396de89eec0e._comment ./doc/forum/git-annex_communication_channels/comment_4_1ba6ddf54843c17c7d19a9996f2ab712._comment ./doc/forum/git-annex_communication_channels/comment_6_0d87d0e26461494b1d7f8a701a924729._comment ./doc/forum/git-annex_communication_channels/comment_3_1ff08a3e0e63fa0e560cbc9602245caa._comment ./doc/forum/git-annex_communication_channels/comment_7_2c87c7a0648fe87c2bf6b4391f1cc468._comment ./doc/forum/wishlist:_git-annex_replicate.mdwn ./doc/forum/advantages_of_SHA__42___over_WORM/comment_1_96c354cac4b5ce5cf6664943bc84db1d._comment ./doc/forum/performance_improvement:_git_on_ssd__44___annex_on_spindle_disk.mdwn ./doc/forum/Behaviour_of_fsck.mdwn ./doc/forum/git_annex_add_crash_and_subsequent_recovery.mdwn ./doc/forum/Handling_web_special_remote_when_content_changes__63__.mdwn ./doc/forum/nfs_mounted_repo_results_in_errors_on_drop__47__move.mdwn ./doc/forum/working_without_git-annex_commits.mdwn ./doc/forum/migrate_existing_git_repository_to_git-annex.mdwn ./doc/forum/__34__git_annex_lock__34___very_slow_for_big_repo.mdwn ./doc/forum/wishlist:_traffic_accounting_for_git-annex.mdwn ./doc/forum/git_pull_remote_git-annex.mdwn ./doc/forum/rsync_over_ssh__63__.mdwn ./doc/forum/unannex_alternatives/comment_3_b1687fc8f9e7744327bbeb6f0635d1cd._comment ./doc/forum/unannex_alternatives/comment_1_dcd4cd41280b41512bbdffafaf307993._comment ./doc/forum/unannex_alternatives/comment_2_58a72a9fe0f58c7af0b4d7927a2dd21d._comment ./doc/forum/wishlist:_git_annex_status/comment_4_9aeeb83d202dc8fb33ff364b0705ad94._comment ./doc/forum/wishlist:_git_annex_status/comment_3_d1fd70c67243971c96d59e1ffb7ef6e7._comment ./doc/forum/wishlist:_git_annex_status/comment_2_c2b0ce025805b774dc77ce264a222824._comment ./doc/forum/wishlist:_git_annex_status/comment_1_994bfd12c5d82e08040d6116915c5090._comment ./doc/forum/git_pull_remote_git-annex/comment_7_24c45ee981b18bc78325c768242e635d._comment ./doc/forum/git_pull_remote_git-annex/comment_2_0f7f4a311b0ec1d89613e80847e69b42._comment ./doc/forum/git_pull_remote_git-annex/comment_1_9c245db3518d8b889ecdf5115ad9e053._comment ./doc/forum/git_pull_remote_git-annex/comment_5_4f2a05ef6551806dd0ec65372f183ca4._comment ./doc/forum/git_pull_remote_git-annex/comment_4_646f2077edcabc000a7d9cb75a93cf55._comment ./doc/forum/git_pull_remote_git-annex/comment_8_7e76ee9b6520cbffaf484c9299a63ad3._comment ./doc/forum/git_pull_remote_git-annex/comment_3_1aa89725b5196e40a16edeeb5ccfa371._comment ./doc/forum/git_pull_remote_git-annex/comment_6_3925d1aa56bce9380f712e238d63080f._comment ./doc/forum/Please_fix_compatibility_with_ghc_7.0.mdwn ./doc/forum/wishlist:_command_options_changes.mdwn ./doc/forum/location_tracking_cleanup/comment_3_c15428cec90e969284a5e690fb4b2fde._comment ./doc/forum/location_tracking_cleanup/comment_2_e7395cb6e01f42da72adf71ea3ebcde4._comment ./doc/forum/location_tracking_cleanup/comment_1_7d6319e8c94dfe998af9cfcbf170efb2._comment ./doc/forum/new_microfeatures/comment_2_41ad904c68e89c85e1fc49c9e9106969._comment ./doc/forum/new_microfeatures/comment_1_058bd517c6fffaf3446b1f5d5be63623._comment ./doc/forum/new_microfeatures/comment_3_a1a9347b5bc517f2a89a8b292c3f8517._comment ./doc/forum/new_microfeatures/comment_7_94045b9078b1fff877933b012d1b49e2._comment ./doc/forum/new_microfeatures/comment_5_3c627d275586ff499d928a8f8136babf._comment ./doc/forum/new_microfeatures/comment_4_5a6786dc52382fff5cc42fdb05770196._comment ./doc/forum/new_microfeatures/comment_6_31ea08c008500560c0b96c6601bc6362._comment ./doc/forum/Error_while_adding_a_file___34__createSymbolicLink:_already_exists__34__.mdwn ./doc/forum/tell_us_how_you__39__re_using_git-annex.mdwn ./doc/forum/How_to_expire_old_versions_of_files_that_have_been_edited__63__.mdwn ./doc/forum/advantages_of_SHA__42___over_WORM.mdwn ./doc/forum/wishlist:_git_annex_put_--_same_as_get__44___but_for_defaults.mdwn ./doc/forum/cloud_services_to_support.mdwn ./doc/forum/OSX__39__s_default_sshd_behaviour_has_limited_paths_set.mdwn ./doc/forum/Auto_archiving.mdwn ./doc/forum/bainstorming:_git_annex_push___38___pull.mdwn ./doc/forum/sparse_git_checkouts_with_annex.mdwn ./doc/forum/Need_new_build_instructions_for_Debian_stable.mdwn ./doc/forum/batch_check_on_remote_when_using_copy.mdwn ./doc/forum/tips:_special__95__remotes__47__hook_with_tahoe-lafs.mdwn ./doc/forum/wishlist:alias_system.mdwn ./doc/forum/incompatible_versions__63__.mdwn ./doc/forum/Automatic_commit_messages_for_git_annex_sync.mdwn ./doc/forum/fsck_gives_false_positives.mdwn ./doc/forum/Preserving_file_access_rights_in_directory_tree_below_objects__47__.mdwn ./doc/forum/A_really_stupid_question/comment_1_40e02556de0b00b94f245a0196b5a89f._comment ./doc/forum/wishlist:_git_backend_for_git-annex.mdwn ./doc/forum/vlc_and_git-annex.mdwn ./doc/forum/seems_to_build_fine_on_haskell_platform_2011.mdwn ./doc/forum/rsync_over_ssh__63__/comment_1_ee21f32e90303e20339e0a568321bbbe._comment ./doc/forum/rsync_over_ssh__63__/comment_2_aa690da6ecfb2b30fc5080ad76dc77b1._comment ./doc/forum/wishlist:_special_remote_for_sftp_or_rsync.mdwn ./doc/forum/OSX__39__s_haskell-platform_statically_links_things.mdwn ./doc/forum/using_git_annex_to_merge_and_synchronize_2_directories___40__like_unison__41__.mdwn ./doc/forum/git_tag_missing_for_3.20111011.mdwn ./doc/forum/unannex_alternatives.mdwn ./doc/forum/can_git-annex_replace_ddm__63__.mdwn ./doc/forum/sparse_git_checkouts_with_annex/comment_2_e357db3ccc4079f07a291843975535eb._comment ./doc/forum/sparse_git_checkouts_with_annex/comment_1_c7dc199c5740a0e7ba606dfb5e3e579a._comment ./doc/forum/sparse_git_checkouts_with_annex/comment_3_fcfafca994194d57dccf5319c7c9e646._comment ./doc/forum/sparse_git_checkouts_with_annex/comment_4_04dc14880f31eee2b6d767d4d4258c5a._comment ./doc/forum/syncing_non-git_trees_with_git-annex.mdwn ./doc/forum/git-annex_communication_channels.mdwn ./doc/forum/fsck_gives_false_positives/comment_4_7ceb395bf8a2e6a041ccd8de63b1b6eb._comment ./doc/forum/fsck_gives_false_positives/comment_3_692d6d4cd2f75a497e7d314041a768d2._comment ./doc/forum/fsck_gives_false_positives/comment_5_86484a504c3bbcecd5876982b9c95688._comment ./doc/forum/fsck_gives_false_positives/comment_2_f51c53f3f6e6ee1ad463992657db5828._comment ./doc/forum/fsck_gives_false_positives/comment_1_b91070218b9d5fb687eeee1f244237ad._comment ./doc/forum/Sharing_annex_with_local_clones/comment_3_5359b8eada24d27be83214ac0ae62f23._comment ./doc/forum/Sharing_annex_with_local_clones/comment_1_2b60e13e5f7b8cee56cf2ddc6c47f64d._comment ./doc/forum/Sharing_annex_with_local_clones/comment_2_24ff2c1eb643077daa37c01644cebcd2._comment ./doc/forum/can_git-annex_replace_ddm__63__/comment_3_4c69097fe2ee81359655e59a03a9bb8d._comment ./doc/forum/can_git-annex_replace_ddm__63__/comment_2_008554306dd082d7f543baf283510e92._comment ./doc/forum/can_git-annex_replace_ddm__63__/comment_1_aa05008dfe800474ff76678a400099e1._comment ./doc/forum/version_3_upgrade.mdwn ./doc/forum/relying_on_git_for_numcopies/comment_3_43d8e1513eb9947f8a503f094c03f307._comment ./doc/forum/relying_on_git_for_numcopies/comment_2_be6acbc26008a9cb54e7b8f498f2c2a2._comment ./doc/forum/relying_on_git_for_numcopies/comment_1_8ad3cccd7f66f6423341d71241ba89fc._comment ./doc/forum/confusion_with_remotes__44___map/comment_1_a38ded23b7f288292a843abcb1a56f38._comment ./doc/forum/confusion_with_remotes__44___map/comment_2_cd1c98b1276444e859a22c3dbd6f2a79._comment ./doc/forum/confusion_with_remotes__44___map/comment_6_496b0d9b86869bbac3a1356d53a3dda4._comment ./doc/forum/confusion_with_remotes__44___map/comment_5_27801584325d259fa490f67273f2ff71._comment ./doc/forum/confusion_with_remotes__44___map/comment_4_3b89b6d1518267fcbc050c9de038b9ca._comment ./doc/forum/confusion_with_remotes__44___map/comment_3_18531754089c991b6caefc57a5c17fe9._comment ./doc/forum/confusion_with_remotes__44___map/comment_7_9a456f61f956a3d5e81e723d5a90794c._comment ./doc/forum/--print0_option_as_in___34__find__34__.mdwn ./doc/forum/relying_on_git_for_numcopies.mdwn ./doc/forum/wishlist:_do_round_robin_downloading_of_data.mdwn ./doc/forum/pure_git-annex_only_workflow.mdwn ./doc/forum/post-copy__47__sync_hook/comment_1_c8322d4b9bbf5eac80b48c312a42fbcf._comment ./doc/forum/wishlist:_git_annex_status.mdwn ./doc/forum/getting_git_annex_to_do_a_force_copy_to_a_remote.mdwn ./doc/forum/Problems_with_large_numbers_of_files.mdwn ./doc/forum/Can_I_store_normal_files_in_the_git-annex_git_repository__63__.mdwn ./doc/forum/Is_an_automagic_upgrade_of_the_object_directory_safe__63__.mdwn ./doc/forum/windows_port__63__.mdwn ./doc/forum/windows_port__63__/comment_1_23fa9aa3b00940a1c1b3876c35eef019._comment ./doc/forum/wishlist:_push_to_cia.vc_from_the_website__39__s_repo__44___not_your_personal_one.mdwn ./doc/forum/new_microfeatures.mdwn ./doc/forum/git-subtree_support__63__/comment_2_73d2a015b1ac79ec99e071a8b1e29034._comment ./doc/forum/git-subtree_support__63__/comment_1_4f333cb71ed1ff259bbfd86704806aa6._comment ./doc/forum/git-subtree_support__63__/comment_4_75b0e072e668aa46ff0a8d62a6620306._comment ./doc/forum/git-subtree_support__63__/comment_3_c533400e22c306c033fcd56e64761b0b._comment ./doc/forum/git-subtree_support__63__/comment_6_85df530f7b6d76b74ac8017c6034f95e._comment ./doc/forum/git-subtree_support__63__/comment_5_f5ec9649d9f1dc122e715de5533bc674._comment ./doc/backends.mdwn ./doc/bugs/__39__annex_add__39___fails_to___39__git_add__39___for_parent_relative_path.mdwn ./doc/bugs/uuid.log_trust.log_and_remote.log_merge_wackiness.mdwn ./doc/bugs/Remote_repo_and_set_operation_with_find.mdwn ./doc/bugs/softlink_mtime.mdwn ./doc/bugs/uninit_should_not_run_when_branch_git-annex_is_checked_out.mdwn ./doc/bugs/ordering.mdwn ./doc/bugs/dropping_files_with_a_URL_backend_fails.mdwn ./doc/bugs/fsck__47__fix_should_check__47__fix_the_permissions_of_.git__47__annex.mdwn ./doc/bugs/dropunused_doesn__39__t_handle_double_spaces_in_filename.mdwn ./doc/bugs/add_script-friendly_output_options.mdwn ./doc/bugs/uninit_does_not_work_in_old_repos.mdwn ./doc/bugs/conq:_invalid_command_syntax.mdwn ./doc/bugs/git_annex_get_choke_when_remote_is_an_ssh_url_with_a_port.mdwn ./doc/bugs/unannex_and_uninit_do_not_work_when_git_index_is_broken.mdwn ./doc/bugs/git_annex_migrate_leaves_old_backend_versions_around.mdwn ./doc/bugs/git_annex_unused_failes_on_empty_repository.mdwn ./doc/bugs/git_annex_add_eats_files_when_filename_is_too_long.mdwn ./doc/bugs/S3_bucket_uses_the_same_key_for_encryption_and_hashing.mdwn ./doc/bugs/problem_with_upgrade_v2_-__62___v3.mdwn ./doc/bugs/git_annex_copy_--fast_does_not_copy_files.mdwn ./doc/bugs/Cabal_dependency_monadIO_missing.mdwn ./doc/bugs/dotdot_problem.mdwn ./doc/bugs/Problems_running_make_on_osx.mdwn ./doc/bugs/free_space_checking/comment_2_8a65f6d3dcf5baa3f7f2dbe1346e2615._comment ./doc/bugs/free_space_checking/comment_3_0fc6ff79a357b1619d13018ccacc7c10._comment ./doc/bugs/free_space_checking/comment_1_a868e805be43c5a7c19c41f1af8e41e6._comment ./doc/bugs/copy_doesn__39__t_scale.mdwn ./doc/bugs/Error_when_moving_annexed_file_to_a_.gitignored_location.mdwn ./doc/bugs/done.mdwn ./doc/bugs/git_annex_copy_-f_REMOTE_._doesn__39__t_work_as_expected.mdwn ./doc/bugs/Displayed_copy_speed_is_wrong/comment_2_8b240de1d5ae9229fa2d77d1cc15a552._comment ./doc/bugs/Displayed_copy_speed_is_wrong/comment_1_74de3091e8bfd7acd6795e61f39f07c6._comment ./doc/bugs/Build_error_on_Mac_OSX_10.6.mdwn ./doc/bugs/bare_git_repos.mdwn ./doc/bugs/nfs_mounted_repo_results_in_errors_on_drop_move.mdwn ./doc/bugs/fat_support.mdwn ./doc/bugs/problems_with_utf8_names.mdwn ./doc/bugs/error_with_file_names_starting_with_dash.mdwn ./doc/bugs/not_possible_to_have_annex_on_a_separate_filesystem.mdwn ./doc/bugs/Lost_S3_Remote.mdwn ./doc/bugs/unhappy_without_UTF8_locale.mdwn ./doc/bugs/S3_memory_leaks.mdwn ./doc/bugs/git_annex_map_has_problems_with_urls_containing___126__.mdwn ./doc/bugs/interrupting_migration_causes_problems.mdwn ./doc/bugs/upgrade_left_untracked_.git-annex__47____42___directories.mdwn ./doc/bugs/cyclic_drop.mdwn ./doc/bugs/Problems_running_make_on_osx/comment_9_cc283b485b3c95ba7eebc8f0c96969b3._comment ./doc/bugs/Problems_running_make_on_osx/comment_4_c52be386f79f14c8570a8f1397c68581._comment ./doc/bugs/Problems_running_make_on_osx/comment_18_64fab50d95de619eb2e8f08f90237de1._comment ./doc/bugs/Problems_running_make_on_osx/comment_16_5c2dd6002aadaab30841b77a5f5aed34._comment ./doc/bugs/Problems_running_make_on_osx/comment_10_94e4ac430140042a2d0fb5a16d86b4e5._comment ./doc/bugs/Problems_running_make_on_osx/comment_15_6b8867b8e48bf807c955779c9f8f0909._comment ./doc/bugs/Problems_running_make_on_osx/comment_11_56f1143fa191361d63b441741699e17f._comment ./doc/bugs/Problems_running_make_on_osx/comment_20_7db27d1a22666c831848bc6c06d66a84._comment ./doc/bugs/Problems_running_make_on_osx/comment_12_ec5131624d0d2285d3b6880e47033f97._comment ./doc/bugs/Problems_running_make_on_osx/comment_3_68f0f8ae953589ae26d57310b40c878d._comment ./doc/bugs/Problems_running_make_on_osx/comment_14_89a960b6706ed703b390a81a8bc4e311._comment ./doc/bugs/Problems_running_make_on_osx/comment_17_62fccb04b0e4b695312f7a3f32fb96ee._comment ./doc/bugs/Problems_running_make_on_osx/comment_19_4253988ed178054c8b6400beeed68a29._comment ./doc/bugs/Problems_running_make_on_osx/comment_6_0c46f5165ceb5a7b9ea9689c33b3a4f8._comment ./doc/bugs/Problems_running_make_on_osx/comment_1_34120e82331ace01a6a4960862d38f2d._comment ./doc/bugs/Problems_running_make_on_osx/comment_7_237a137cce58a28abcc736cbf2c420b0._comment ./doc/bugs/Problems_running_make_on_osx/comment_5_7f1330a1e541b0f3e2192e596d7f7bee._comment ./doc/bugs/Problems_running_make_on_osx/comment_2_cc53d1681d576186dbc868dd9801d551._comment ./doc/bugs/Problems_running_make_on_osx/comment_13_88ed095a448096bf8a69015a04e64df1._comment ./doc/bugs/Problems_running_make_on_osx/comment_8_efafa203addf8fa79e33e21a87fb5a2b._comment ./doc/bugs/git-annex_directory_hashing_problems_on_osx.mdwn ./doc/bugs/No_easy_way_to_re-inject_a_file_into_an_annex.mdwn ./doc/bugs/git_annex_unlock_is_not_atomic.mdwn ./doc/bugs/free_space_checking.mdwn ./doc/bugs/wishlist:_more_descriptive_commit_messages_in_git-annex_branch.mdwn ./doc/bugs/Displayed_copy_speed_is_wrong.mdwn ./doc/bugs/git_annex_should_use___39__git_add_-f__39___internally.mdwn ./doc/bugs/minor_bug:_errors_are_not_verbose_enough.mdwn ./doc/bugs/__34__make_test__34___fails_silently.mdwn ./doc/bugs/No_version_information_from_cli.mdwn ./doc/bugs/Error_while_adding_a_file___34__createSymbolicLink:_already_exists__34__.mdwn ./doc/bugs/conq:_invalid_command_syntax/comment_1_f33b83025ce974e496f83f248275a66a._comment ./doc/bugs/conq:_invalid_command_syntax/comment_2_195106ca8dedad5f4d755f625e38e8af._comment ./doc/bugs/conq:_invalid_command_syntax/comment_3_55af43e2f43a4c373f7a0a33678d0b1c._comment ./doc/bugs/old_data_isn__39__t_unused_after_migration.mdwn ./doc/bugs/fails_to_handle_lot_of_files.mdwn ./doc/bugs/tests_fail_when_there_is_no_global_.gitconfig_for_the_user.mdwn ./doc/bugs/configurable_path_to_git-annex-shell.mdwn ./doc/bugs/git_annex_initremote_walks_.git-annex.mdwn ./doc/bugs/copy_doesn__39__t_scale/comment_1_7c12499c9ac28a9883c029f8c659eb57._comment ./doc/bugs/copy_doesn__39__t_scale/comment_2_f85d8023cdbc203bb439644cf7245d4e._comment ./doc/bugs/copy_doesn__39__t_scale/comment_3_4592765c3d77bb5664b8d16867e9d79c._comment ./doc/bugs/signal_weirdness.mdwn ./doc/bugs/git-annex_incorrectly_parses_bare_IPv6_addresses.mdwn ./doc/bugs/git_annex_version_should_without_being_in_a_repo_.mdwn ./doc/bugs/Can__39__t___34__git-annex_get__34___with_3.20111203.mdwn ./doc/bugs/Prevent_accidental_merges/comment_1_4c46a193915eab8f308a04175cb2e40a._comment ./doc/bugs/conflicting_haskell_packages/comment_1_e552a6cc6d7d1882e14130edfc2d6b3b._comment ./doc/bugs/tmp_file_handling.mdwn ./doc/bugs/annex_add_in_annex.mdwn ./doc/bugs/making_annex-merge_try_a_fast-forward.mdwn ./doc/bugs/bad_behaviour_with_file_names_with_newline_in_them.mdwn ./doc/bugs/Lost_S3_Remote/comment_2_c99c65882a3924f4890e500f9492b442._comment ./doc/bugs/Lost_S3_Remote/comment_3_1e434d5a20a692cd9dc7f6f8f20f30dd._comment ./doc/bugs/Lost_S3_Remote/comment_1_6e80e6db6671581d471fc9a54181c04c._comment ./doc/bugs/on--git-dir_and_--work-tree_options.mdwn ./doc/bugs/Makefile_is_missing_dependancies.mdwn ./doc/bugs/test_suite_shouldn__39__t_fail_silently.mdwn ./doc/bugs/git_annex_upgrade_output_is_inconsistent_and_spammy.mdwn ./doc/bugs/problem_with_upgrade_v2_-__62___v3/comment_4_91439d4dbbf1461e281b276eb0003691._comment ./doc/bugs/problem_with_upgrade_v2_-__62___v3/comment_6_f360f0006bc9115bc5a3e2eb9fe58abd._comment ./doc/bugs/problem_with_upgrade_v2_-__62___v3/comment_3_86d9e7244ae492bcbe62720b8c4fc4a9._comment ./doc/bugs/problem_with_upgrade_v2_-__62___v3/comment_2_cd0123392b16d89db41b45464165c247._comment ./doc/bugs/problem_with_upgrade_v2_-__62___v3/comment_1_5f60006c9bb095167d817f234a14d20b._comment ./doc/bugs/problem_with_upgrade_v2_-__62___v3/comment_5_ca33a9ca0df33f7c1b58353d7ffb943d._comment ./doc/bugs/wishlist:_query_things_like_description__44___trust_level.mdwn ./doc/bugs/git_rename_detection_on_file_move/comment_9_75e0973f6d573df615e01005ebcea87d._comment ./doc/bugs/git_rename_detection_on_file_move/comment_7_7f20d0b2f6ed1c34021a135438037306._comment ./doc/bugs/git_rename_detection_on_file_move/comment_3_57010bcaca42089b451ad8659a1e018e._comment ./doc/bugs/git_rename_detection_on_file_move/comment_4_79d96599f757757f34d7b784e6c0e81c._comment ./doc/bugs/git_rename_detection_on_file_move/comment_5_d61f5693d947b9736b29fca1dbc7ad76._comment ./doc/bugs/git_rename_detection_on_file_move/comment_8_6a00500b24ba53248c78e1ffc8d1a591._comment ./doc/bugs/git_rename_detection_on_file_move/comment_2_7101d07400ad5935f880dc00d89bf90e._comment ./doc/bugs/git_rename_detection_on_file_move/comment_6_f63de6fe2f7189c8c2908cc41c4bc963._comment ./doc/bugs/git_rename_detection_on_file_move/comment_1_0531dcfa833b0321a7009526efe3df33._comment ./doc/bugs/fsck_claims_failed_checksum_when_less_copies_than_required_are_found.mdwn ./doc/bugs/add_range_argument_to___34__git_annex_dropunused__34___.mdwn ./doc/bugs/git_rename_detection_on_file_move.mdwn ./doc/bugs/problem_commit_normal_links.mdwn ./doc/bugs/extraneous_shell_escaping_for_rsync_remotes.mdwn ./doc/bugs/problems_with_utf8_names/comment_1_3c7e3f021c2c94277eecf9c8af6cec5f._comment ./doc/bugs/problems_with_utf8_names/comment_7_0cc588f787d6eecfa19a8f6cee4b07b5._comment ./doc/bugs/problems_with_utf8_names/comment_8_ff5c6da9eadfee20c18c86b648a62c47._comment ./doc/bugs/problems_with_utf8_names/comment_4_93bee35f5fa7744834994bc7a253a6f9._comment ./doc/bugs/problems_with_utf8_names/comment_3_4f936a5d3f9c7df64c8a87e62b7fbfdc._comment ./doc/bugs/problems_with_utf8_names/comment_5_519cda534c7aea7f5ad5acd3f76e21fa._comment ./doc/bugs/problems_with_utf8_names/comment_6_52e0bfff2b177b6f92e226b25d2f3ff1._comment ./doc/bugs/problems_with_utf8_names/comment_2_bad4c4c5f54358d1bc0ab2adc713782a._comment ./doc/bugs/git_annex_unused_seems_to_check_for_current_path.mdwn ./doc/bugs/Makefile_is_missing_dependancies/comment_6_24119fc5d5963ce9dd669f7dcf006859._comment ./doc/bugs/Makefile_is_missing_dependancies/comment_3_c38b6f4abc9b9ad413c3b83ca04386c3._comment ./doc/bugs/Makefile_is_missing_dependancies/comment_8_a3555e3286cdc2bfeb9cde0ff727ba74._comment ./doc/bugs/Makefile_is_missing_dependancies/comment_2_416f12dbd0c2b841fac8164645b81df5._comment ./doc/bugs/Makefile_is_missing_dependancies/comment_5_0a1c52e2c96d19b9c3eb7e99b8c2434f._comment ./doc/bugs/Makefile_is_missing_dependancies/comment_7_96fd4725df4b54e670077a18d3ac4943._comment ./doc/bugs/Makefile_is_missing_dependancies/comment_1_5a3da5f79c8563c7a450aa29728abe7c._comment ./doc/bugs/Makefile_is_missing_dependancies/comment_4_cc13873175edf191047282700315beee._comment ./doc/bugs/Trouble_initializing_git_annex_on_NFS.mdwn ./doc/bugs/touch.hsc_has_problems_on_non-linux_based_systems.mdwn ./doc/bugs/build_issue_with_latest_release_0.20110522-1-gde817ba.mdwn ./doc/bugs/weird_local_clone_confuses.mdwn ./doc/bugs/fsck_output.mdwn ./doc/bugs/git_annex_add_memory_leak.mdwn ./doc/bugs/git-annex_branch_push_race.mdwn ./doc/bugs/wishlist:_allow_users_to_provide_UUID_when_running___96__git_annex_init__96__.mdwn ./doc/bugs/git-annex_has_issues_with_git_when_staging__47__commiting_logs.mdwn ./doc/bugs/git_annex_gets_confused_about_remotes_with_dots_in_their_names.mdwn ./doc/bugs/unannex_vs_unlock_hook_confusion.mdwn ./doc/bugs/Cabal_dependency_monadIO_missing/comment_2_4f4d8e1e00a2a4f7e8a8ab082e16adac._comment ./doc/bugs/Cabal_dependency_monadIO_missing/comment_1_14be660aa57fadec0d81b32a8b52c66f._comment ./doc/bugs/conflicting_haskell_packages.mdwn ./doc/bugs/git_command_line_constructed_by_unannex_command_has_tons_of_redundant_-a_paramters.mdwn ./doc/bugs/backend_version_upgrade_leaves_repo_unusable.mdwn ./doc/bugs/fat_support/comment_3_df3b943bc1081a8f3f7434ae0c8e061e._comment ./doc/bugs/fat_support/comment_4_90a8a15bedd94480945a374f9d706b86._comment ./doc/bugs/fat_support/comment_5_64bbf89de0836673224b83fdefa0407b._comment ./doc/bugs/fat_support/comment_1_04bcc4795d431e8cb32293aab29bbfe2._comment ./doc/bugs/fat_support/comment_2_bb4a97ebadb5c53809fc78431eabd7c8._comment ./doc/bugs/unannex_command_doesn__39__t_all_files.mdwn ./doc/bugs/annex_unannex__47__uninit_should_handle_copies.mdwn ./doc/bugs/git-annex_branch_corruption.mdwn ./doc/bugs/git_annex_fsck_is_a_no-op_in_bare_repos.mdwn ./doc/bugs/show_version_without_having_to_be_in_a_git_repo.mdwn ./doc/bugs/Unfortunate_interaction_with_Calibre.mdwn ./doc/bugs/error_propigation.mdwn ./doc/bugs/wishlist:_support_drop__44___find_on_special_remotes.mdwn ./doc/bugs/scp_interrupt_to_background.mdwn ./doc/bugs/copy_fast_confusing_with_broken_locationlog.mdwn ./doc/bugs/uninit_does_not_work_in_old_repos/comment_1_bc0619c6e17139df74639448aa6a0f72._comment ./doc/bugs/git-annex_losing_rsync_remotes_with_encryption_enabled.mdwn ./doc/bugs/configure_script_should_detect_uuidgen_instead_of_just_uuid.mdwn ./doc/bugs/check_for_curl_in_configure.hs.mdwn ./doc/bugs/fails_to_handle_lot_of_files/comment_1_09d8e4e66d8273fab611bd29e82dc7fc._comment ./doc/bugs/fails_to_handle_lot_of_files/comment_2_fd2ec05f4b5a7a6ae6bd9f5dbc3156de._comment ./doc/bugs/Name_scheme_does_not_follow_git__39__s_rules.mdwn ./doc/bugs/concurrent_git-annex_processes_can_lead_to_locking_issues.mdwn ./doc/bugs/Prevent_accidental_merges.mdwn ./doc/bugs/building_on_lenny.mdwn ./doc/bugs/case_sensitivity_on_FAT.mdwn ./doc/bugs/encrypted_S3_stalls.mdwn ./doc/bugs/support_bare_git_repo__44___with_the_annex_directory_exposed_to_http.mdwn ./doc/bugs/WORM:_Handle_long_filenames_correctly.mdwn ./doc/logo_small.png ./doc/tips.mdwn ./doc/use_case/Bob.mdwn ./doc/use_case/Alice.mdwn ./doc/upgrades/SHA_size.mdwn ./doc/news/sharebox_a_FUSE_filesystem_for_git-annex.mdwn ./doc/news/version_3.20120309.mdwn ./doc/news/version_3.20120405.mdwn ./doc/news/version_3.20120315.mdwn ./doc/news/version_3.20120230/comment_2_899de1196cd1ba4a393e4ef574d7aa5e._comment ./doc/news/version_3.20120230/comment_1_b975cbd3a01ba5c2fa0f24fe739d3433._comment ./doc/news/Presentation_at_FOSDEM.mdwn ./doc/news/version_3.20120229/comment_5_7dbf131ff4611abbfc8fbf1ee0f66dbe._comment ./doc/news/version_3.20120229/comment_2_03436ddda42decf8cb1b4d5316d88a75._comment ./doc/news/version_3.20120229/comment_3_8f7f8d4758804f1b695925934219745a._comment ./doc/news/version_3.20120229/comment_4_cd90223f78571e5bdd3dfc07ab1369d7._comment ./doc/news/version_3.20120229/comment_1_18158b9be2313f49509d59295c7d3c90._comment ./doc/news/LWN_article.mdwn ./doc/news/version_3.20120230.mdwn ./doc/news/version_3.20120227/comment_2_ea5075cfecc50d5da2364931ef7a02d1._comment ./doc/news/version_3.20120227/comment_1_f8fc894680f2a2e5b5e757a677414b42._comment ./doc/news/version_3.20120106/comment_1_fb1a3135e2d9f39f2c372ccc2c50c85a._comment ./doc/news/version_3.20120106/comment_2_ae292ca7294b6790233e545086c3ac2f._comment ./doc/news/version_3.20120106/comment_3_29ccda9ac458fd5cc9ec5508c62df6ea._comment ./doc/git-union-merge.mdwn ./doc/special_remotes/S3.mdwn ./doc/special_remotes/web.mdwn ./doc/special_remotes/bup.mdwn ./doc/special_remotes/directory.mdwn ./doc/special_remotes/hook.mdwn ./doc/special_remotes/rsync.mdwn ./doc/how_it_works.mdwn ./doc/sitemap.mdwn ./doc/users/joey.mdwn ./doc/users/fmarier.mdwn ./doc/users/chrysn.mdwn ./doc/users/gebi.mdwn ./doc/templates/walkthrough.tmpl ./doc/templates/bugtemplate.mdwn ./doc/templates/bare.tmpl ./doc/index.mdwn ./doc/sync/comment_1_59681be5568f568f5c54eb0445163dd2._comment ./doc/summary.mdwn ./doc/forum.mdwn ./doc/encryption/comment_1_1afca8d7182075d46db41f6ad3dd5911._comment ./doc/transferring_data.mdwn ./doc/download.mdwn ./doc/future_proofing.mdwn ./doc/todo/redundancy_stats_in_status.mdwn ./doc/todo/auto_remotes/discussion.mdwn ./doc/todo/link_file_to_remote_repo_feature.mdwn ./doc/todo/file_copy_progress_bar.mdwn ./doc/todo/use_cp_reflink.mdwn ./doc/todo/gitrm.mdwn ./doc/todo/exclude_files_on_a_given_remote.mdwn ./doc/todo/git-annex_unused_eats_memory.mdwn ./doc/todo/Please_abort_build_if___34__make_test__34___fails.mdwn ./doc/todo/fsck_special_remotes.mdwn ./doc/todo/add_--exclude_option_to_git_annex_find.mdwn ./doc/todo/tahoe_lfs_for_reals/comment_2_80b9e848edfdc7be21baab7d0cef0e3a._comment ./doc/todo/tahoe_lfs_for_reals/comment_1_0a4793ce6a867638f6e510e71dd4bb44._comment ./doc/todo/object_dir_reorg_v2.mdwn ./doc/todo/S3.mdwn ./doc/todo/auto_remotes.mdwn ./doc/todo/wishlist:_support_for_more_ssh_urls_.mdwn ./doc/todo/support-non-utf8-locales.mdwn ./doc/todo/done.mdwn ./doc/todo/fsck.mdwn ./doc/todo/support_S3_multipart_uploads.mdwn ./doc/todo/wishlist:_Provide_a___34__git_annex__34___command_that_will_skip_duplicates.mdwn ./doc/todo/pushpull.mdwn ./doc/todo/smudge.mdwn ./doc/todo/cache_key_info/comment_1_578df1b3b2cbfdc4aa1805378f35dc48._comment ./doc/todo/windows_support.mdwn ./doc/todo/optimise_git-annex_merge.mdwn ./doc/todo/object_dir_reorg_v2/comment_3_79bdf9c51dec9f52372ce95b53233bb2._comment ./doc/todo/object_dir_reorg_v2/comment_7_42501404c82ca07147e2cce0cff59474._comment ./doc/todo/object_dir_reorg_v2/comment_5_821c382987f105da72a50e0a5ce61fdc._comment ./doc/todo/object_dir_reorg_v2/comment_1_ba03333dc76ff49eccaba375e68cb525._comment ./doc/todo/object_dir_reorg_v2/comment_2_81276ac309959dc741bc90101c213ab7._comment ./doc/todo/object_dir_reorg_v2/comment_6_8834c3a3f1258c4349d23aff8549bf35._comment ./doc/todo/object_dir_reorg_v2/comment_4_93aada9b1680fed56cc6f0f7c3aca5e5._comment ./doc/todo/union_mounting.mdwn ./doc/todo/wishlist:_swift_backend.mdwn ./doc/todo/Please_add_support_for_monad-control_0.3.x.mdwn ./doc/todo/wishlist:_swift_backend/comment_1_e6efbb35f61ee521b473a92674036788._comment ./doc/todo/wishlist:_swift_backend/comment_2_5d8c83b0485112e98367b7abaab3f4e3._comment ./doc/todo/git_annex_init_:_include_repo_description_and__47__or_UUID_in_commit_message.mdwn ./doc/todo/gitolite_and_gitosis_support.mdwn ./doc/todo/wishlist:___34__git_annex_add__34___multiple_processes.mdwn ./doc/todo/hidden_files.mdwn ./doc/todo/smudge/comment_1_4ea616bcdbc9e9a6fae9f2e2795c31c9._comment ./doc/todo/smudge/comment_2_e04b32caa0d2b4c577cdaf382a3ff7f6._comment ./doc/todo/network_remotes.mdwn ./doc/todo/add_a_git_backend.mdwn ./doc/todo/parallel_possibilities/comment_1_d8e34fc2bc4e5cf761574608f970d496._comment ./doc/todo/parallel_possibilities/comment_2_adb76f06a7997abe4559d3169a3181c3._comment ./doc/todo/checkout.mdwn ./doc/todo/immutable_annexed_files.mdwn ./doc/todo/wishlist:_Prevent_repeated_password_prompts_for_one_command.mdwn ./doc/todo/git-annex-shell.mdwn ./doc/todo/speed_up_fsck.mdwn ./doc/todo/tahoe_lfs_for_reals.mdwn ./doc/todo/avoid_unnecessary_union_merges.mdwn ./doc/todo/support_fsck_in_bare_repos.mdwn ./doc/todo/add_-all_option.mdwn ./doc/todo/using_url_backend.mdwn ./doc/todo/branching.mdwn ./doc/todo/rsync.mdwn ./doc/todo/backendSHA1.mdwn ./doc/todo/cache_key_info.mdwn ./doc/todo/parallel_possibilities.mdwn ./doc/todo/symlink_farming_commit_hook.mdwn ./doc/feeds.mdwn ./doc/sync.mdwn ./doc/copies.mdwn ./doc/repomap.png ./doc/scalability.mdwn ./doc/special_remotes.mdwn ./doc/todo.mdwn ./doc/walkthrough/using_ssh_remotes.mdwn ./doc/walkthrough/automatically_managing_content.mdwn ./doc/walkthrough/removing_files/comment_1_cb65e7c510b75be1c51f655b058667c6._comment ./doc/walkthrough/removing_files/comment_2_64709ea4558915edd5c8ca4486965b07._comment ./doc/walkthrough/moving_file_content_between_repositories.mdwn ./doc/walkthrough/modifying_annexed_files.mdwn ./doc/walkthrough/more.mdwn ./doc/walkthrough/removing_files.mdwn ./doc/walkthrough/creating_a_repository.mdwn ./doc/walkthrough/adding_a_remote.mdwn ./doc/walkthrough/adding_a_remote/comment_1_0a59355bd33a796aec97173607e6adc9._comment ./doc/walkthrough/adding_a_remote/comment_2_f8cd79ef1593a8181a7f1086a87713e8._comment ./doc/walkthrough/adding_a_remote/comment_3_60691af4400521b5a8c8d75efe3b44cb._comment ./doc/walkthrough/adding_a_remote/comment_4_6f7cf5c330272c96b3abeb6612075c9d._comment ./doc/walkthrough/removing_files:_When_things_go_wrong.mdwn ./doc/walkthrough/renaming_files.mdwn ./doc/walkthrough/using_bup.mdwn ./doc/walkthrough/fsck:_when_things_go_wrong.mdwn ./doc/walkthrough/syncing.mdwn ./doc/walkthrough/adding_files.mdwn ./doc/walkthrough/unused_data.mdwn ./doc/walkthrough/fsck:_verifying_your_data.mdwn ./doc/walkthrough/getting_file_content.mdwn ./doc/walkthrough/backups.mdwn ./doc/walkthrough/transferring_files:_When_things_go_wrong.mdwn ./doc/GPL ./doc/logo.png ./doc/location_tracking.mdwn ./doc/design.mdwn ./doc/news.mdwn ./doc/tips/visualizing_repositories_with_gource/screenshot.jpg ./doc/tips/untrusted_repositories.mdwn ./doc/tips/using_box.com_as_a_special_remote.mdwn ./doc/tips/automatically_getting_files_on_checkout.mdwn ./doc/tips/what_to_do_when_a_repository_is_corrupted.mdwn ./doc/tips/Internet_Archive_via_S3.mdwn ./doc/tips/what_to_do_when_you_lose_a_repository.mdwn ./doc/tips/using_Amazon_S3.mdwn ./doc/tips/using_the_web_as_a_special_remote.mdwn ./doc/tips/assume-unstaged.mdwn ./doc/tips/powerful_file_matching.mdwn ./doc/tips/using_gitolite_with_git-annex.mdwn ./doc/tips/recover_data_from_lost+found.mdwn ./doc/tips/visualizing_repositories_with_gource.mdwn ./doc/tips/centralized_git_repository_tutorial.mdwn ./doc/tips/finding_duplicate_files/comment_1_ddb477ca242ffeb21e0df394d8fdf5d2._comment ./doc/tips/using_git_annex_with_no_fixed_hostname_and_optimising_ssh.mdwn ./doc/tips/using_gitolite_with_git-annex/comment_4_eb81f824aadc97f098379c5f7e4fba4c._comment ./doc/tips/using_gitolite_with_git-annex/comment_6_3e203e010a4df5bf03899f867718adc5._comment ./doc/tips/using_gitolite_with_git-annex/comment_1_9a2a2a8eac9af97e0c984ad105763a73._comment ./doc/tips/using_gitolite_with_git-annex/comment_8_8249772c142117f88e37975d058aa936._comment ./doc/tips/using_gitolite_with_git-annex/comment_5_f688309532d2993630e9e72e87fb9c46._comment ./doc/tips/using_gitolite_with_git-annex/comment_7_f8fd08b6ab47378ad88c87348057220d._comment ./doc/tips/using_gitolite_with_git-annex/comment_3_807035f38509ccb9f93f1929ecd37417._comment ./doc/tips/using_gitolite_with_git-annex/comment_9_28418635a6ed7231b89e02211cd3c236._comment ./doc/tips/using_gitolite_with_git-annex/comment_2_d8efea4ab9576555fadbb47666ecefa9._comment ./doc/tips/finding_duplicate_files.mdwn ./doc/tips/centralised_repository:_starting_from_nothing.mdwn ./doc/tips/using_the_SHA1_backend.mdwn ./doc/tips/migrating_data_to_a_new_backend.mdwn ./doc/encryption.mdwn ./doc/not.mdwn ./doc/download/comment_7_a5eebd214b135f34b18274a682211943._comment ./doc/download/comment_3_cf6044ebe99f71158034e21197228abd._comment ./doc/download/comment_5_c6b1bc40226fc2c8ba3e558150856992._comment ./doc/download/comment_6_3a52993d3553deb9a413debec9a5f92d._comment ./doc/download/comment_2_f85f72b33aedc3425f0c0c47867d02f3._comment ./doc/download/comment_8_59a976de6c7d333709b92f7cd5830850._comment ./doc/download/comment_4_10fc013865c7542c2ed9d6c0963bb391._comment ./doc/download/comment_1_fbd8b6d39e9d3c71791551358c863966._comment ./doc/contact.mdwn ./doc/trust.mdwn ./doc/bare_repositories.mdwn ./doc/NixOS.mdwn ./doc/distributed_version_control.mdwn ./doc/install.mdwn ./doc/git-annex-shell.mdwn ./doc/bugs.mdwn ./doc/meta.mdwn ./doc/design/encryption/comment_2_a610b3d056a059899178859a3a821ea5._comment ./doc/design/encryption/comment_3_cca186a9536cd3f6e86994631b14231c._comment ./doc/design/encryption/comment_1_4715ffafb3c4a9915bc33f2b26aaa9c1._comment ./doc/design/encryption/comment_4_8f3ba3e504b058791fc6e6f9c38154cf._comment ./doc/design/encryption.mdwn ./doc/comments.mdwn ./doc/git-annex.mdwn ./doc/internals.mdwn ./doc/users.mdwn ./doc/install/Ubuntu.mdwn ./doc/install/Debian.mdwn ./doc/install/openSUSE.mdwn ./doc/install/OSX.mdwn ./doc/install/FreeBSD.mdwn ./doc/install/OSX/comment_1_0a1760bf0db1f1ba89bdb4c62032f631._comment ./doc/install/OSX/comment_3_47c682a779812dda77601c24a619923c._comment ./doc/install/OSX/comment_2_0327c64b15249596add635d26f4ce67f._comment ./doc/install/ArchLinux.mdwn ./doc/install/Debian/comment_2_648e3467e260cdf233acdb0b53313ce0._comment ./doc/install/Debian/comment_1_029486088d098c2d4f1099f2f0e701a9._comment ./doc/install/Fedora.mdwn ./doc/walkthrough.mdwn ./CmdLine.hs ./Messages.hs ./Setup.hs ./GPL ./mdwn2man ./Remote.hs ./git-annex.hs ./Locations.hs ./Usage.hs ./Backend/WORM.hs ./Backend/URL.hs ./Backend/SHA.hs ./Git.hi ./git-annex-shell.hs ./test.hs ./INSTALL ./Remote/Web.hs ./Remote/Helper/Encryptable.hs ./Remote/Helper/Ssh.hs ./Remote/Helper/Special.hs ./Remote/Helper/Hooks.hs ./Remote/Directory.hs ./Remote/List.hs ./Remote/Bup.hs ./Remote/Hook.hs ./Remote/S3.hs ./Remote/Rsync.hs ./Remote/Git.hs ./Build/SysConfig.o ./Build/TestConfig.hi ./Build/TestConfig.hs ./Build/SysConfig.hi ./Build/TestConfig.o ./Build/Configure.hs ./Upgrade.hs ./Annex/Version.hs ./Annex/Exception.hs ./Annex/Journal.hs ./Annex/CatFile.hs ./Annex/Ssh.hs ./Annex/Queue.hs ./Annex/Branch.hs ./Annex/UUID.hs ./Annex/LockPool.hs ./Annex/BranchState.hs ./Annex/CheckAttr.hs ./Annex/Content.hs ./git-union-merge.hs ./Utility/Path.hs ./Utility/Dot.hi ./Utility/Misc.o ./Utility/Matcher.hs ./Utility/Touch.hi ./Utility/Matcher.hi ./Utility/FileMode.o ./Utility/DataUnits.hi ./Utility/TempFile.hs ./Utility/JSONStream.hi ./Utility/JSONStream.o ./Utility/Touch.o ./Utility/State.hs ./Utility/Url.hs ./Utility/DataUnits.hs ./Utility/Exception.hi ./Utility/Dot.o ./Utility/TempFile.o ./Utility/Path.hi ./Utility/SafeCommand.hi ./Utility/FileSystemEncoding.o ./Utility/CoProcess.hs ./Utility/Exception.hs ./Utility/diskfree.c ./Utility/PartialPrelude.hi ./Utility/DataUnits.o ./Utility/Base64.o ./Utility/Monad.hs ./Utility/Format.o ./Utility/CopyFile.o ./Utility/Directory.o ./Utility/TempFile.hi ./Utility/RsyncFile.hs ./Utility/CopyFile.hs ./Utility/State.hi ./Utility/Misc.hs ./Utility/Monad.hi ./Utility/Exception.o ./Utility/SafeCommand.hs ./Utility/DiskFree.hs ./Utility/Directory.hi ./Utility/Gpg.hs ./Utility/CopyFile.hi ./Utility/Base64.hi ./Utility/RsyncFile.hi ./Utility/SafeCommand.o ./Utility/Directory.hs ./Utility/FileSystemEncoding.hs ./Utility/RsyncFile.o ./Utility/Misc.hi ./Utility/FileMode.hs ./Utility/PartialPrelude.o ./Utility/Format.hi ./Utility/Monad.o ./Utility/PartialPrelude.hs ./Utility/JSONStream.hs ./Utility/Dot.hs ./Utility/FileSystemEncoding.hi ./Utility/Url.hi ./Utility/State.o ./Utility/Url.o ./Utility/Touch.hsc ./Utility/diskfree.h ./Utility/Base64.hs ./Utility/FileMode.hi ./Utility/Format.hs ./Utility/Path.o ./Utility/Matcher.o ./Types/Option.hs ./Types/Crypto.hs ./Types/BranchState.o ./Types/BranchState.hi ./Types/UUID.o ./Types/UUID.hs ./Types/TrustLevel.o ./Types/TrustLevel.hs ./Types/Remote.hs ./Types/TrustLevel.hi ./Types/BranchState.hs ./Types/Command.hs ./Types/UUID.hi ./Types/Backend.hs ./Types/Key.hs ./Config.hs ./Checks.hs ./Command.hs ./.gitignore ./Backend.hs ./Logs/Web.hs ./Logs/UUIDBased.hs ./Logs/Trust.hs ./Logs/Location.hs ./Logs/UUID.hs ./Logs/Remote.hs ./Logs/Presence.hs ./.gitattributes ./Git.hs ./Limit.hs ./GitAnnex.hs Homepage: http://git-annex.branchable.com/ Build-type: Custom Category: Utility@@ -33,11 +33,18 @@ pcre-light, extensible-exceptions, dataenc, SHA, process, hS3, json, HTTP, base >= 4.5, base < 5, monad-control, transformers-base, lifted-base, IfElse, text, QuickCheck >= 2.1, bloomfilter- Other-Modules: Utility.StatFS, Utility.Touch+ Other-Modules: Utility.Touch+ C-Sources: Utility/diskfree.c Executable git-annex-shell Main-Is: git-annex-shell.hs- Other-Modules: Utility.StatFS+ C-Sources: Utility/diskfree.c++Test-Suite test+ Type: exitcode-stdio-1.0+ Main-Is: test.hs+ Build-Depends: testpack, HUnit+ C-Sources: Utility/diskfree.c source-repository head type: git