packages feed

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 view
@@ -0,0 +1,4 @@+-- make ghci use precompiled modules, and C library+:set -outputdir=tmp+:set -IUtility+:load Common
Annex/Content.hs view
@@ -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.
Annex/Queue.hs view
@@ -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 }
Annex/Ssh.hs view
@@ -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 =
Annex/UUID.hs view
@@ -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
Annex/Version.hs view
@@ -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
Backend.hs view
@@ -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 
+ Build/SysConfig.hi view

binary file changed (absent → 2557 bytes)

+ Build/SysConfig.o view

binary file changed (absent → 4400 bytes)

+ Build/TestConfig.hi view

binary file changed (absent → 2894 bytes)

Build/TestConfig.hs view
@@ -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
+ Build/TestConfig.o view

binary file changed (absent → 25876 bytes)

CHANGELOG view
@@ -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
Command/Find.hs view
@@ -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
Command/Status.hs view
@@ -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 $
Command/Unused.hs view
@@ -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
+ Common.hi view

binary file changed (absent → 28564 bytes)

+ Common.o view

binary file changed (absent → 622 bytes)

Config.hs view
@@ -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
+ Git.hi view

binary file changed (absent → 4033 bytes)

Git.hs view
@@ -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.  -
+ Git.o view

binary file changed (absent → 14816 bytes)

Git/Branch.hs view
@@ -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
+ Git/Command.hi view

binary file changed (absent → 4413 bytes)

+ Git/Command.o view

binary file changed (absent → 19256 bytes)

Git/Config.hs view
@@ -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 
Git/Construct.hs view
@@ -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
+ Git/Index.hi view

binary file changed (absent → 786 bytes)

+ Git/Index.o view

binary file changed (absent → 3032 bytes)

+ Git/Queue.hi view

binary file changed (absent → 16957 bytes)

+ Git/Queue.o view

binary file changed (absent → 36544 bytes)

+ Git/Types.hi view

binary file changed (absent → 2797 bytes)

+ Git/Types.o view

binary file changed (absent → 25896 bytes)

Init.hs view
@@ -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
Logs/Presence.hs view
@@ -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
Logs/Remote.hs view
@@ -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
Makefile view
@@ -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.
+ Messages/JSON.hi view

binary file changed (absent → 1609 bytes)

+ Messages/JSON.o view

binary file changed (absent → 6016 bytes)

Remote/Bup.hs view
@@ -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 
Remote/Directory.hs view
@@ -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)
Remote/Git.hs view
@@ -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
Remote/Helper/Hooks.hs view
@@ -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"
Remote/Helper/Ssh.hs view
@@ -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 
Remote/Hook.hs view
@@ -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
Remote/Rsync.hs view
@@ -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"] 
+ Types/BranchState.hi view

binary file changed (absent → 1153 bytes)

+ Types/BranchState.o view

binary file changed (absent → 2400 bytes)

+ Types/TrustLevel.hi view

binary file changed (absent → 1259 bytes)

+ Types/TrustLevel.o view

binary file changed (absent → 3240 bytes)

+ Types/UUID.hi view

binary file changed (absent → 1175 bytes)

+ Types/UUID.o view

binary file changed (absent → 11540 bytes)

Upgrade/V0.hs view
@@ -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 $
Upgrade/V1.hs view
@@ -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
+ Utility/Base64.hi view

binary file changed (absent → 980 bytes)

+ Utility/Base64.o view

binary file changed (absent → 2820 bytes)

+ Utility/CopyFile.hi view

binary file changed (absent → 3358 bytes)

+ Utility/CopyFile.o view

binary file changed (absent → 3364 bytes)

+ Utility/DataUnits.hi view

binary file changed (absent → 2140 bytes)

+ Utility/DataUnits.o view

binary file changed (absent → 49224 bytes)

+ Utility/Directory.hi view

binary file changed (absent → 2638 bytes)

+ Utility/Directory.o view

binary file changed (absent → 7240 bytes)

+ Utility/DiskFree.hs view
@@ -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
+ Utility/Dot.hi view

binary file changed (absent → 1375 bytes)

+ Utility/Dot.o view

binary file changed (absent → 13280 bytes)

+ Utility/Exception.hi view

binary file changed (absent → 1571 bytes)

Utility/Exception.hs view
@@ -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
+ Utility/Exception.o view

binary file changed (absent → 5516 bytes)

+ Utility/FileMode.hi view

binary file changed (absent → 1300 bytes)

+ Utility/FileMode.o view

binary file changed (absent → 5524 bytes)

+ Utility/FileSystemEncoding.hi view

binary file changed (absent → 1471 bytes)

+ Utility/FileSystemEncoding.o view

binary file changed (absent → 3656 bytes)

+ Utility/Format.hi view

binary file changed (absent → 2338 bytes)

+ Utility/Format.o view

binary file changed (absent → 39364 bytes)

+ Utility/JSONStream.hi view

binary file changed (absent → 1280 bytes)

+ Utility/JSONStream.o view

binary file changed (absent → 5020 bytes)

+ Utility/Matcher.hi view

binary file changed (absent → 2061 bytes)

Utility/Matcher.hs view
@@ -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 
+ Utility/Matcher.o view

binary file changed (absent → 30548 bytes)

+ Utility/Misc.hi view

binary file changed (absent → 1430 bytes)

+ Utility/Misc.o view

binary file changed (absent → 5400 bytes)

+ Utility/Monad.hi view

binary file changed (absent → 1214 bytes)

Utility/Monad.hs view
@@ -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
+ Utility/Monad.o view

binary file changed (absent → 3756 bytes)

+ Utility/PartialPrelude.hi view

binary file changed (absent → 1470 bytes)

+ Utility/PartialPrelude.o view

binary file changed (absent → 5456 bytes)

+ Utility/Path.hi view

binary file changed (absent → 3361 bytes)

+ Utility/Path.o view

binary file changed (absent → 22356 bytes)

+ Utility/RsyncFile.hi view

binary file changed (absent → 2611 bytes)

+ Utility/RsyncFile.o view

binary file changed (absent → 10856 bytes)

+ Utility/SafeCommand.hi view

binary file changed (absent → 3740 bytes)

+ Utility/SafeCommand.o view

binary file changed (absent → 33320 bytes)

− Utility/StatFS.hsc
@@ -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
+ Utility/State.hi view

binary file changed (absent → 1015 bytes)

+ Utility/State.o view

binary file changed (absent → 2420 bytes)

+ Utility/TempFile.hi view

binary file changed (absent → 2467 bytes)

+ Utility/TempFile.o view

binary file changed (absent → 6216 bytes)

+ Utility/Touch.hi view

binary file changed (absent → 8689 bytes)

+ Utility/Touch.o view

binary file changed (absent → 8356 bytes)

+ Utility/Url.hi view

binary file changed (absent → 3389 bytes)

Utility/Url.hs view
@@ -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
+ Utility/Url.o view

binary file changed (absent → 18436 bytes)

+ Utility/diskfree.c view
@@ -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("."));+}+*/
+ Utility/diskfree.h view
@@ -0,0 +1,1 @@+unsigned long long int diskfree(const char *path);
+ configure.hi view

binary file changed (absent → 2502 bytes)

configure.hs view
@@ -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
+ configure.o view

binary file changed (absent → 37808 bytes)

debian/changelog view
@@ -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
debian/copyright view
@@ -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.
+ doc/bugs/configurable_path_to_git-annex-shell.mdwn view
@@ -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]] 
doc/bugs/git_annex_unused_seems_to_check_for_current_path.mdwn view
@@ -35,3 +35,5 @@ >    but I don't know how to construct such an ignore. >  > --[[Joey]] ++>> Closing as there is no followup. [[done]] --[[Joey]] 
+ doc/forum/Sharing_annex_with_local_clones.mdwn view
@@ -0,0 +1,1 @@+Hi, is there any particular problem with symlinking one .git/annex to share between multiple repos?
+ doc/forum/Sharing_annex_with_local_clones/comment_1_2b60e13e5f7b8cee56cf2ddc6c47f64d._comment view
@@ -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.+"""]]
+ doc/forum/Sharing_annex_with_local_clones/comment_2_24ff2c1eb643077daa37c01644cebcd2._comment view
@@ -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?+"""]]
+ doc/forum/Sharing_annex_with_local_clones/comment_3_5359b8eada24d27be83214ac0ae62f23._comment view
@@ -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)+"""]]
+ doc/forum/tell_us_how_you__39__re_using_git-annex.mdwn view
@@ -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]]
doc/git-annex.mdwn view
@@ -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` 
doc/index.mdwn view
@@ -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> """]] 
+ doc/install/OSX/comment_2_0327c64b15249596add635d26f4ce67f._comment view
@@ -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)+"""]]
+ doc/install/OSX/comment_3_47c682a779812dda77601c24a619923c._comment view
@@ -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.+"""]]
doc/news/sharebox_a_FUSE_filesystem_for_git-annex.mdwn view
@@ -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>
− doc/news/version_3.20120229.mdwn
@@ -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"""]]
+ doc/news/version_3.20120405.mdwn view
@@ -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."""]]
doc/not.mdwn view
@@ -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. 
doc/tips/using_the_web_as_a_special_remote.mdwn view
@@ -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)
git-annex.cabal view
@@ -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