packages feed

git-annex 4.20130709 → 4.20130723

raw patch · 176 files changed

+2988/−405 lines, 176 filesbinary-added

Files

Annex/Content.hs view
@@ -1,6 +1,6 @@ {- git-annex file content managing  -- - Copyright 2010,2012 Joey Hess <joey@kitenet.net>+ - Copyright 2010-2013 Joey Hess <joey@kitenet.net>  -  - Licensed under the GNU GPL version 3 or higher.  -}@@ -10,6 +10,7 @@ module Annex.Content ( 	inAnnex, 	inAnnexSafe,+	inAnnexCheck, 	lockContent, 	getViaTmp, 	getViaTmpChecked,@@ -56,7 +57,11 @@  {- Checks if a given key's content is currently present. -} inAnnex :: Key -> Annex Bool-inAnnex = inAnnex' id False $ liftIO . doesFileExist+inAnnex key = inAnnexCheck key $ liftIO . doesFileExist++{- Runs an arbitrary check on a key's content. -}+inAnnexCheck :: Key -> (FilePath -> Annex Bool) -> Annex Bool+inAnnexCheck key check = inAnnex' id False check key  {- Generic inAnnex, handling both indirect and direct mode.  -
Annex/Link.hs view
@@ -29,17 +29,19 @@ {- Gets the link target of a symlink.  -  - On a filesystem that does not support symlinks, fall back to getting the- - link target by looking inside the file. (Only return first 8k of the- - file, more than enough for any symlink target.)+ - link target by looking inside the file.  -  - Returns Nothing if the file is not a symlink, or not a link to annex  - content.  -} getAnnexLinkTarget :: FilePath -> Annex (Maybe LinkTarget)-getAnnexLinkTarget file =-	check readSymbolicLink $-		check readfilestart $+getAnnexLinkTarget file = ifM (coreSymlinks <$> Annex.getGitConfig)+	( check readSymbolicLink $+		check probefilecontent $ 			return Nothing+	, check readSymbolicLink $+		return Nothing+	)   where 	check getlinktarget fallback = do 		v <- liftIO $ catchMaybeIO $ getlinktarget file@@ -49,11 +51,26 @@ 				| otherwise -> return Nothing 			Nothing -> fallback -	readfilestart f = do+	probefilecontent f = do 		h <- openFile f ReadMode 		fileEncoding h+		-- The first 8k is more than enough to read; link+		-- files are small. 		s <- take 8192 <$> hGetContents h-		length s `seq` (hClose h >> return s)+		-- If we got the full 8k, the file is too large+		if length s == 8192+			then do+				hClose h+				return ""+			else do+				hClose h+				-- If there are any NUL or newline+				-- characters, or whitespace, we+				-- certianly don't have a link to a+				-- git-annex key.+				if any (`elem` s) "\0\n\r \t"+					then return ""+					else return s  {- Creates a link on disk.  -
Annex/Ssh.hs view
@@ -15,6 +15,7 @@ ) where  import qualified Data.Map as M+import Data.Hash.MD5  import Common.Annex import Annex.LockPool@@ -51,18 +52,19 @@ 	go (Just dir) = do 		let socketfile = dir </> hostport2socket host port 		if valid_unix_socket_path socketfile-			then return (Just socketfile, cacheparams socketfile)+			then return (Just socketfile, sshConnectionCachingParams socketfile) 			else do 				socketfile' <- liftIO $ relPathCwdToFile socketfile 				if valid_unix_socket_path socketfile'-					then return (Just socketfile', cacheparams socketfile')+					then return (Just socketfile', sshConnectionCachingParams socketfile') 					else return (Nothing, [])-	cacheparams :: FilePath -> [CommandParam]-	cacheparams socketfile =-		[ Param "-S", Param socketfile-		, Params "-o ControlMaster=auto -o ControlPersist=yes"-		] +sshConnectionCachingParams :: FilePath -> [CommandParam]+sshConnectionCachingParams socketfile = +	[ Param "-S", Param socketfile+	, Params "-o ControlMaster=auto -o ControlPersist=yes"+	]+ {- ssh connection caching creates sockets, so will not work on a  - crippled filesystem. A GIT_ANNEX_TMP_DIR can be provided to use  - a different filesystem. -}@@ -116,27 +118,27 @@ 		stopssh socketfile #endif 	stopssh socketfile = do-		let (host, port) = socket2hostport socketfile-		(_, params) <- sshInfo (host, port)+		let params = sshConnectionCachingParams socketfile 		-- "ssh -O stop" is noisy on stderr even with -q 		void $ liftIO $ catchMaybeIO $ 			withQuietOutput createProcessSuccess $ 				proc "ssh" $ toCommand $ 					[ Params "-O stop"-					] ++ params ++ [Param host]+					] ++ params ++ [Param "any"] 		-- Cannot remove the lock file; other processes may 		-- be waiting on our exclusive lock to use it. +{- This needs to be as short as possible, due to limitations on the length+ - of the path to a socket file. At the same time, it needs to be unique+ - for each host.+ -} hostport2socket :: String -> Maybe Integer -> FilePath-hostport2socket host Nothing = host-hostport2socket host (Just port) = host ++ "!" ++ show port--socket2hostport :: FilePath -> (String, Maybe Integer)-socket2hostport socket-	| null p = (h, Nothing)-	| otherwise = (h, readish p)-  where-	(h, p) = separate (== '!') $ takeFileName socket+hostport2socket host Nothing = hostport2socket' host+hostport2socket host (Just port) = hostport2socket' $ host ++ "!" ++ show port+hostport2socket' :: String -> FilePath+hostport2socket' s+	| length s > 32 = md5s (Str s)+	| otherwise = s  socket2lock :: FilePath -> FilePath socket2lock socket = socket ++ lockExt
Assistant/Alert.hs view
@@ -41,12 +41,16 @@ 		} #endif +renderData :: Alert -> TenseText+renderData = tenseWords . alertData+ baseActivityAlert :: Alert baseActivityAlert = Alert 	{ alertClass = Activity 	, alertHeader = Nothing-	, alertMessageRender = tenseWords+	, alertMessageRender = renderData 	, alertData = []+	, alertCounter = 0 	, alertBlockDisplay = False 	, alertClosable = False 	, alertPriority = Medium@@ -60,8 +64,9 @@ warningAlert name msg = Alert 	{ alertClass = Warning 	, alertHeader = Just $ tenseWords ["warning"]-	, alertMessageRender = tenseWords+	, alertMessageRender = renderData 	, alertData = [UnTensed $ T.pack msg]+	, alertCounter = 0 	, alertBlockDisplay = True 	, alertClosable = True 	, alertPriority = High@@ -128,6 +133,7 @@ 	, alertHeader = Just $ tenseWords ["Fixed a problem"] 	, alertMessageRender = render 	, alertData = [UnTensed $ T.pack msg]+	, alertCounter = 0 	, alertBlockDisplay = True 	, alertPriority = High 	, alertClosable = True@@ -137,7 +143,7 @@ 	, alertButton = Nothing 	}   where-	render dta = tenseWords $ alerthead : dta ++ [alertfoot]+	render alert = tenseWords $ alerthead : alertData alert ++ [alertfoot] 	alerthead = "The daily sanity check found and fixed a problem:" 	alertfoot = "If these problems persist, consider filing a bug report." @@ -152,8 +158,9 @@ pairRequestReceivedAlert who button = Alert 	{ alertClass = Message 	, alertHeader = Nothing-	, alertMessageRender = tenseWords+	, alertMessageRender = renderData 	, alertData = [UnTensed $ T.pack $ who ++ " is sending a pair request."]+	, alertCounter = 0 	, alertBlockDisplay = False 	, alertPriority = High 	, alertClosable = True@@ -180,7 +187,8 @@ 	, alertButton = Just button 	, alertClosable = True 	, alertClass = Message-	, alertMessageRender = tenseWords+	, alertMessageRender = renderData+	, alertCounter = 0 	, alertBlockDisplay = True 	, alertName = Just $ XMPPNeededAlert 	, alertCombiner = Just $ dataCombiner $ \_old new -> new@@ -198,7 +206,8 @@ 	, alertButton = Just button 	, alertClosable = True 	, alertClass = Message-	, alertMessageRender = tenseWords+	, alertMessageRender = renderData+	, alertCounter = 0 	, alertBlockDisplay = True 	, alertName = Just $ CloudRepoNeededAlert 	, alertCombiner = Just $ dataCombiner $ \_old new -> new@@ -215,41 +224,80 @@ 	, alertButton = Just button 	, alertClosable = True 	, alertClass = Message-	, alertMessageRender = tenseWords+	, alertMessageRender = renderData+	, alertCounter = 0 	, alertBlockDisplay = True 	, alertName = Just $ RemoteRemovalAlert desc 	, alertCombiner = Just $ dataCombiner $ \_old new -> new 	, alertData = [] 	} -fileAlert :: TenseChunk -> FilePath -> Alert-fileAlert msg file = (activityAlert Nothing [f])+{- Show a message that relates to a list of files.+ -+ - The most recent several files are shown, and a count of any others. -}+fileAlert :: TenseChunk -> [FilePath] -> Alert+fileAlert msg files = (activityAlert Nothing shortfiles) 	{ alertName = Just $ FileAlert msg-	, alertMessageRender = render-	, alertCombiner = Just $ dataCombiner combiner+	, alertMessageRender = renderer+	, alertCounter = counter+	, alertCombiner = Just $ fullCombiner combiner 	}   where-	f = fromString $ shortFile $ takeFileName file-	render fs = tenseWords $ msg : fs-	combiner new old = take 10 $ new ++ old+	maxfilesshown = 10 -addFileAlert :: String -> Alert+	(somefiles, counter) = splitcounter (dedupadjacent files)+	shortfiles = map (fromString . shortFile . takeFileName) somefiles++	renderer alert = tenseWords $ msg : alertData alert ++ showcounter+	  where+		showcounter = case alertCounter alert of+			0 -> []+			_ -> [fromString $ "and " ++ show (alertCounter alert) ++ " other files"]++	dedupadjacent (x:y:rest)+		| x == y = dedupadjacent (y:rest)+		| otherwise = x : dedupadjacent (y:rest)+	dedupadjacent (x:[]) = [x]+	dedupadjacent [] = []++	{- Note that this ensures the counter is never 1; no need to say +	 - "1 file" when the filename could be shown. -}+	splitcounter l+		| length l <= maxfilesshown = (l, 0)+		| otherwise =+			let (keep, rest) = splitAt (maxfilesshown - 1) l+			in (keep, length rest)+	+	combiner new old =+		let (fs, n) = splitcounter $+			dedupadjacent $ alertData new ++ alertData old+		    cnt = n + alertCounter new + alertCounter old+		in old+			{ alertData = fs+			, alertCounter = cnt+			}++addFileAlert :: [FilePath] -> Alert addFileAlert = fileAlert (Tensed "Adding" "Added")  {- This is only used as a success alert after a transfer, not during it. -} transferFileAlert :: Direction -> Bool -> FilePath -> Alert-transferFileAlert direction True-	| direction == Upload = fileAlert "Uploaded"-	| otherwise = fileAlert "Downloaded"-transferFileAlert direction False-	| direction == Upload = fileAlert "Upload failed"-	| otherwise = fileAlert "Download failed"+transferFileAlert direction True file+	| direction == Upload = fileAlert "Uploaded" [file]+	| otherwise = fileAlert "Downloaded" [file]+transferFileAlert direction False file+	| direction == Upload = fileAlert "Upload failed" [file]+	| otherwise = fileAlert "Download failed" [file]  dataCombiner :: ([TenseChunk] -> [TenseChunk] -> [TenseChunk]) -> AlertCombiner-dataCombiner combiner new old+dataCombiner combiner = fullCombiner $+	\new old -> old { alertData = alertData new `combiner` alertData old }++fullCombiner :: (Alert -> Alert -> Alert) -> AlertCombiner+fullCombiner combiner new old 	| alertClass new /= alertClass old = Nothing 	| alertName new == alertName old = -		Just $! old { alertData = alertData new `combiner` alertData old }+		Just $! new `combiner` old 	| otherwise = Nothing  shortFile :: FilePath -> String
Assistant/Alert/Utility.hs view
@@ -56,7 +56,7 @@ {- Renders an alert's message for display. -} renderAlertMessage :: Alert -> Text renderAlertMessage alert = renderTense (alertTense alert) $-	(alertMessageRender alert) (alertData alert)+	(alertMessageRender alert) alert  showAlert :: Alert -> String showAlert alert = T.unpack $ T.unwords $ catMaybes
Assistant/Install.hs view
@@ -49,8 +49,9 @@ #ifdef darwin_HOST_OS 		autostartfile <- userAutoStart osxAutoStartLabel #else-		installMenu program-			=<< desktopMenuFilePath "git-annex" <$> userDataDir+		menufile <- desktopMenuFilePath "git-annex" <$> userDataDir+		icondir <- iconDir <$> userDataDir+		installMenu program menufile base icondir 		autostartfile <- autoStartPath "git-annex" <$> userConfigDir #endif 		installAutoStart program autostartfile
Assistant/Install/AutoStart.hs view
@@ -35,4 +35,5 @@ 	"Autostart" 	False 	(command ++ " assistant --autostart")+	Nothing 	[]
Assistant/Install/AutoStart.o view

binary file changed (3364 → 3428 bytes)

Assistant/Install/Menu.hs view
@@ -9,14 +9,20 @@  module Assistant.Install.Menu where +import Common+ import Utility.FreeDesktop -installMenu :: FilePath -> FilePath -> IO ()-installMenu command file =+installMenu :: FilePath -> FilePath -> FilePath -> FilePath -> IO ()+installMenu command menufile iconsrcdir icondir = do #ifdef darwin_HOST_OS 	return () #else-	writeDesktopMenuFile (fdoDesktopMenu command) file+	writeDesktopMenuFile (fdoDesktopMenu command) menufile+	installIcon (iconsrcdir </> "logo.svg") $+		iconFilePath (iconBaseName ++ ".svg") "scalable" icondir+	installIcon (iconsrcdir </> "favicon.png") $+		iconFilePath (iconBaseName ++ ".png") "16x16" icondir #endif  {- The command can be either just "git-annex", or the full path to use@@ -27,4 +33,15 @@ 	"Track and sync the files in your Git Annex" 	False 	(command ++ " webapp")+	(Just iconBaseName) 	["Network", "FileTransfer"]++installIcon :: FilePath -> FilePath -> IO ()+installIcon src dest = do+	createDirectoryIfMissing True (parentDir dest)+	withBinaryFile src ReadMode $ \hin ->+		withBinaryFile dest WriteMode $ \hout ->+			hGetContents hin >>= hPutStr hout++iconBaseName :: String+iconBaseName = "git-annex"
Assistant/Install/Menu.o view

binary file changed (3216 → 9360 bytes)

Assistant/MakeRemote.hs view
@@ -27,6 +27,8 @@ import qualified Data.Text as T import qualified Data.Map as M +type RemoteName = String+ {- Sets up and begins syncing with a new ssh or rsync remote. -} makeSshRemote :: Bool -> SshData -> Maybe Cost -> Assistant Remote makeSshRemote forcersync sshdata mcost = do@@ -53,7 +55,7 @@ 			| otherwise = T.concat [T.pack "/~/", sshDirectory sshdata] 	 {- Runs an action that returns a name of the remote, and finishes adding it. -}-addRemote :: Annex String -> Annex Remote+addRemote :: Annex RemoteName -> Annex Remote addRemote a = do 	name <- a 	void remoteListRefresh@@ -61,36 +63,58 @@ 		=<< Remote.byName (Just name)  {- Inits a rsync special remote, and returns its name. -}-makeRsyncRemote :: String -> String -> Annex String-makeRsyncRemote name location = makeRemote name location $-	const $ makeSpecialRemote name Rsync.remote config+makeRsyncRemote :: RemoteName -> String -> Annex String+makeRsyncRemote name location = makeRemote name location $ const $ void $+	go =<< Command.InitRemote.findExisting name   where+  	go Nothing = setupSpecialRemote name Rsync.remote config+		=<< Command.InitRemote.generateNew name+	go (Just v) = setupSpecialRemote name Rsync.remote config v 	config = M.fromList 		[ ("encryption", "shared") 		, ("rsyncurl", location) 		, ("type", "rsync") 		] -{- Inits a new special remote, or enables an existing one.- -- - Currently, only 'weak' ciphers can be generated from the assistant,- - because otherwise GnuPG may block once the entropy pool is drained,- - and as of now there's no way to tell the user to perform IO actions- - to refill the pool. -}-makeSpecialRemote :: String -> RemoteType -> R.RemoteConfig -> Annex ()-makeSpecialRemote name remotetype config =-	go =<< Command.InitRemote.findExisting name+type SpecialRemoteMaker = RemoteName -> RemoteType -> R.RemoteConfig -> Annex RemoteName++{- Inits a new special remote. The name is used as a suggestion, but+ - will be changed if there is already a special remote with that name. -}+initSpecialRemote :: SpecialRemoteMaker+initSpecialRemote name remotetype config = go 0   where-  	go Nothing = go =<< Just <$> Command.InitRemote.generateNew name-	go (Just (u, c)) = do-		c' <- R.setup remotetype u $-			M.insert "highRandomQuality" "false" $ M.union config c-		describeUUID u name-		configSet u c'+	go :: Int -> Annex RemoteName+	go n = do+		let fullname = if n == 0  then name else name ++ show n+		r <- Command.InitRemote.findExisting fullname+		case r of+			Nothing -> setupSpecialRemote fullname remotetype config+				=<< Command.InitRemote.generateNew fullname+			Just _ -> go (n + 1) +{- Enables an existing special remote. -}+enableSpecialRemote :: SpecialRemoteMaker+enableSpecialRemote name remotetype config = do+	r <- Command.InitRemote.findExisting name+	case r of+		Nothing -> error $ "Cannot find a special remote named " ++ name+		Just v -> setupSpecialRemote name remotetype config v++setupSpecialRemote :: RemoteName -> RemoteType -> R.RemoteConfig -> (UUID, R.RemoteConfig) -> Annex RemoteName+setupSpecialRemote name remotetype config (u, c) = do+	{- Currently, only 'weak' ciphers can be generated from the+	 - assistant, because otherwise GnuPG may block once the entropy+	 - pool is drained, and as of now there's no way to tell the user+	 - to perform IO actions to refill the pool. -}+	c' <- R.setup remotetype u $+		M.insert "highRandomQuality" "false" $ M.union config c+	describeUUID u name+	configSet u c'+	return name+ {- Returns the name of the git remote it created. If there's already a  - remote at the location, returns its name. -}-makeGitRemote :: String -> String -> Annex String+makeGitRemote :: String -> String -> Annex RemoteName makeGitRemote basename location = makeRemote basename location $ \name -> 	void $ inRepo $ Git.Command.runBool 		[Param "remote", Param "add", Param name, Param location]@@ -99,7 +123,7 @@  - action, which is passed the name of the remote to make.  -  - Returns the name of the remote. -}-makeRemote :: String -> String -> (String -> Annex ()) -> Annex String+makeRemote :: String -> String -> (RemoteName -> Annex ()) -> Annex RemoteName makeRemote basename location a = do 	g <- gitRepo 	if not (any samelocation $ Git.remotes g)@@ -116,7 +140,7 @@  - necessary.  -  - Ensures that the returned name is a legal git remote name. -}-uniqueRemoteName :: String -> Int -> Git.Repo -> String+uniqueRemoteName :: String -> Int -> Git.Repo -> RemoteName uniqueRemoteName basename n r 	| null namecollision = name 	| otherwise = uniqueRemoteName legalbasename (succ n) r
Assistant/Threads/Committer.hs view
@@ -383,7 +383,7 @@ 				return Nothing  	{- Shown an alert while performing an action to add a file or-	 - files. When only one file is added, its name is shown+	 - files. When only a few files are added, their names are shown 	 - in the alert. When it's a batch add, the number of files added 	 - is shown. 	 -@@ -392,15 +392,10 @@ 	 - the add succeeded. 	 -} 	addaction [] a = a-	addaction toadd a = alertWhile' (addFileAlert msg) $+	addaction toadd a = alertWhile' (addFileAlert $ map changeFile toadd) $ 		(,)  			<$> pure True 			<*> a-	  where-	  	msg = case toadd of-			(InProcessAddChange { keySource = ks }:[]) ->-				keyFilename ks-			_ -> show (length toadd) ++ " files"  {- Files can Either be Right to be added now,  - or are unsafe, and must be Left for later.
Assistant/Types/Alert.hs view
@@ -39,8 +39,9 @@ data Alert = Alert 	{ alertClass :: AlertClass 	, alertHeader :: Maybe TenseText-	, alertMessageRender :: [TenseChunk] -> TenseText+	, alertMessageRender :: Alert -> TenseText 	, alertData :: [TenseChunk]+	, alertCounter :: Int 	, alertBlockDisplay :: Bool 	, alertClosable :: Bool 	, alertPriority :: AlertPriority
Assistant/WebApp/Configurators/AWS.hs view
@@ -124,7 +124,7 @@ 	case result of 		FormSuccess input -> liftH $ do 			let name = T.unpack $ repoName input-			makeAWSRemote S3.remote (extractCreds input) name setgroup $ M.fromList+			makeAWSRemote initSpecialRemote S3.remote (extractCreds input) name setgroup $ M.fromList 				[ configureEncryption $ enableEncryption input 				, ("type", "S3") 				, ("datacenter", T.unpack $ datacenter input)@@ -150,7 +150,7 @@ 	case result of 		FormSuccess input -> liftH $ do 			let name = T.unpack $ repoName input-			makeAWSRemote Glacier.remote (extractCreds input) name setgroup $ M.fromList+			makeAWSRemote initSpecialRemote Glacier.remote (extractCreds input) name setgroup $ M.fromList 				[ configureEncryption $ enableEncryption input 				, ("type", "glacier") 				, ("datacenter", T.unpack $ datacenter input)@@ -198,7 +198,7 @@ 			m <- liftAnnex readRemoteLog 			let name = fromJust $ M.lookup "name" $ 				fromJust $ M.lookup uuid m-			makeAWSRemote remotetype creds name (const noop) M.empty+			makeAWSRemote enableSpecialRemote remotetype creds name (const noop) M.empty 		_ -> do 			description <- liftAnnex $ 				T.pack <$> Remote.prettyUUID uuid@@ -207,13 +207,11 @@ enableAWSRemote _ _ = error "S3 not supported by this build" #endif -makeAWSRemote :: RemoteType -> AWSCreds -> String -> (Remote -> Handler ()) -> RemoteConfig -> Handler ()-makeAWSRemote remotetype (AWSCreds ak sk) name setup config = do-	remotename <- liftAnnex $ fromRepo $ uniqueRemoteName name 0+makeAWSRemote :: SpecialRemoteMaker -> RemoteType -> AWSCreds -> String -> (Remote -> Handler ()) -> RemoteConfig -> Handler ()+makeAWSRemote maker remotetype (AWSCreds ak sk) name setup config = do 	liftIO $ AWS.setCredsEnv (T.unpack ak, T.unpack sk) 	r <- liftAnnex $ addRemote $ do-		makeSpecialRemote hostname remotetype config-		return remotename+		maker hostname remotetype config 	setup r 	liftAssistant $ syncRemote r 	redirect $ EditNewCloudRepositoryR $ Remote.uuid r
Assistant/WebApp/Configurators/IA.hs view
@@ -130,7 +130,7 @@ 	case result of 		FormSuccess input -> liftH $ do 			let name = escapeBucket $ T.unpack $ itemName input-			AWS.makeAWSRemote S3.remote (extractCreds input) name setgroup $+			AWS.makeAWSRemote initSpecialRemote S3.remote (extractCreds input) name setgroup $ 				M.fromList $ catMaybes 					[ Just $ configureEncryption NoEncryption 					, Just ("type", "S3")@@ -174,7 +174,7 @@ 			m <- liftAnnex readRemoteLog 			let name = fromJust $ M.lookup "name" $ 				fromJust $ M.lookup uuid m-			AWS.makeAWSRemote S3.remote creds name (const noop) M.empty+			AWS.makeAWSRemote enableSpecialRemote S3.remote creds name (const noop) M.empty 		_ -> do 			description <- liftAnnex $ 				T.pack <$> Remote.prettyUUID uuid
Assistant/WebApp/Configurators/WebDAV.hs view
@@ -69,7 +69,7 @@ 		runFormPost $ renderBootstrap $ boxComAForm defcreds 	case result of 		FormSuccess input -> liftH $ -			makeWebDavRemote "box.com" (toCredPair input) setgroup $ M.fromList+			makeWebDavRemote initSpecialRemote "box.com" (toCredPair input) setgroup $ M.fromList 				[ configureEncryption $ enableEncryption input 				, ("embedcreds", if embedCreds input then "yes" else "no") 				, ("type", "webdav")@@ -100,7 +100,7 @@ 		getRemoteCredPairFor "webdav" c (WebDAV.davCreds uuid) 	case mcreds of 		Just creds -> webDAVConfigurator $ liftH $-			makeWebDavRemote name creds (const noop) M.empty+			makeWebDavRemote enableSpecialRemote name creds (const noop) M.empty 		Nothing 			| "box.com/" `isInfixOf` url -> 				boxConfigurator $ showform name url@@ -115,7 +115,7 @@ 			runFormPost $ renderBootstrap $ webDAVCredsAForm defcreds 		case result of 			FormSuccess input -> liftH $-				makeWebDavRemote name (toCredPair input) (const noop) M.empty+				makeWebDavRemote enableSpecialRemote name (toCredPair input) (const noop) M.empty 			_ -> do 				description <- liftAnnex $ 					T.pack <$> Remote.prettyUUID uuid@@ -125,13 +125,10 @@ #endif  #ifdef WITH_WEBDAV-makeWebDavRemote :: String -> CredPair -> (Remote -> Handler ()) -> RemoteConfig -> Handler ()-makeWebDavRemote name creds setup config = do-	remotename <- liftAnnex $ fromRepo $ uniqueRemoteName name 0+makeWebDavRemote :: SpecialRemoteMaker -> String -> CredPair -> (Remote -> Handler ()) -> RemoteConfig -> Handler ()+makeWebDavRemote maker name creds setup config = do 	liftIO $ WebDAV.setCredsEnv creds-	r <- liftAnnex $ addRemote $ do-		makeSpecialRemote name WebDAV.remote config-		return remotename+	r <- liftAnnex $ addRemote $ maker name WebDAV.remote config 	setup r 	liftAssistant $ syncRemote r 	redirect $ EditNewCloudRepositoryR $ Remote.uuid r
Assistant/XMPP/Client.hs view
@@ -34,17 +34,20 @@  {- Do a SRV lookup, but if it fails, fall back to the cached xmppHostname. -} connectXMPP' :: JID -> XMPPCreds -> (JID -> XMPP a) -> IO [(HostPort, Either SomeException ())]-connectXMPP' jid c a = reverse <$> (go [] =<< lookupSRV srvrecord)+connectXMPP' jid c a = reverse <$> (handle =<< lookupSRV srvrecord)   where 	srvrecord = mkSRVTcp "xmpp-client" $ 		T.unpack $ strDomain $ jidDomain jid 	serverjid = JID Nothing (jidDomain jid) Nothing -	go l [] = do+	handle [] = do 		let h = xmppHostname c 		let p = PortNumber $ fromIntegral $ xmppPort c 		r <- run h p $ a jid-		return (r : l)+		return [r]+	handle srvs = go [] srvs++	go l [] = return l 	go l ((h,p):rest) = do 		{- Try each SRV record in turn, until one connects, 		 - at which point the MVar will be full. -}
+ Build/BundledPrograms.o view

binary file changed (absent → 7308 bytes)

Build/Configure.o view

binary file changed (54624 → 54624 bytes)

Build/DesktopFile.hs view
@@ -1,4 +1,4 @@-{- Generating and installing a desktop menu entry file+{- Generating and installing a desktop menu entry file and icon,  - and a desktop autostart file. (And OSX equivilants.)  -  - Copyright 2012 Joey Hess <joey@kitenet.net>@@ -48,11 +48,14 @@  writeFDODesktop :: FilePath -> IO () writeFDODesktop command = do-	datadir <- ifM systemwideInstall ( return systemDataDir, userDataDir )-	installMenu command-		=<< inDestDir (desktopMenuFilePath "git-annex" datadir)+	systemwide <- systemwideInstall -	configdir <- ifM systemwideInstall ( return systemConfigDir, userConfigDir )+	datadir <- if systemwide then return systemDataDir else userDataDir+	menufile <- inDestDir (desktopMenuFilePath "git-annex" datadir)+	icondir <- inDestDir (iconDir datadir)+	installMenu command menufile "doc" icondir++	configdir <- if systemwide then return systemConfigDir else userConfigDir 	installAutoStart command  		=<< inDestDir (autoStartPath "git-annex" configdir) 
Build/DesktopFile.o view

binary file changed (13604 → 14364 bytes)

+ Build/EvilSplicer.o view

binary file changed (absent → 161080 bytes)

Build/InstallDesktopFile.hs view
@@ -1,4 +1,4 @@-{- Generating and installing a desktop menu entry file+{- Generating and installing a desktop menu entry file and icon,  - and a desktop autostart file. (And OSX equivilants.)  -  - Copyright 2012 Joey Hess <joey@kitenet.net>
Build/InstallDesktopFile.o view

binary file changed (2536 → 2536 bytes)

+ Build/Standalone.o view

binary file changed (absent → 9988 bytes)

+ Build/SysConfig.o view

binary file changed (absent → 5236 bytes)

Build/TestConfig.o view

binary file changed (33088 → 33088 bytes)

CHANGELOG view
@@ -1,3 +1,42 @@+git-annex (4.20130723) unstable; urgency=low++  * Fix data loss bug when adding an (uncompressed) tarball of a+    git-annex repository, or other file that begins with something+    that can be mistaken for a git-annex link. Closes: #717456+  * New improved version of the git-annex logo, contributed by+    John Lawrence.+  * Rsync.net have committed to support git-annex and offer a special+    discounted rate for git-annex users. Updated the webapp to reflect this.+    http://www.rsync.net/products/git-annex-pricing.html+  * Install XDG desktop icon files.+  * Support unannex and uninit in direct mode.+  * Support import in direct mode.+  * webapp: Better display of added files.+  * fix: Preserve the original mtime of fixed symlinks.+  * uninit: Preserve .git/annex/objects at the end, if it still+    has content, so that old versions of files and deleted files+    are not deleted. Print a message with some suggested actions.+  * When a transfer is already being run by another process,+    proceed on to the next file, rather than dying.+  * Fix checking when content is present in a non-bare repository+    accessed via http.+  * Display byte sizes with more precision.+  * watcher: Fixed a crash that could occur when a directory was renamed+    or deleted before it could be scanned.+  * watcher: Partially worked around a bug in hinotify, no longer crashes+    if hinotify cannot process a directory (but can't detect changes in it)+  * directory special remote: Fix checking that there is enough disk space+    to hold an object, was broken when using encryption.+  * webapp: Differentiate between creating a new S3/Glacier/WebDav remote,+    and initializing an existing remote. When creating a new remote, avoid+    conflicts with other existing (or deleted) remotes with the same name.+  * When an XMPP server has SRV records, try them, but don't then fall+    back to the regular host if they all fail.+  * For long hostnames, use a hash of the hostname to generate the socket+    file for ssh connection caching.++ -- Joey Hess <joeyh@debian.org>  Tue, 23 Jul 2013 10:46:05 -0400+ git-annex (4.20130709) unstable; urgency=low    * --all: New switch that makes git-annex operate on all data stored
@@ -18,9 +18,10 @@ Copyright: 2013 guilhem <guilhem@fripost.org> License: GPL-3+ -Files: doc/logo* */favicon.ico standalone/osx/git-annex.app/Contents/Resources/git-annex.icns+Files: doc/logo* */favicon.ico standalone/osx/git-annex.app/Contents/Resources/git-annex.icns standalone/android/icons/* Copyright: 2007 Henrik Nyh <http://henrik.nyh.se/>            2010 Joey Hess <joey@kitenet.net>+	   2013 John Lawrence License: other   Free to modify and redistribute with due credit, and obviously free to use. 
Command/Fix.hs view
@@ -5,6 +5,8 @@  - Licensed under the GNU GPL version 3 or higher.  -} +{-# LANGUAGE CPP #-}+ module Command.Fix where  import System.PosixCompat.Files@@ -12,6 +14,9 @@ import Common.Annex import Command import qualified Annex.Queue+#ifndef __ANDROID__+import Utility.Touch+#endif  def :: [Command] def = [notDirect $ noCommit $ command "fix" paramPaths seek@@ -30,9 +35,18 @@  perform :: FilePath -> FilePath -> CommandPerform perform file link = do-	liftIO $ createDirectoryIfMissing True (parentDir file)-	liftIO $ removeFile file-	liftIO $ createSymbolicLink link file+	liftIO $ do+#ifndef __ANDROID__+		-- preserve mtime of symlink+		mtime <- catchMaybeIO $ TimeSpec . modificationTime+			<$> getSymbolicLinkStatus file+#endif+		createDirectoryIfMissing True (parentDir file)+		removeFile file+		createSymbolicLink link file+#ifndef __ANDROID__+		maybe noop (\t -> touch file t False) mtime+#endif 	next $ cleanup file  cleanup :: FilePath -> CommandCleanup
Command/Import.hs view
@@ -15,7 +15,7 @@ import qualified Command.Add  def :: [Command]-def = [notDirect $ notBareRepo $ command "import" paramPaths seek+def = [notBareRepo $ command "import" paramPaths seek 	SectionCommon "move and add files from outside git working copy"]  seek :: [CommandSeek]
Command/Unannex.hs view
@@ -1,6 +1,6 @@ {- git-annex command  -- - Copyright 2010 Joey Hess <joey@kitenet.net>+ - Copyright 2010-2013 Joey Hess <joey@kitenet.net>  -  - Licensed under the GNU GPL version 3 or higher.  -}@@ -11,15 +11,16 @@  import Common.Annex import Command+import Config import qualified Annex import Logs.Location import Annex.Content+import Annex.Content.Direct import qualified Git.Command import qualified Git.LsFiles as LsFiles  def :: [Command]-def = [notDirect $-	command "unannex" paramPaths seek SectionUtility+def = [command "unannex" paramPaths seek SectionUtility 		"undo accidential add command"]  seek :: [CommandSeek]@@ -28,36 +29,41 @@ start :: FilePath -> (Key, Backend) -> CommandStart start file (key, _) = stopUnless (inAnnex key) $ do 	showStart "unannex" file-	next $ perform file key--perform :: FilePath -> Key -> CommandPerform-perform file key = next $ cleanup file key+	next $ ifM isDirect+		( performDirect file key+		, performIndirect file key) -cleanup :: FilePath -> Key -> CommandCleanup-cleanup file key = do+performIndirect :: FilePath -> Key -> CommandPerform+performIndirect file key = do 	liftIO $ removeFile file+	 	-- git rm deletes empty directory without --cached-	inRepo $ Git.Command.run [Params "rm --cached --quiet --", File file]+	inRepo $ Git.Command.run [Params "rm --cached --force --quiet --", File file] 	 	-- If the file was already committed, it is now staged for removal. 	-- Commit that removal now, to avoid later confusing the-	-- pre-commit hook if this file is later added back to-	-- git as a normal, non-annexed file.-	(s, clean) <- inRepo $ LsFiles.staged [file]-	when (not $ null s) $ do+	-- pre-commit hook, if this file is later added back to+	-- git as a normal non-annexed file, to thinking that the+	-- file has been unlocked and needs to be re-annexed.+	(s, reap) <- inRepo $ LsFiles.staged [file]+	when (not $ null s) $ 		inRepo $ Git.Command.run 			[ Param "commit" 			, Param "-q"+			, Param "--no-verify" 			, Param "-m", Param "content removed from git annex" 			, Param "--", File file 			]-	void $ liftIO clean+	void $ liftIO reap +	next $ cleanupIndirect file key++cleanupIndirect :: FilePath -> Key -> CommandCleanup+cleanupIndirect file key = do 	ifM (Annex.getState Annex.fast) 		( goFast 		, go 		)- 	return True   where #ifdef __WINDOWS__@@ -75,3 +81,22 @@ 	go = do 		fromAnnex key file 		logStatus key InfoMissing+++performDirect :: FilePath -> Key -> CommandPerform+performDirect file key = do+	-- --force is needed when the file is not committed+	inRepo $ Git.Command.run [Params "rm --cached --force --quiet --", File file]+	next $ cleanupDirect file key++{- The direct mode file is not touched during unannex, so the content+ - is already where it needs to be, so this does not need to do anything+ - except remove it from the associated file map (which also updates+ - the location log if this was the last copy), and, if this was the last+ - associated file, remove the inode cache. -}+cleanupDirect :: FilePath -> Key -> CommandCleanup+cleanupDirect file key = do+	fs <- removeAssociatedFile key file+	when (null fs) $+		removeInodeCache key+	return True
Command/Uninit.hs view
@@ -18,7 +18,7 @@ import Annex.Content  def :: [Command]-def = [notDirect $ addCheck check $ command "uninit" paramPaths seek +def = [addCheck check $ command "uninit" paramPaths seek  	SectionUtility "de-initialize git-annex and clean out repository"]  check :: Annex ()@@ -62,11 +62,48 @@ start :: CommandStart start = next $ next $ do 	annexdir <- fromRepo gitAnnexDir+	annexobjectdir <- fromRepo gitAnnexObjectDir+	leftovers <- removeUnannexed =<< getKeysPresent+	if null leftovers+		then liftIO $ removeDirectoryRecursive annexdir+		else error $ unlines+			[ "Not fully uninitialized"+			, "Some annexed data is still left in " ++ annexobjectdir+			, "This may include deleted files, or old versions of modified files."+			, ""+			, "If you don't care about preserving the data, just delete the"+			, "directory."+			, ""+			, "Or, you can move it to another location, in case it turns out"+			, "something in there is important."+			, ""+			, "Or, you can run `git annex unused` followed by `git annex dropunused`"+			, "to remove data that is not used by any tag or branch, which might"+			, "take care of all the data."+			, ""+			, "Then run `git annex uninit` again to finish."+			] 	uninitialize-	mapM_ removeAnnex =<< getKeysPresent-	liftIO $ removeDirectoryRecursive annexdir 	-- avoid normal shutdown 	saveState False 	inRepo $ Git.Command.run 		[Param "branch", Param "-D", Param $ show Annex.Branch.name] 	liftIO exitSuccess++{- Keys that were moved out of the annex have a hard link still in the+ - annex, with > 1 link count, and those can be removed.+ -+ - Returns keys that cannot be removed. -}+removeUnannexed :: [Key] -> Annex [Key]+removeUnannexed = go []+  where+  	go c [] = return c+	go c (k:ks) = ifM (inAnnexCheck k $ liftIO . enoughlinks)+		( do+			removeAnnex k+			go c ks+		, go (k:c) ks+		)+	enoughlinks f = catchBoolIO $ do+		s <- getFileStatus f+		return $ linkCount s > 1
Config/Files.o view

binary file changed (15108 → 15108 bytes)

Logs/Transfer.hs view
@@ -103,11 +103,13 @@  {- Runs a transfer action. Creates and locks the lock file while the  - action is running, and stores info in the transfer information- - file. Will throw an error if the transfer is already in progress.+ - file.  -  - If the transfer action returns False, the transfer info is   - left in the failedTransferDir.  -+ - If the transfer is already in progress, returns False.+ -  - An upload can be run from a read-only filesystem, and in this case  - no transfer information or lock file is used.  -}@@ -116,11 +118,16 @@ 	info <- liftIO $ startTransferInfo file 	(meter, tfile, metervar) <- mkProgressUpdater t info 	mode <- annexFileMode-	fd <- liftIO $ prep tfile mode info-	ok <- retry info metervar $-		bracketIO (return fd) (cleanup tfile) (const $ a meter)-	unless ok $ recordFailedTransfer t info-	return ok+	(fd, inprogress) <- liftIO $ prep tfile mode info+	if inprogress+		then do+			showNote "transfer already in progress"+			return False+		else do+			ok <- retry info metervar $+		 		bracketIO (return fd) (cleanup tfile) (const $ a meter)+			unless ok $ recordFailedTransfer t info+			return ok   where 	prep tfile mode info = do #ifndef __WINDOWS__@@ -128,18 +135,20 @@ 			openFd (transferLockFile tfile) ReadWrite (Just mode) 				defaultFileFlags { trunc = True } 		case mfd of-			Nothing -> return mfd+			Nothing -> return (mfd, False) 			Just fd -> do 				locked <- catchMaybeIO $ 					setLock fd (WriteLock, AbsoluteSeek, 0, 0)-				when (isNothing locked) $-					error "transfer already in progress"-				void $ tryIO $ writeTransferInfoFile info tfile-				return mfd+				if isNothing locked+					then return (Nothing, True)+					else do+						void $ tryIO $ writeTransferInfoFile info tfile+						return (mfd, False) #else-		catchMaybeIO $ do+		mfd <- catchMaybeIO $ do 			writeFile (transferLockFile tfile) "" 			writeTransferInfoFile info tfile+		return (mfd, False) #endif 	cleanup _ Nothing = noop 	cleanup tfile (Just fd) = do
Makefile view
@@ -107,6 +107,7 @@ 	strip "$(LINUXSTANDALONE_DEST)/bin/git-annex" 	ln -sf git-annex "$(LINUXSTANDALONE_DEST)/bin/git-annex-shell" 	zcat standalone/licences.gz > $(LINUXSTANDALONE_DEST)/LICENSE+	cp doc/favicon.png doc/logo.svg $(LINUXSTANDALONE_DEST)  	./Build/Standalone "$(LINUXSTANDALONE_DEST)" 	
Remote/Directory.hs view
@@ -118,7 +118,7 @@ store :: FilePath -> ChunkSize -> Key -> AssociatedFile -> MeterUpdate -> Annex Bool store d chunksize k _f p = sendAnnex k (void $ remove d k) $ \src -> 	metered (Just p) k $ \meterupdate -> -		storeHelper d chunksize k $ \dests ->+		storeHelper d chunksize k k $ \dests -> 			case chunksize of 				Nothing -> do 					let dest = Prelude.head dests@@ -132,7 +132,7 @@ storeEncrypted :: FilePath -> GpgOpts -> ChunkSize -> (Cipher, Key) -> Key -> MeterUpdate -> Annex Bool storeEncrypted d gpgOpts chunksize (cipher, enck) k p = sendAnnex k (void $ remove d enck) $ \src -> 	metered (Just p) k $ \meterupdate ->-		storeHelper d chunksize enck $ \dests ->+		storeHelper d chunksize enck k $ \dests -> 			encrypt gpgOpts cipher (feedFile src) $ readBytes $ \b -> 				case chunksize of 					Nothing -> do@@ -173,17 +173,17 @@ 				feed bytes' (sz - s) ls h 			else return (l:ls) -storeHelper :: FilePath -> ChunkSize -> Key -> ([FilePath] -> IO [FilePath]) -> Annex Bool-storeHelper d chunksize key storer = check <&&> go+storeHelper :: FilePath -> ChunkSize -> Key -> Key -> ([FilePath] -> IO [FilePath]) -> Annex Bool+storeHelper d chunksize key origkey storer = check <&&> go   where 	tmpdir = tmpDir d key 	destdir = storeDir d key-	{- The size is not exactly known when encrypting the key;-	 - this assumes that at least the size of the key is-	 - needed as free space. -}+	{- An encrypted key does not have a known size,+	 - so check that the size of the original key is available as free+	 - space. -} 	check = do 		liftIO $ createDirectoryIfMissing True tmpdir-		checkDiskSpace (Just tmpdir) key 0+		checkDiskSpace (Just tmpdir) origkey 0 	go = liftIO $ catchBoolIO $ 		storeChunks key tmpdir destdir chunksize storer recorder finalizer 	finalizer tmp dest = do
Remote/Git.hs view
@@ -228,17 +228,14 @@ 	| Git.repoIsUrl r = checkremote 	| otherwise = checklocal   where-	checkhttp headers = liftIO $ go undefined $ keyUrls r key-	  where-		go e [] = return $ Left e-		go _ (u:us) = do-			res <- catchMsgIO $-				Url.check u headers (keySize key)-			case res of-				Left e -> go e us-				v -> return v+	checkhttp headers = do+		showchecking+		liftIO $ ifM (anyM (\u -> Url.check u headers (keySize key)) (keyUrls r key))+			( return $ Right True+			, return $ Left "not found"+			) 	checkremote = do-		showAction $ "checking " ++ Git.repoDescribe r+		showchecking 		onRemote r (check, unknown) "inannex" [Param (key2file key)] [] 	  where 		check c p = dispatch <$> safeSystem c p@@ -253,6 +250,7 @@ 		dispatch (Right (Just b)) = Right b 		dispatch (Right Nothing) = unknown 	unknown = Left $ "unable to check " ++ Git.repoDescribe r+	showchecking = showAction $ "checking " ++ Git.repoDescribe r  {- Runs an action on a local repository inexpensively, by making an annex  - monad using that repository. -}@@ -272,7 +270,7 @@ #ifndef __WINDOWS__ 	locs = annexLocations key #else-	locs = replace "\\" "/" $ annexLocations key+	locs = map (replace "\\" "/") (annexLocations key) #endif  dropKey :: Remote -> Key -> Annex Bool
Setup.o view

binary file changed (10440 → 10440 bytes)

Test.hs view
@@ -243,11 +243,11 @@ test_unannex :: TestEnv -> Test test_unannex env = "git-annex unannex" ~: TestList [nocopy, withcopy]   where-	nocopy = "no content" ~: intmpclonerepoInDirect env $ do+	nocopy = "no content" ~: intmpclonerepo env $ do 		annexed_notpresent annexedfile 		git_annex env "unannex" [annexedfile] @? "unannex failed with no copy" 		annexed_notpresent annexedfile-	withcopy = "with content" ~: intmpclonerepoInDirect env $ do+	withcopy = "with content" ~: intmpclonerepo env $ do 		git_annex env "get" [annexedfile] @? "get failed" 		annexed_present annexedfile 		git_annex env "unannex" [annexedfile, sha1annexedfile] @? "unannex failed"@@ -734,16 +734,18 @@ 	git_annex env "map" ["--fast"] @? "map failed"  test_uninit :: TestEnv -> Test-test_uninit env = "git-annex uninit" ~: intmpclonerepoInDirect env $ do-	git_annex env "get" [] @? "get failed"-	annexed_present annexedfile-	boolSystem "git" [Params "checkout git-annex"] @? "git checkout git-annex"-	not <$> git_annex env "uninit" [] @? "uninit failed to fail when git-annex branch was checked out"-	boolSystem "git" [Params "checkout master"] @? "git checkout master"-	_ <- git_annex env "uninit" [] -- exit status not checked; does abnormal exit-	checkregularfile annexedfile-	doesDirectoryExist ".git" @? ".git vanished in uninit"-	not <$> doesDirectoryExist ".git/annex" @? ".git/annex still present after uninit"+test_uninit env = "git-annex uninit" ~: TestList [inbranch, normal]+  where+  	inbranch = "in branch" ~: intmpclonerepoInDirect env $ do+		boolSystem "git" [Params "checkout git-annex"] @? "git checkout git-annex"+		not <$> git_annex env "uninit" [] @? "uninit failed to fail when git-annex branch was checked out"+	normal = "normal" ~: intmpclonerepo env $ do+		git_annex env "get" [] @? "get failed"+		annexed_present annexedfile+		_ <- git_annex env "uninit" [] -- exit status not checked; does abnormal exit+		checkregularfile annexedfile+		doesDirectoryExist ".git" @? ".git vanished in uninit"+		not <$> doesDirectoryExist ".git/annex" @? ".git/annex still present after uninit"  test_upgrade :: TestEnv -> Test test_upgrade env = "git-annex upgrade" ~: intmpclonerepo env $ do
Utility/DataUnits.hs view
@@ -50,6 +50,8 @@ import Data.List import Data.Char +import Utility.HumanNumber+ type ByteSize = Integer type Name = String type Abbrev = String@@ -105,7 +107,7 @@  {- approximate display of a particular number of bytes -} roughSize :: [Unit] -> Bool -> ByteSize -> String-roughSize units abbrev i+roughSize units short i 	| i < 0 = '-' : findUnit units' (negate i) 	| otherwise = findUnit units' i   where@@ -116,16 +118,14 @@ 		| otherwise = findUnit us i' 	findUnit [] i' = showUnit i' (last units') -- bytes -	showUnit i' (Unit s a n) = let num = chop i' s in-		show num ++ " " ++-		(if abbrev then a else plural num n)--	chop :: Integer -> Integer -> Integer-	chop i' d = round $ (fromInteger i' :: Double) / fromInteger d--	plural n u-		| n == 1 = u-		| otherwise = u ++ "s"+	showUnit x (Unit size abbrev name) = s ++ " " ++ unit+	  where+	  	v = (fromInteger x :: Double) / fromInteger size+		s = showImprecise 2 v+		unit+			| short = abbrev+			| s == "1" = name+			| otherwise = name ++ "s"  {- displays comparison of two sizes -} compareSizes :: [Unit] -> Bool -> ByteSize -> ByteSize -> String
Utility/Directory.o view

binary file changed (15500 → 15500 bytes)

Utility/Exception.o view

binary file changed (8648 → 8648 bytes)

Utility/ExternalSHA.o view

binary file changed (11664 → 11664 bytes)

Utility/FileSystemEncoding.o view

binary file changed (5672 → 5672 bytes)

Utility/FreeDesktop.hs view
@@ -3,6 +3,7 @@  - http://standards.freedesktop.org/basedir-spec/latest/  - http://standards.freedesktop.org/desktop-entry-spec/latest/  - http://standards.freedesktop.org/menu-spec/latest/+ - http://standards.freedesktop.org/icon-theme-spec/latest/  -  - Copyright 2012 Joey Hess <joey@kitenet.net>  -@@ -16,6 +17,8 @@ 	writeDesktopMenuFile, 	desktopMenuFilePath, 	autoStartPath,+	iconDir,+	iconFilePath, 	systemDataDir, 	systemConfigDir, 	userDataDir,@@ -34,6 +37,7 @@ import System.FilePath import Data.List import Data.String.Utils+import Data.Maybe import Control.Applicative  type DesktopEntry = [(Key, Value)]@@ -54,18 +58,19 @@   where 	escapesemi = join "\\;" . split ";" -genDesktopEntry :: String -> String -> Bool -> FilePath -> [String] -> DesktopEntry-genDesktopEntry name comment terminal program categories =+genDesktopEntry :: String -> String -> Bool -> FilePath -> Maybe String -> [String] -> DesktopEntry+genDesktopEntry name comment terminal program icon categories = catMaybes 	[ item "Type" StringV "Application" 	, item "Version" NumericV 1.0 	, item "Name" StringV name 	, item "Comment" StringV comment 	, item "Terminal" BoolV terminal 	, item "Exec" StringV program+	, maybe Nothing (item "Icon" StringV) icon 	, item "Categories" ListV (map StringV categories) 	]   where-	item x c y = (x, c y)+	item x c y = Just (x, c y)  buildDesktopMenuFile :: DesktopEntry -> String buildDesktopMenuFile d = unlines ("[Desktop Entry]" : map keyvalue d) ++ "\n"@@ -88,6 +93,18 @@ autoStartPath :: String -> FilePath -> FilePath autoStartPath basename configdir = 	configdir </> "autostart" </> desktopfile basename++{- Base directory to install an icon file, in either the systemDataDir+ - or the userDatadir. -}+iconDir :: FilePath -> FilePath+iconDir datadir = datadir </> "icons" </> "hicolor"++{- Filename of an icon, given the iconDir to use.+ -+ - The resolution is something like "48x48" or "scalable". -}+iconFilePath :: FilePath -> String -> FilePath -> FilePath+iconFilePath file resolution icondir =+	icondir </> resolution </> "apps" </> file  desktopfile :: FilePath -> FilePath desktopfile f = f ++ ".desktop"
Utility/FreeDesktop.o view

binary file changed (21064 → 23532 bytes)

+ Utility/HumanNumber.hs view
@@ -0,0 +1,21 @@+{- numbers for humans+ -+ - Copyright 2012-2013 Joey Hess <joey@kitenet.net>+ -+ - Licensed under the GNU GPL version 3 or higher.+ -}++module Utility.HumanNumber where++{- Displays a fractional value as a string with a limited number+ - of decimal digits. -}+showImprecise :: RealFrac a => Int -> a -> String+showImprecise precision n+	| precision == 0 || remainder == 0 = show (round n :: Integer)+	| otherwise = show int ++ "." ++ striptrailing0s (pad0s $ show remainder)+  where+	int :: Integer+	(int, frac) = properFraction n+	remainder = round (frac * 10 ^ precision) :: Integer+	pad0s s = (take (precision - length s) (repeat '0')) ++ s+	striptrailing0s = reverse . dropWhile (== '0') . reverse
Utility/INotify.hs view
@@ -144,13 +144,15 @@ 			_ -> noop 	filetype t f = catchBoolIO $ t <$> getSymbolicLinkStatus (indir f) -	-- Inotify fails when there are too many watches with a-	-- disk full error. 	failedaddwatch e+		-- Inotify fails when there are too many watches with a+		-- disk full error. 		| isFullError e = 			case errHook hooks of 				Nothing -> throw e 				Just hook -> tooManyWatches hook dir+		-- The directory could have been deleted.+		| isDoesNotExistError e = return () 		| otherwise = throw e  tooManyWatches :: (String -> Maybe FileStatus -> IO ()) -> FilePath -> IO ()
Utility/Misc.o view

binary file changed (19232 → 19232 bytes)

Utility/Monad.o view

binary file changed (8204 → 8204 bytes)

Utility/OSX.o view

binary file changed (8808 → 8808 bytes)

Utility/Path.o view

binary file changed (28996 → 28996 bytes)

Utility/Percentage.hs view
@@ -13,6 +13,8 @@  import Data.Ratio +import Utility.HumanNumber+ newtype Percentage = Percentage (Ratio Integer)  instance Show Percentage where@@ -25,14 +27,7 @@  {- Pretty-print a Percentage, with a specified level of precision. -} showPercentage :: Int -> Percentage -> String-showPercentage precision (Percentage p)-	| precision == 0 || remainder == 0 = go $ show int-	| otherwise = go $ show int ++ "." ++ strip0s (show remainder)+showPercentage precision (Percentage p) = v ++ "%"   where-	go v = v ++ "%"-	int :: Integer-	(int, frac) = properFraction (fromRational p)-	remainder = floor (frac * multiplier) :: Integer-	strip0s = reverse . dropWhile (== '0') . reverse-	multiplier :: Float-	multiplier = 10 ** (fromIntegral precision)+	v = showImprecise precision n+	n = fromRational p :: Double
Utility/Process.o view

binary file changed (43108 → 43108 bytes)

Utility/SafeCommand.o view

binary file changed (28164 → 28164 bytes)

Utility/Tmp.o view

binary file changed (12272 → 12272 bytes)

debian/changelog view
@@ -1,3 +1,42 @@+git-annex (4.20130723) unstable; urgency=low++  * Fix data loss bug when adding an (uncompressed) tarball of a+    git-annex repository, or other file that begins with something+    that can be mistaken for a git-annex link. Closes: #717456+  * New improved version of the git-annex logo, contributed by+    John Lawrence.+  * Rsync.net have committed to support git-annex and offer a special+    discounted rate for git-annex users. Updated the webapp to reflect this.+    http://www.rsync.net/products/git-annex-pricing.html+  * Install XDG desktop icon files.+  * Support unannex and uninit in direct mode.+  * Support import in direct mode.+  * webapp: Better display of added files.+  * fix: Preserve the original mtime of fixed symlinks.+  * uninit: Preserve .git/annex/objects at the end, if it still+    has content, so that old versions of files and deleted files+    are not deleted. Print a message with some suggested actions.+  * When a transfer is already being run by another process,+    proceed on to the next file, rather than dying.+  * Fix checking when content is present in a non-bare repository+    accessed via http.+  * Display byte sizes with more precision.+  * watcher: Fixed a crash that could occur when a directory was renamed+    or deleted before it could be scanned.+  * watcher: Partially worked around a bug in hinotify, no longer crashes+    if hinotify cannot process a directory (but can't detect changes in it)+  * directory special remote: Fix checking that there is enough disk space+    to hold an object, was broken when using encryption.+  * webapp: Differentiate between creating a new S3/Glacier/WebDav remote,+    and initializing an existing remote. When creating a new remote, avoid+    conflicts with other existing (or deleted) remotes with the same name.+  * When an XMPP server has SRV records, try them, but don't then fall+    back to the regular host if they all fail.+  * For long hostnames, use a hash of the hostname to generate the socket+    file for ssh connection caching.++ -- Joey Hess <joeyh@debian.org>  Tue, 23 Jul 2013 10:46:05 -0400+ git-annex (4.20130709) unstable; urgency=low    * --all: New switch that makes git-annex operate on all data stored
debian/copyright view
@@ -18,9 +18,10 @@ Copyright: 2013 guilhem <guilhem@fripost.org> License: GPL-3+ -Files: doc/logo* */favicon.ico standalone/osx/git-annex.app/Contents/Resources/git-annex.icns+Files: doc/logo* */favicon.ico standalone/osx/git-annex.app/Contents/Resources/git-annex.icns standalone/android/icons/* Copyright: 2007 Henrik Nyh <http://henrik.nyh.se/>            2010 Joey Hess <joey@kitenet.net>+	   2013 John Lawrence License: other   Free to modify and redistribute with due credit, and obviously free to use. 
+ doc/Android/comment_19_dc7b428f525a082834cb87221fc627ff._comment view
@@ -0,0 +1,8 @@+[[!comment format=mdwn+ username="http://afoolishmanifesto.com/"+ nickname="frioux"+ subject="SSH Keys?"+ date="2013-07-17T16:50:46Z"+ content="""+Is there a way I can use an SSH Key to connect to a remote server?  What would be really cool, though maybe not feasible, would be to use connectbot as an ssh-agent.+"""]]
+ doc/Android/comment_20_81940ea56ace3dcd5fa84dfccd88ad96._comment view
@@ -0,0 +1,10 @@+[[!comment format=mdwn+ username="http://joeyh.name/"+ ip="4.154.4.90"+ subject="comment 20"+ date="2013-07-17T19:06:31Z"+ content="""+@frioux the webapp has a \"ssh server\" option that will set up a ssh key and use it for passwordless data transfer to a ssh server. You have to enter your password twice in the git-annex terminal app, and then it's set up.++The openssh included in the git-annex app fully supports everything you can usually do with ssh keys, so you can also set this up by hand.+"""]]
+ doc/Android/comment_21_5903f6a4a81a6534fa8cfafb3b6c37bb._comment view
@@ -0,0 +1,8 @@+[[!comment format=mdwn+ username="http://afoolishmanifesto.com/"+ nickname="frioux"+ subject="SSH Keys - 2"+ date="2013-07-17T22:56:37Z"+ content="""+@joey should I be using the nightlies to see that?  Under \"Adding a remote server using ssh\" I only see  Host name, user name, directory, and port.  Will it only be an option after I type in a password?+"""]]
+ doc/Android/comment_22_36afd354f9669a154d7b6b2c4d43ded9._comment view
@@ -0,0 +1,8 @@+[[!comment format=mdwn+ username="http://joeyh.name/"+ ip="4.154.6.48"+ subject="comment 22"+ date="2013-07-17T23:25:21Z"+ content="""+@frioux it will automatically generate a new ssh key and configure the server to use it, once you submit the form and enter the password to let it into the server.+"""]]
+ doc/Android/comment_23_de98154792e8611a134429f06d82bcb1._comment view
@@ -0,0 +1,8 @@+[[!comment format=mdwn+ username="http://afoolishmanifesto.com/"+ nickname="frioux"+ subject="comment 23"+ date="2013-07-18T02:01:28Z"+ content="""+@joey: ok, I got it to connect and it indeed sent over a key etc.  For some reason now though git-annex (on android) \"crashes\" shortly after starting.  To be clear, the web app says that the program crashed, the console is still there.  I suspect that it may have something to do with my largish remote repo and the time required to sync just the metadata, but I can't tell.  Any ideas what I should do next?  (Note that I *did* change it to manual mode because my phone doesn't have 30G of storage :)+"""]]
+ doc/Android/comment_24_7ab509c25243009bfbffd796ec64e77b._comment view
@@ -0,0 +1,10 @@+[[!comment format=mdwn+ username="http://afoolishmanifesto.com/"+ nickname="frioux"+ subject="comment 24"+ date="2013-07-18T11:35:06Z"+ content="""+ok, it eventually got the details from the remote server, but now I'm getting some other oddities.  here is some of my log that shows what I am running into++Watcher crashed: addWatch: does not exist (No such file or directory) [2013-07-18 06:22:46 CDT] Watcher: warning Watcher crashed: addWatch: does not exist (No such file or directory) (scanning...) [2013-07-18 06:23:19 CDT] Watcher: Performing startup scan Watcher crashed: addWatch: does not exist (No such file or directory) [2013-07-18 06:24:28 CDT] Watcher: warning Watcher crashed: addWatch: does not exist (No such file or directory) (scanning...) [2013-07-18 06:24:31 CDT] Watcher: Performing startup scan Watcher crashed: addWatch: does not exist (No such file or directory) [2013-07-18 06:25:44 CDT] Watcher: warning Watcher crashed: addWatch: does not exist (No such file or directory)+"""]]
+ doc/Android/comment_25_026d1a01d5753d71ac3dfc002f2a5eec._comment view
@@ -0,0 +1,10 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawnRfQArYOmDd7r2DC7DkIJFOQgqXCVcAeU"+ nickname="Frew"+ subject="comment 25"+ date="2013-07-18T13:14:46Z"+ content="""+frioux here (something messed up with myopenid or something)++So I deleted the repo on my phone (via the CLI since the web app seemed hung) and recreated it; this time making sure that I set things to manual mode ASAP.  It didn't have the problem it was having before, but now what seems to have happened is that it fetches from the remote, commits to the local repo, and then immediately fetches and commits again.  It looks like it's about a 4s repeat loop.  Any ideas what I should do next?+"""]]
+ doc/Android/comment_26_f0a044fb649d43e32c96b08edbc336c3._comment view
@@ -0,0 +1,12 @@+[[!comment format=mdwn+ username="http://joeyh.name/"+ ip="4.154.0.140"+ subject="comment 26"+ date="2013-07-18T17:07:27Z"+ content="""+@Frew, you should file bug reports when you have a bug.++One problem you mentioned had already had a bug report filed by someone+else:+<http://git-annex.branchable.com/bugs/Watcher_crashed:_addWatch:_does_not_exist/> So you can post your details there.+"""]]
doc/assistant.mdwn view
@@ -34,7 +34,7 @@ The git-annex assistant is being [crowd funded on Kickstarter](http://www.kickstarter.com/projects/joeyh/git-annex-assistant-like-dropbox-but-with-your-own/).-[[/assistant/Thanks]] to all my backers.+[[/assistant/Thanks]] to all my backers. This kickstarter is now closed, and there is a new home-made crowdfunding project to support the project for 2013-2014 [here](https://campaign.joeyh.name/).  I blog about my work on the git-annex assistant on a daily basis in [[this_blog|design/assistant/blog]]. Follow along!
doc/assistant/release_notes.mdwn view
@@ -1,3 +1,13 @@+## version 4.20130709++This release is mostly bug fixes.++One of the bugs involved setting up rsync remotes on servers other than+rsync.net. The wrong `.ssh/authorized_keys` line was deployed to the+remote server. If you set up a rsync remote with a past release, and it does+not work, you will need to manually edit the `.ssh/authorized_keys` file,+and remove the `command=` forced command.+ ## version 4.20130621, 4.20130627  These releases mostly consist of bug fixes.
+ doc/bugs/Android_daily_build_missing_webapp.mdwn view
@@ -0,0 +1,23 @@+### Please describe the problem.++The daily Android build is missing the webapp, raising a bug in case this is unexpected.++### What steps will reproduce the problem?++Down the daily APK, it is 9MB.++### What version of git-annex are you using? On what operating system?+++### Please provide any additional information below.++[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log+++# End of transcript or log.+"""]]++> Probably several of them were. I've fixed the cabal file, re-running+> android build now. [[done]] --[[Joey]] 
+ doc/bugs/Local_network___40__ssh__41___fails_to_pair__47__sync.mdwn view
@@ -0,0 +1,175 @@+### Please describe the problem.+I am trying to set out two computers on the same network to synchronise.++### What steps will reproduce the problem?+Install Git-Annex. Start the webapp. Try to connect. Enter a secret phrase on both. The Mythbuntu machine shows "Failed to sync with Inspiron 14z" (the laptop). The laptop shows "Pairing in progress" forever.++The machines can normally connect together passwordlessly through ssh with public key encryption. ++### What version of git-annex are you using? On what operating system?+Ubuntu Raring Version: 3.20121112ubuntu2 from the repos on my laptop.  Install version 4.20130627 from the PPA on Mythbuntu Precise (which I use as a home server).++### Please provide any additional information below.+From the the laptop, where I started the pairing:+[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log+$ git-annex webapp ++(process:3084): GLib-CRITICAL **: g_slice_set_config: assertion `sys_page_size == 0' failed++** (firefox:3084): WARNING **: Failed to find domain member of JSON manifest+Running global cleanup code from study base classes.+(Recording state in git...)++Launching web browser on file:///tmp/webapp3075.html+(scanning...) +  dbus failed; falling back to mtab polling (ClientError {clientErrorMessage = "Call failed: The name org.gtk.Private.GduVolumeMonitor was not provided by any .service files", clientErrorFatal = False})+(started...) Generating public/private rsa key pair.+Your identification has been saved in /tmp/git-annex-keygen3075.0/key.+Your public key has been saved in /tmp/git-annex-keygen3075.0/key.pub.+The key fingerprint is:+79:00:67:a4:f0:5f:62:26:78:ed:09:97:e4:c4:dd:56 aaron@Inspiron-14z+The key's randomart image is:++--[ RSA 2048]----++|    . .o*. . .E  |+|     + X... o    |+|    . * X ..     |+|     . O *       |+|        S .      |+|         .       |+|                 |+|                 |+|                 |++-----------------++Control socket connect(/home/shared/annex/.git/annex/ssh/mythbuntu@git-annex-mythbuntu-server.local-mythbuntu): Connection refused+Failed to connect to new control master+warning: no common commits++  Remote mythbuntuserver.local_annex does not have git-annex installed; setting remote.mythbuntuserver.local_annex.annex-ignore+Already up-to-date.+Counting objects: 13, done.+Delta compression using up to 4 threads.+Compressing objects: 100% (9/9), done.+Writing objects: 100% (11/11), 1.06 KiB, done.+Total 11 (delta 2), reused 0 (delta 0)+To ssh://mythbuntu@git-annex-mythbuntu-server.local-mythbuntu/~/annex/+ * [new branch]      git-annex -> synced/git-annex+ * [new branch]      master -> synced/master+Already up-to-date!+Merge made by the 'recursive' strategy.+Already up-to-date.+Already up-to-date.+Counting objects: 2, done.+Delta compression using up to 4 threads.+Compressing objects: 100% (2/2), done.+Writing objects: 100% (2/2), 326 bytes, done.+Total 2 (delta 1), reused 0 (delta 0)+To ssh://mythbuntu@git-annex-mythbuntu-server.local-mythbuntu/~/annex/+   82bf946..dfe0bd1  master -> synced/master+Already up-to-date.+SendMessage (77594660, 0x101f, (nil), (nil))+SendMessage (0, 0x1203, (nil), 0x7fffc68a1850)+SendMessage (0, 0x1204, (nil), 0x7fffc68a1850)+SendMessage (0, 0x1203, 0x1, 0x7fffc68a1850)+SendMessage (0, 0x1204, 0x1, 0x7fffc68a1850)+SendMessage (0, 0x1203, 0x2, 0x7fffc68a1850)+SendMessage (0, 0x1204, 0x2, 0x7fffc68a1850)+SendMessage (0, 0x1203, 0x3, 0x7fffc68a1850)+SendMessage (0, 0x1204, 0x3, 0x7fffc68a1850)+SendMessage (0, 0x1203, 0x4, 0x7fffc68a1850)+SendMessage (0, 0x1204, 0x4, 0x7fffc68a1850)+SendMessage (77594660, 0x101f, (nil), (nil))+SendMessage (0, 0x1203, (nil), 0x7fffc68a1810)+SendMessage (0, 0x1204, (nil), 0x7fffc68a1810)+SendMessage (0, 0x1203, 0x1, 0x7fffc68a1810)+SendMessage (0, 0x1204, 0x1, 0x7fffc68a1810)+SendMessage (0, 0x1203, 0x2, 0x7fffc68a1810)+SendMessage (0, 0x1204, 0x2, 0x7fffc68a1810)+SendMessage (0, 0x1203, 0x3, 0x7fffc68a1810)+SendMessage (0, 0x1204, 0x3, 0x7fffc68a1810)+SendMessage (0, 0x1203, 0x4, 0x7fffc68a1810)+SendMessage (0, 0x1204, 0x4, 0x7fffc68a1810)+SendMessage (77594660, 0x101f, (nil), (nil))+SendMessage (0, 0x1203, (nil), 0x7fffc68a2920)+SendMessage (0, 0x1204, (nil), 0x7fffc68a2920)+SendMessage (0, 0x1203, 0x1, 0x7fffc68a2920)+SendMessage (0, 0x1204, 0x1, 0x7fffc68a2920)+SendMessage (0, 0x1203, 0x2, 0x7fffc68a2920)+SendMessage (0, 0x1204, 0x2, 0x7fffc68a2920)+SendMessage (0, 0x1203, 0x3, 0x7fffc68a2920)+SendMessage (0, 0x1204, 0x3, 0x7fffc68a2920)+SendMessage (0, 0x1203, 0x4, 0x7fffc68a2920)+SendMessage (0, 0x1204, 0x4, 0x7fffc68a2920)+Redirection loop trying to set HTTPS on:+  http://www.aol.com/favicon.ico+(falling back to HTTP)+SendMessage (77594652, 0x444, 0x1, 0x3652e00)+SendMessage (77594652, 0x444, 0x1, 0x3647de0)+SendMessage (77594652, 0x444, 0x1, 0x3667a80)+SendMessage (77594652, 0x444, 0x1, 0x3667a80)++# End of transcript or log.+# End of transcript or log.+"""]]++On the Mythbuntu machine:+[[!format sh """+$ git-annex webapp+Launching web browser on file:///tmp/webapp8399.html+(Recording state in git...)+"""]]++Unless I'm going mad, there doesn't seem to be a daemon.log on my laptop.++Daemon.log on the Mythbuntu machine:+[[!format sh """+[2013-07-14 10:38:56 BST] main: starting assistant version 4.20130627+(scanning...) [2013-07-14 10:38:56 BST] Watcher: Performing startup scan+(started...) [2013-07-14 10:38:57 BST] PairListener: aaron@Inspiron-14z:/home/shared/annex is sending a pair request.+Generating public/private rsa key pair.+Your identification has been saved in /tmp/git-annex-keygen.0/key.+Your public key has been saved in /tmp/git-annex-keygen.0/key.pub.+The key fingerprint is:+bb:8c:66:05:22:8e:fa:e1:10:33:6d:cb:d6:57:e2:47 mythbuntu@mythbuntu-server+The key's randomart image is:++--[ RSA 2048]----++|                 |+|                 |+|                 |+| .. . .          |+|+oo. ...E        |+|.*.o . +..       |+|o = . o.o        |+|.+ . .o+ .       |+| .o  o. o        |++-----------------++[2013-07-14 10:39:13 BST] main: Pairing with aaron@Inspiron-14z:/home/shared/annex in progress+ssh: connect to host Inspiron-14z.local port 22: Connection refused+ssh: connect to host Inspiron-14z.local port 22: Connection refused+fatal: The remote end hung up unexpectedly+[2013-07-14 10:39:17 BST] PairListener: Syncing with Inspiron14z.local__home_shared_annex +ssh: connect to host Inspiron-14z.local port 22: Connection refused+fatal: The remote end hung up unexpectedly+ssh: connect to host Inspiron-14z.local port 22: Connection refused+fatal: The remote end hung up unexpectedly+ssh: connect to host Inspiron-14z.local port 22: Connection refused+fatal: The remote end hung up unexpectedly+Already up-to-date.+Already up-to-date.+ssh: connect to host Inspiron-14z.local port 22: Connection refused+fatal: The remote end hung up unexpectedly+ssh: connect to host Inspiron-14z.local port 22: Connection refused+fatal: The remote end hung up unexpectedly+Updating 82bf946..dfe0bd1+Fast-forward+[2013-07-14 10:39:56 BST] Pusher: Syncing with Inspiron14z.local__home_shared_annex +ssh: connect to host Inspiron-14z.local port 22: Connection refused+fatal: The remote end hung up unexpectedly+ssh: connect to host Inspiron-14z.local port 22: Connection refused+fatal: The remote end hung up unexpectedly+ssh: connect to host Inspiron-14z.local port 22: Connection refused+fatal: The remote end hung up unexpectedly+ssh: connect to host Inspiron-14z.local port 22: Connection refused+fatal: The remote end hung up unexpectedly+"""]]
+ doc/bugs/Selfsigned_certificates_with_jabber_fail_miserably..mdwn view
@@ -0,0 +1,22 @@+### Please describe the problem.+Entering a jabber address which's server got a selfsigned certificate, the process just fails, without asking for acceptance for that certificate. This is quite a showstopper.+(for example: jabber.ccc.de)+++### What steps will reproduce the problem?+Try with an account from e.g. jabber.ccc.de+++### What version of git-annex are you using? On what operating system?+Arch Linux, aur/git-annex-standalone 4.20130709-1 ++### Please provide any additional information below.+There is no logoutput to add... I'm sorry.++[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log+++# End of transcript or log.+"""]]
+ doc/bugs/Should_try_again_when_network_fails___40__esp._DNS__41__.mdwn view
@@ -0,0 +1,50 @@+### Please describe the problem.++If you have a flaky connection big uploads and downloads will fail. git-annex should try again few times.++This is an example of failed download.++[[!format sh """+$ git annex get --not --in here+get File1.bin (from s3...) (gpg) +You need a passphrase to unlock the secret key for+user: "Gioele"+4096-bit RSA key, ....++gpg: gpg-agent is not available in this session++  ErrorMisc "<socket: 14>: hGetBuf: resource vanished (Connection reset by peer)"+                        +  Unable to access these remotes: s3++  Try making some of these repositories available:+        331fa184-799d-4511-1725-ef2a17ace8b4 -- s3+        c2a0cfa0-8871-9721-9b81-5649281fabdc -- other+failed+get File2.bin (from s3...) ++  Unable to access these remotes: s3++  Try making some of these repositories available:+        331fa184-799d-4511-1725-ef2a17ace8b4 -- s3+        c2a0cfa0-8871-9721-9b81-5649281fabdc -- other+failed+git-annex: get: 2 failed+"""]]++This is especially annoying when the DNS is out of order for a few seconds every now and then. In such cases, git-annex will complain, skip very fast to the next file, and repeat this process until it runs out of files. In the end it will have uploaded or downloaded very few files.++Please not that it may not possible to write a simple shell loop to try again as the are GPG passwords to be entered.++Git-annex should try again to upload or download a file in case something goes wrong.++### What version of git-annex are you using? On what operating system?++    git-annex version: 4.20130709.1+    build flags: Assistant Webapp Pairing Testsuite S3 WebDAV Inotify DBus XMPP+    local repository version: unknown+    default repository version: 3+    supported repository versions: 3 4+    upgrade supported from repository versions: 0 1 2++Ubuntu 12.04.2 LTS
+ doc/bugs/TransferScanner_crash_on_Android.mdwn view
@@ -0,0 +1,24 @@+### Please describe the problem.++TransferScanner crashes trying to add a file.++### What steps will reproduce the problem?++Start the web app.++### What version of git-annex are you using? On what operating system?++4.20130709-g339d1e0 on Android.++### Please provide any additional information below.++There was a whole stack of nulls in some of those log lines as well. I've ++[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log++TransferScanner crashed: unknown response from git cat-file ("refs/heads/git-annex:289/20f/SHA256E-s85883241--3bf01cfd6a422f9b661ed335e6142bbdaf899cd71587bb3cc812256064c7071e missing",refs/heads/git-annex:289/20f/SHA256E-s85883241--3bf01cfd6a422f9b661ed335e6142bbdaf899cd71587bb3cc812256064c7071e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00(7981 more elided)\00.log)+[2013-07-16 15:19:26 NZST] TransferScanner: warning TransferScanner crashed: unknown response from git cat-file ("refs/heads/git-annex:289/20f/SHA256E-s85883241--3bf01cfd6a422f9b661ed335e6142bbdaf899cd71587bb3cc812256064c7071e missing",refs/heads/git-annex:289/20f/SHA256E-s85883241--3bf01cfd6a422f9b661ed335e6142bbdaf899cd71587bb3cc812256064c7071e\00\00\00\00\00(7991 more elided)\00.log)+# End of transcript or log.+"""]]
+ doc/bugs/Watcher_crashed:_addWatch:_does_not_exist.mdwn view
@@ -0,0 +1,25 @@+### Please describe the problem.++When starting an git annex webapp in my documents repository, i get the error message, that the watcher thread has died. The error message seems to be arising from the fact, that a watcher thread for an empty string should be started, which does not work.++### What steps will reproduce the problem?++I've no idea, how to reproduce this in another repostory.++### What version of git-annex are you using? On what operating system?++ii  git-annex  4.20130709   i386   manage files with git, without checking their contents into git++### Please provide any additional information below.++[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log++Watcher crashed: addWatch: does not exist (No such file or directory)+[2013-07-14 10:30:35 CEST] Watcher: warning Watcher crashed: addWatch: does not exist (No such file or directory)++# End of transcript or log.+"""]]++> [[done]]; see my comment --[[Joey]]
+ doc/bugs/__34__Adding_4923_files__34___is_really_slow.mdwn view
@@ -0,0 +1,98 @@+Wow, what a great archiving system. Thank you for all your work on git annex!++### Please describe the problem.++I was using 'git annex assistant' on a brand-new annex that I created today. I had previously added about 20GB of data and a couple thousand files, mostly MP4 videos and MP3 music.++I then used regular 'mv' to add a folder containing about 20GB of music. This went well for a while—git annex assistant added two groups of files, containing roughly 700 and 1000 MP3s each. But the third group contained 4,923 files, and it's taking a really long time to import.++CPU usage is pretty consistently near 100%. According to the log, the files are being processed slowly.++### What steps will reproduce the problem?++I don't want to try to reproduce this problem until the MP3s finish being imported. I can try again later with thousands of digital photos if that would help.++### What version of git-annex are you using? On what operating system?++Version: 4.20130709.1 +Build flags: Assistant Webapp Pairing Testsuite S3 WebDAV Inotify DBus XMPP++Ubuntu 12.04.2 LTS++### Please provide any additional information below.++Here's the 'top' output and a snippet of the log. Let me know if you need anything else.++[[!format sh """+# CPU usage++  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND      +  584 ...me...  20   0  776m 147m  16m S  100  0.9 181:16.87 git-annex    +++# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log++[201ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/._3-06 Words.mp3 3-0(checksum...) 7-22 14:52:14 EDT] TransferScanner: queued Upload UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06" music/Rock/Aerosmith/A Little South of Sanity/._2-08 Walk This Way.mp3 Nothing : expensive scan found missing object+[2013-07-22 14:52:34 EDT] Transferrer: Transferring: Upload UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06" music/Rock/Aerosmith/A Little South of Sanity/._2-08 Walk This Way.mp3 Nothing+[2013-07-22 14:52:34 EDT] chat: git ["--git-dir=/mnt/storage/private/annex/.git","--work-tree=/mnt/storage/private/annex","hash-object","-t","blob","-w","--stdin","--no-filters"]+[ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/._4-05 Our House.mp3 2013-0(checksum...) 7-22 14:52:34 EDT] TransferWatcher: transfer starting: Upload UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06" music/Rock/Aerosmith/A Little South of Sanity/._2-08 Walk This Way.mp3 Nothing+[2013-07-22 14:52:54 EDT] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06", transferKey = Key {keyName = "a8ddf79be61cf4a5ab3c7c8e95d8c259ceb102410dff50eb1260e7d818f8c5a8.mp3", keyBackendName = "SHA256E", keySize = Just 70, keyMtime = Nothing}}+[2013-07-22 14:52:54 EDT] chat: git ["--git-dir=/mnt/storage/private/annex/.git","--work-tree=/mnt/storage/private/annex","hash-object","-t","blob","-w","--stdin","--no-filters"]+ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/7-15 Never Gonna Give You Up.mp3 (checksum...) [2013-07-22 14:52:54 EDT] read: sha256sum ["/mnt/storage/private/annex/.git/annex/tmp/7-15 Never Gonna Give You Up584.mp3"]+[2013-07-22 14:52:55 EDT] chat: git ["--git-dir=/mnt/storage/private/annex/.git","--work-tree=/mnt/storage/private/annex","hash-object","-t","blob","-w","--stdin","--no-filters"]+[ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/3-09 Down Under.mp3 2013-07-(checksum...) 22 14:52:55 EDT] TransferScanner: queued Upload UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06" music/Rock/Aerosmith/A Little South of Sanity/._2-09 Dude (Looks Like A Lady).mp3 Nothing : expensive scan found missing object+[2013-07-22 14:52:55 EDT] read: sha256sum ["/mnt/storage/private/annex/.git/annex/tmp/3-09 Down Under584.mp3"]+[2013-07-22 14:52:55 EDT] Transferrer: Transferring: Upload UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06" music/Rock/Aerosmith/A Little South of Sanity/._2-09 Dude (Looks Like A Lady).mp3 Nothing+[2013-07-22 14:52:55 EDT] chat: git ["--git-dir=/mnt/storage/private/annex/.git","--work-tree=/mnt/storage/private/annex","hash-object","-t","blob","-w","--stdin","--no-filters"]+[ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/7-19 Right Here Waiting.mp3 2013(checksum...) -07-22 14:52:55 EDT] TransferWatcher: transfer starting: Upload UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06" music/Rock/Aerosmith/A Little South of Sanity/._2-09 Dude (Looks Like A Lady).mp3 Nothing+[2013-07-22 14:52:55 EDT] read: sha256sum ["/mnt/storage/private/annex/.git/annex/tmp/7-19 Right Here Waiting584.mp3"]+[2013-07-22 14:52:55 EDT] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06", transferKey = Key {keyName = "a8ddf79be61cf4a5ab3c7c8e95d8c259ceb102410dff50eb1260e7d818f8c5a8.mp3", keyBackendName = "SHA256E", keySize = Just 70, keyMtime = Nothing}}+[2013-07-22 14:52:55 EDT] chat: git ["--git-dir=/mnt/storage/private/annex/.git","--work-tree=/mnt/storage/private/annex","hash-object","-t","blob","-w","--stdin","--no-filters"]+ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/._1-04 Another One Bites The Dust.mp3 (checksum...) [2013-07-22 14:53:15 EDT] chat: git ["--git-dir=/mnt/storage/private/annex/.git","--work-tree=/mnt/storage/private/annex","hash-object","-t","blob","-w","--stdin","--no-filters"]+[2013ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/2-08 Hold On Loosely.mp3 -07(checksum...) -22 14:53:15 EDT] TransferScanner: queued Upload UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06" music/Rock/Aerosmith/A Little South of Sanity/._2-10 What It Takes.mp3 Nothing : expensive scan found missing object+[2013-07-22 14:53:15 EDT] read: sha256sum ["/mnt/storage/private/annex/.git/annex/tmp/2-08 Hold On Loosely584.mp3"]+[2013-07-22 14:53:15 EDT] Transferrer: Transferring: Upload UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06" music/Rock/Aerosmith/A Little South of Sanity/._2-10 What It Takes.mp3 Nothing+[2013-07-22 14:53:15 EDT] chat: git ["--git-dir=/mnt/storage/private/annex/.git","--work-tree=/mnt/storage/private/annex","hash-object","-t","blob","-w","--stdin","--no-filters"]+[ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/._6-11 Kyrie.mp3 201(checksum...) 3-07-22 14:53:15 EDT] TransferWatcher: transfer starting: Upload UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06" music/Rock/Aerosmith/A Little South of Sanity/._2-10 What It Takes.mp3 Nothing+[2013-07-22 14:53:36 EDT] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06", transferKey = Key {keyName = "a8ddf79be61cf4a5ab3c7c8e95d8c259ceb102410dff50eb1260e7d818f8c5a8.mp3", keyBackendName = "SHA256E", keySize = Just 70, keyMtime = Nothing}}+[2013-07-22 14:53:36 EDT] chat: git ["--git-dir=/mnt/storage/private/annex/.git","--work-tree=/mnt/storage/private/annex","hash-object","-t","blob","-w","--stdin","--no-filters"]+ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/._5-03 I'm So Excited.mp3 (checksum...) [2013-07-22 14:53:56 EDT] chat: git ["--git-dir=/mnt/storage/private/annex/.git","--work-tree=/mnt/storage/private/annex","hash-object","-t","blob","-w","--stdin","--no-filters"]+[2013ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/7-20 Roam.mp3 -07-(checksum...) 22 14:53:56 EDT] TransferScanner: queued Upload UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06" music/Rock/Aerosmith/A Little South of Sanity/._2-11 Sweet Emotion.mp3 Nothing : expensive scan found missing object+[2013-07-22 14:53:56 EDT] read: sha256sum ["/mnt/storage/private/annex/.git/annex/tmp/7-20 Roam584.mp3"]+[2013-07-22 14:53:57 EDT] Transferrer: Transferring: Upload UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06" music/Rock/Aerosmith/A Little South of Sanity/._2-11 Sweet Emotion.mp3 Nothing+[2013-07-22 14:53:57 EDT] chat: git ["--git-dir=/mnt/storage/private/annex/.git","--work-tree=/mnt/storage/private/annex","hash-object","-t","blob","-w","--stdin","--no-filters"]+[2ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/._3-20 Goodbye To You.mp3 013-07(checksum...) -22 14:53:57 EDT] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06", transferKey = Key {keyName = "a8ddf79be61cf4a5ab3c7c8e95d8c259ceb102410dff50eb1260e7d818f8c5a8.mp3", keyBackendName = "SHA256E", keySize = Just 70, keyMtime = Nothing}}+[2013-07-22 14:54:17 EDT] chat: git ["--git-dir=/mnt/storage/private/annex/.git","--work-tree=/mnt/storage/private/annex","hash-object","-t","blob","-w","--stdin","--no-filters"]+ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/._7-18 Don't Worry Be Happy.mp3 (checksum...) [2013-07-22 14:54:37 EDT] chat: git ["--git-dir=/mnt/storage/private/annex/.git","--work-tree=/mnt/storage/private/annex","hash-object","-t","blob","-w","--stdin","--no-filters"]+[ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/._3-04 Rock This Town.mp3 2013-(checksum...) 07-22 14:54:37 EDT] TransferScanner: queued Upload UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06" music/Rock/Aerosmith/A Little South of Sanity/1-01 Eat The Rich.mp3 Nothing : expensive scan found missing object+[2013-07-22 14:54:57 EDT] Transferrer: Transferring: Upload UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06" music/Rock/Aerosmith/A Little South of Sanity/1-01 Eat The Rich.mp3 Nothing+[2013-07-22 14:54:57 EDT] chat: git ["--git-dir=/mnt/storage/private/annex/.git","--work-tree=/mnt/storage/private/annex","hash-object","-t","blob","-w","--stdin","--no-filters"]+ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/._7-13 Since You've Been Gone.mp3 [2013-(checksum...) 07-22 14:54:57 EDT] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06", transferKey = Key {keyName = "2cb6e7b6ee77f9f98e01e942185265dfe18868503e93d78201485672e6939ab7.mp3", keyBackendName = "SHA256E", keySize = Just 6354105, keyMtime = Nothing}}+[2013-07-22 14:55:18 EDT] chat: git ["--git-dir=/mnt/storage/private/annex/.git","--work-tree=/mnt/storage/private/annex","hash-object","-t","blob","-w","--stdin","--no-filters"]+ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/._2-09 Believe It Or Not (Theme From _Greatest American Hero_).mp3 (checksum...) [2013-07-22 14:55:38 EDT] chat: git ["--git-dir=/mnt/storage/private/annex/.git","--work-tree=/mnt/storage/private/annex","hash-object","-t","blob","-w","--stdin","--no-filters"]+[ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/7-14 Only In My Dreams.mp3 2013(checksum...) -07-22 14:55:38 EDT] TransferScanner: queued Upload UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06" music/Rock/Aerosmith/A Little South of Sanity/1-02 Love In An Elevator.mp3 Nothing : expensive scan found missing object+[2013-07-22 14:55:38 EDT] read: sha256sum ["/mnt/storage/private/annex/.git/annex/tmp/7-14 Only In My Dreams584.mp3"]+[2013-07-22 14:55:38 EDT] Transferrer: Transferring: Upload UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06" music/Rock/Aerosmith/A Little South of Sanity/1-02 Love In An Elevator.mp3 Nothing+[2013-07-22 14:55:38 EDT] chat: git ["--git-dir=/mnt/storage/private/annex/.git","--work-tree=/mnt/storage/private/annex","hash-object","-t","blob","-w","--stdin","--no-filters"]+[2013-ok+add music/Pop/Various/Like, Omigod! The 80s Pop Culture Box (totally)/._4-08 Talking In Your Sleep.mp3 07-2(checksum...) 2 14:55:38 EDT] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID "8dbe75a4-b065-46fd-99f7-22599b2eaf06", transferKey = Key {keyName = "7cd4b9aefb99f044c5f3b24e9890f45673a63ada3b71e7399e17eb1d710ea0f6.mp3", keyBackendName = "SHA256E", keySize = Just 7181660, keyMtime = Nothing}}++# End of transcript or log.+"""]]
+ doc/bugs/__96__git_annex_fix__96___run_on_non-annexed_files_is_no-op.mdwn view
@@ -0,0 +1,12 @@+### Please describe the problem.++`git annex fix` only works on files that have been annexed, already.+While that's a safety measure of course, an option like `--force` or similar would be nice if one is shuffling around data by hand.++### What steps will reproduce the problem?++Please see [[bugs/__96__git_annex_add__96___changes_mtime_if_symlinks_are_fixed_in_the_background/]] for details; I didn't want to spam exactly the same output twice.++### What version of git-annex are you using? On what operating system?++git-annex 4.20130709 on Debian unstable i386 and x64.
+ doc/bugs/assistant_syncs_with_remotes_even_when_all_remotes_disabled.mdwn view
@@ -0,0 +1,29 @@+### Please describe the problem.++I migrated a repo I set up by hand on my Android phone to use the assistant and webapp. That repo has two remotes, both full git-annex repos over SSH. I still want to control when I synchronize (cellular data is precious), so the vast majority of the time I disable syncing on both remotes. However, when I return to the webapp after it's been running for "a while," it shows a status message indicating it has synced with the remotes.++It looks like it might be related to the NetWatcherFallback, because a NetWatcherFallback entry appears in the log approximately every hour, followed by the usual repo sync output.++### What steps will reproduce the problem?++1. Set up a repo with a git-annex over SSH remote, and set annex-sync on that remote to false.+2. Run the webapp.+3. Observe after a period of time that the webapp shows that the repo has been synced.++### What version of git-annex are you using? On what operating system?++git-annex 20130709 on Android (4.2)++### Please provide any additional information below.++[[!format sh """+[2013-07-22 22:50:31 MST] NetWatcherFallback: Syncing with sigsegv, sigusr1+Everything up-to-date+Everything up-to-date+[2013-07-22 23:52:57 MST] NetWatcherFallback: Syncing with sigsegv, sigusr1+Everything up-to-date+Everything up-to-date+[2013-07-23 00:54:15 MST] NetWatcherFallback: Syncing with sigsegv, sigusr1+Everything up-to-date+Everything up-to-date+"""]]
+ doc/bugs/cannot_connect_to_xmpp_server.mdwn view
@@ -0,0 +1,32 @@+I cannot get the assistant to connect to my jabber account, db48x@db48x.net. I get the message stating that it may take a minute, which is never updated. At the very least I would expect some sort of error message.++I get the same symptoms if I connect to an account @gmail.com, but type in the wrong password. If I put in the correct password, it connects quite quickly.++### What version of git-annex are you using? On what operating system?++[[!format txt """+[db48x@celebdil ~]$ git annex version+git-annex version: 4.20130709+build flags: Assistant Webapp Pairing Testsuite S3 WebDAV Inotify DBus XMPP DNS+[db48x@celebdil ~]$ uname -a+Linux celebdil 3.9.9-201.fc18.x86_64 #1 SMP Fri Jul 5 16:42:02 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux+"""]]++(Fedora 18)++I get exactly the same behavior on my phone, which is running Android 4.1.2+++### Please provide any additional information below.++[[!format txt """+[db48x@celebdil books]$ cat .git/annex/daemon.log+[2013-07-20 16:21:28 PDT] main: starting assistant version 4.20130709+(scanning...) [2013-07-20 16:21:28 PDT] Watcher: Performing startup scan+(started...) +"""]]++> Closing this bug, since it's not something I can fix in git-annex,+> but would have to be dealt with in the haskell XMPP library. +> Which seems unlikely given John's reply, but you never know --+> and the bug I filed is still open ;) [[done]] --[[Joey]]
+ doc/bugs/git_annex_add_removes_file_with_no_data_left.mdwn view
@@ -0,0 +1,103 @@+### Please describe the problem.+Using git-annex from Debian (4.20130709), I attempted to add a 410M file named `Expressionlessm.tar`. It acted like it succeeded, but the link it created was broken. Other files would add correctly.++### What steps will reproduce the problem?+I can reliably cause the file to be removed and replaced with a dangling symlink by doing `git annex add Expressionlessm.tar`. The "addition" completes much faster than normal. Using the old version of git-annex that Ubuntu provides (3.20131112ubuntu4), the file adds correctly in at least one place it was having issues.++### What version of git-annex are you using? On what operating system?+I'm using the version of git-annex from Debian Sid on Ubuntu 13.04 (perhaps that's my issue?)++### Please provide any additional information below.++[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log++andrew@andrew-desktop:/media/MainStore/Projects$ git status+# On branch master+# Untracked files:+#   (use "git add <file>..." to include in what will be committed)+#+==========Snip!=================+nothing added to commit but untracked files present (use "git add" to track)++++andrew@andrew-desktop:/media/MainStore/Projects$ ls+==========Snip!=================+Expressionlessm.tar+Expressionlessm.tar.bkup+==========Snip!=================++++andrew@andrew-desktop:/media/MainStore/Projects$ tar tf Expressionlessm.tar +Expressionlessm/+==========Snip!=================+# Tar file is valid at this point+++andrew@andrew-desktop:/media/MainStore/Projects$ git annex add Expressionlessm.tar+add Expressionlessm.tar ok+(Recording state in git...)++++andrew@andrew-desktop:/media/MainStore/Projects$ ls+==========Snip!=================+Expressionlessm.tar+Expressionlessm.tar.bkup+==========Snip!=================++++andrew@andrew-desktop:/media/MainStore/Projects$ ls -l+==========Snip!=================+lrwxrwxrwx 1 andrew andrew       109 Jul 12 02:29 Expressionlessm.tar -> ../.git/annex/objects/vk/mF/SHA256-s3131909--a2808d850ba2e880ac58bf622cd68edd7e72ea2775b984d52b5d5266c43b03f0+-rw-rw-r-- 1 andrew andrew 428759040 Jul 10 20:30 Expressionlessm.tar.bkup+==========Snip!=================++++andrew@andrew-desktop:/media/MainStore/Projects$ tar tf Expressionlessm.tar +tar: Expressionlessm.tar: Cannot open: No such file or directory+tar: Error is not recoverable: exiting now+++=================================================================+W O R K I N G   V E R S I O N+This is what it looks like when the add works.+=================================================================+andrew@andrew-desktop:/media/MainStore/Projects$ cp Expressionlessm.tar.bkup Expressionlessm.tar+andrew@andrew-desktop:/media/MainStore/Projects$ git annex add Expressionlessm.tar+add Expressionlessm.tar (checksum...) ok+(Recording state in git...)+andrew@andrew-desktop:/media/MainStore/Projects$ git status+# On branch master+# Changes to be committed:+#   (use "git reset HEAD <file>..." to unstage)+#+#	new file:   Expressionlessm.tar+#+# Untracked files:+==========Snip!=================++++andrew@andrew-desktop:/media/MainStore/Projects$ ls -l+==========Snip!=================+lrwxrwxrwx 1 andrew andrew       195 Jul 12 02:20 Expressionlessm.tar -> ../.git/annex/objects/3v/Z7/SHA256-s428759040--133040f7b9d34ebce235aa24a0a16ab72af8f70e7a0722810d873815a2338eb2/SHA256-s428759040--133040f7b9d34ebce235aa24a0a16ab72af8f70e7a0722810d873815a2338eb2+-rw-rw-r-- 1 andrew andrew 428759040 Jul 10 20:30 Expressionlessm.tar.bkup+==========Snip!=================+# Notice the link target is different this time.+++# End of transcript or log.+"""]]++> [[done]]; this bug is now prevented on several levels.+> +> BTW, the earlier behavior where it didn't even make a valid .git/annex/objects/+> symlink is also explained by this bug I've fixed. It pulled a truncated+> link out of the tarball, and used that.+> --[[Joey]] 
+ doc/bugs/git_annex_content_fails_with_a_parse_error.txt view
@@ -0,0 +1,32 @@+### Please describe the problem.++I tried to use git annex content, but that failed with a parse error.+++### What steps will reproduce the problem?++Type this anywhere: ++git annex --debug content . "exclude(foo.ml)"+content . git-annex: Parse error: Parse failure: near "foo.ml"++It fails with the example of the man page:+   git annex content . "include(*.mp3) or include(*.ogg)"++However, it works when trying: git annex content . "include()".++### What version of git-annex are you using? On what operating system?++git-annex version: 4.20130709.1, ubuntu quantal++### Please provide any additional information below.++[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log+++# End of transcript or log.+"""]]++> Fixed the example, thanks. --[[Joey]] [[done]]
+ doc/bugs/git_annex_doesn__39__t_work_in_Max_OS_X_10.9.mdwn view
@@ -0,0 +1,218 @@+### Please describe the problem.+git-annex crashes on Max OS X 10.9 at startup++### What steps will reproduce the problem?+- install Mac OS X 10.9 developer preview+- download and install the latest git-annex from here http://downloads.kitenet.net/git-annex/OSX/current/10.8.2_Mountain_Lion/ (I tried with the 10.8 version)+- attempt to start it, see it crashing++### What version of git-annex are you using? On what operating system?+- latest version that is available for 10.8, on 10.9 DP 2++### Please provide any additional information below.++I see the following in Console: ++15.07.2013 21:20:49,362 com.apple.launchd.peruser.501[259]: (com.branchable.git-annex.103872[67263]) Exited with code: 133+15.07.2013 21:20:49,546 ReportCrash[67272]: Saved crash report for git-annex[67268] version ??? to /Users/stelianiancu/Library/Logs/DiagnosticReports/git-annex_2013-07-15-212049_poseidon-2.crash++And the crash is as follows:++Process:         git-annex [67268]+Path:            /Applications/git-annex.app/Contents/MacOS/bundle/git-annex+Identifier:      git-annex+Version:         ???+Code Type:       X86-64 (Native)+Parent Process:  sh [67263]+Responsible:     sh [67263]+User ID:         501++Date/Time:       2013-07-15 21:20:48.946 +0200+OS Version:      Mac OS X 10.9 (13A497d)+Report Version:  11+Anonymous UUID:  634E8812-1F1A-11E0-61DA-7527061A194C++Sleep/Wake UUID: AFC18477-57D2-4B69-8B0F-AE26BC3D9D0C++Crashed Thread:  0++Exception Type:  EXC_BREAKPOINT (SIGTRAP)+Exception Codes: 0x0000000000000002, 0x0000000000000000++Application Specific Information:+dyld: launch, loading dependent libraries++Dyld Error Message:+  Symbol not found: _objc_debug_taggedpointer_mask+  Referenced from: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation+  Expected in: /Applications/git-annex.app/Contents/MacOS/bundle/I+ in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation++Binary Images:+       0x104412000 -        0x10450fff7 +E (22.3) <47B09CB2-C636-3024-8B55-6040F7829B4C> /Applications/git-annex.app/Contents/MacOS/bundle/E+       0x104547000 -        0x10455bfff +F (0) <FA90B1B1-A866-3A6C-BB97-06955F4C8C0B> /Applications/git-annex.app/Contents/MacOS/bundle/F+       0x104567000 -        0x104594ff7 +G (0) <E276B5C2-6FAC-36A7-940B-7A75322F71AE> /Applications/git-annex.app/Contents/MacOS/bundle/G+       0x10459c000 -        0x104669fdf +H (0) <29C3AFF5-8EFB-3A16-81F6-0DA6CF2675A6> /Applications/git-annex.app/Contents/MacOS/bundle/H+       0x104699000 -        0x1046abff7 +B (43) <2A1551E8-A272-3DE5-B692-955974FE1416> /Applications/git-annex.app/Contents/MacOS/bundle/B+       0x1046b1000 -        0x1047a6fff +D (34) <FEE8B996-EB44-37FA-B96E-D379664DEFE1> /Applications/git-annex.app/Contents/MacOS/bundle/D+       0x1047b7000 -        0x1048cf92f +I (532.2) <90D31928-F48D-3E37-874F-220A51FD9E37> /Applications/git-annex.app/Contents/MacOS/bundle/I+       0x1048f6000 -        0x104af6fff +S (491.11.3) <5783D305-04E8-3D17-94F7-1CEAFA975240> /Applications/git-annex.app/Contents/MacOS/bundle/S+       0x104c06000 -        0x104c2bff7 +Z (26) <D86169F3-9F31-377A-9AF3-DB17142052E4> /Applications/git-annex.app/Contents/MacOS/bundle/Z+       0x104c5e000 -        0x104cc6ff7 +0A (65.1) <20E31B90-19B9-3C2A-A9EB-474E08F9FE05> /Applications/git-annex.app/Contents/MacOS/bundle/0A+       0x104d21000 -        0x104d8afff +0B (56) <EAA2B53E-EADE-39CF-A0EF-FB9D4940672A> /Applications/git-annex.app/Contents/MacOS/bundle/0B+       0x104df3000 -        0x104e06fff +T (0) <DB28CA35-537D-3644-A6BE-179D1A1E9785> /Applications/git-annex.app/Contents/MacOS/bundle/T+       0x104e0e000 -        0x104e1bff7 +U (0) <DCFF385A-090B-3407-868C-91544A2EFEE1> /Applications/git-annex.app/Contents/MacOS/bundle/U+       0x104e1f000 -        0x104e41ff7 +V (0) <51B317C7-94CC-3C58-B515-924BB3AF0BCC> /Applications/git-annex.app/Contents/MacOS/bundle/V+       0x104e4e000 -        0x104e5bff7 +W (0) <91CF16BE-027F-3FE6-B1EE-6B8BFD51FC1B> /Applications/git-annex.app/Contents/MacOS/bundle/W+       0x104e68000 -        0x104ec4fd7 +X (0) <84D934AF-A321-36C0-BBCF-CD3FDAEB0B95> /Applications/git-annex.app/Contents/MacOS/bundle/X+    0x7fff6ca9d000 -     0x7fff6cad04a7  dyld (237) <BB7160C2-117E-3369-87F0-866ED454490E> /usr/lib/dyld+    0x7fff8ba5b000 -     0x7fff8ba5dfff  libCVMSPluginSupport.dylib (9.0.74) <11FCA581-0FFD-37B1-966A-E47F4722D297> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib+    0x7fff8c053000 -     0x7fff8c05affb  liblaunch.dylib (842.1.1) <7055DF9E-52CE-3746-96EB-3718DDBF0BD0> /usr/lib/system/liblaunch.dylib+    0x7fff8c11d000 -     0x7fff8c41cff7  com.apple.Foundation (6.9 - 1042) <CE00D0BB-1053-3EA0-A31F-C9F1E3FEFBF2> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation+    0x7fff8c41d000 -     0x7fff8c444ff7  libsystem_network.dylib (241.3) <D518703F-4C71-3CC5-99EF-A15C8F41A834> /usr/lib/system/libsystem_network.dylib+    0x7fff8c445000 -     0x7fff8c47eff7  com.apple.QD (3.49 - 297) <EE1DD6BE-5881-35C7-A9E8-30CCB26E6CF3> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD+    0x7fff8c483000 -     0x7fff8c864ffe  libLAPACK.dylib (1094.4) <19E25957-74BA-3770-AAB5-B6A05F19BDC2> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib+    0x7fff8c8bc000 -     0x7fff8c8cbff8  com.apple.LangAnalysis (1.7.0 - 1.7.0) <ED300EBD-7AEF-34B4-B314-DFBD648214E1> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis+    0x7fff8c8cc000 -     0x7fff8c8d9ff7  libxar.1.dylib (202) <E0BFCC9B-89D4-3F42-8460-4918573EFCA1> /usr/lib/libxar.1.dylib+    0x7fff8c8da000 -     0x7fff8cbaaff4  com.apple.CoreImage (9.0.33) <8BB17AEC-D09A-3173-8767-7DB5C982670E> /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/CoreImage.framework/Versions/A/CoreImage+    0x7fff8cbab000 -     0x7fff8cbabff7  libkeymgr.dylib (28) <AB6DE146-DDC4-397B-9182-ECE54FCDF5D7> /usr/lib/system/libkeymgr.dylib+    0x7fff8d095000 -     0x7fff8d09eff7  com.apple.speech.synthesis.framework (4.5.3 - 4.5.3) <B4B4F401-701F-3A6E-AB39-65BDBB9F3FA0> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis+    0x7fff8d21a000 -     0x7fff8d274ff8  com.apple.AE (665.2 - 665.2) <DB39E7DF-E5EA-3D5C-81A5-1BA2159A2694> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE+    0x7fff8d2fb000 -     0x7fff8d342ff7  libcups.2.dylib (365) <49F3E642-D748-3A60-AF51-F9E90F65C543> /usr/lib/libcups.2.dylib+    0x7fff8d343000 -     0x7fff8d350ff0  libbz2.1.0.dylib (29) <C1100E81-9C9D-3E4E-B238-F4015BB35B15> /usr/lib/libbz2.1.0.dylib+    0x7fff8d489000 -     0x7fff8d489fff  com.apple.Accelerate (1.9 - Accelerate 1.9) <94C28250-6BDB-30AD-B157-995D9C34A6FA> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate+    0x7fff8d75b000 -     0x7fff8d7a8fff  com.apple.opencl (2.3.50 - 2.3.50) <33C1EC76-02A2-3474-BB9D-8F77B96E57CC> /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL+    0x7fff8dd58000 -     0x7fff8dd5dff7  libunwind.dylib (35.3) <838CE69D-44F1-305C-8FA5-5E439D217F78> /usr/lib/system/libunwind.dylib+    0x7fff8dd5e000 -     0x7fff8dd61fff  libCoreVMClient.dylib (58.1) <331C429A-3AE5-30B8-A4DE-1BF4EE4D8FA6> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib+    0x7fff8de3e000 -     0x7fff8de3fff7  libDiagnosticMessagesClient.dylib (100) <B28C426E-E826-3EC3-80AD-E69F2EABE46B> /usr/lib/libDiagnosticMessagesClient.dylib+    0x7fff8de40000 -     0x7fff8de6ffff  com.apple.DebugSymbols (106 - 106) <545E5A48-3516-3398-A33D-D6FB4FED4B7B> /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols+    0x7fff8e4b2000 -     0x7fff8e500fff  libcorecrypto.dylib (161) <56048D2C-3668-3E15-AF02-5C5A377320F6> /usr/lib/system/libcorecrypto.dylib+    0x7fff8e501000 -     0x7fff8e5c7ff7  com.apple.LaunchServices (572.3 - 572.3.1) <39618733-CC97-3991-BD3B-485BD7247115> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices+    0x7fff8e5ca000 -     0x7fff8e5caffd  libOpenScriptingUtil.dylib (154) <9B8CECA0-360D-3C6D-A37D-95EE34AE2B16> /usr/lib/libOpenScriptingUtil.dylib+    0x7fff8e9ac000 -     0x7fff8e9b4ff7  com.apple.speech.recognition.framework (4.2.4 - 4.2.4) <1CE37DE8-BA4A-30CD-A802-18DAF42C328F> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition+    0x7fff8ea01000 -     0x7fff8ea65ff6  com.apple.Heimdal (4.0 - 2.0) <463F41AC-39FF-30FC-B03A-4198E7A9321F> /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal+    0x7fff8ea66000 -     0x7fff8ea6efff  libsystem_dnssd.dylib (522.1.3) <29695A12-75FC-36EE-97AC-179F6E9DA419> /usr/lib/system/libsystem_dnssd.dylib+    0x7fff8eb28000 -     0x7fff8eb33fff  libGL.dylib (9.0.74) <2DB19533-5983-3F59-93F3-2761DA6EEDA5> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib+    0x7fff8eb37000 -     0x7fff8eb43ff3  com.apple.AppleFSCompression (56 - 1.0) <D80DF0B8-AC14-3686-9242-9750D6A8B8D3> /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression+    0x7fff8eb44000 -     0x7fff8f44a043  com.apple.CoreGraphics (1.600.0 - 565) <81F84822-675E-3466-97A7-6FF69DF569E3> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics+    0x7fff8f44b000 -     0x7fff8f461fff  com.apple.CFOpenDirectory (10.9 - 171) <A650D21D-D825-3C4E-AA2E-1218F8A5048E> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory+    0x7fff9003c000 -     0x7fff900c5fe7  libsystem_c.dylib (997) <5BAB0B09-A39E-39B9-9552-48B540B3ABD0> /usr/lib/system/libsystem_c.dylib+    0x7fff9088e000 -     0x7fff908b2fff  libJPEG.dylib (1029) <D161F451-9A14-31DD-83D8-C475F8576ACF> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib+    0x7fff908b3000 -     0x7fff908f7ffe  com.apple.HIServices (1.22 - 454) <3625AF2C-1965-349D-B831-1FCC9084B675> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices+    0x7fff908f8000 -     0x7fff90bc7fdf  com.apple.vImage (7.0 - 7.0) <C50F8737-E292-3D53-9AF7-F76797A1DDDD> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage+    0x7fff90ce8000 -     0x7fff90d03ff7  libsystem_kernel.dylib (2422.1.26.0.1) <5F99677C-C760-3877-AFF7-F60B5ECE365E> /usr/lib/system/libsystem_kernel.dylib+    0x7fff90d04000 -     0x7fff90d77ffb  com.apple.securityfoundation (6.0 - 55122) <A946CA5A-1396-3467-94B1-E6A8FA0347FC> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation+    0x7fff90e98000 -     0x7fff91034fff  com.apple.QuartzCore (1.8 - 329.0) <08CE1885-71E8-3A38-AEB6-4BBB1A43785F> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore+    0x7fff91035000 -     0x7fff91050ff7  libPng.dylib (1029) <AB7D23B2-CB41-3108-A19E-9F7BA6F37178> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib+    0x7fff910c3000 -     0x7fff9113aff7  com.apple.CoreServices.OSServices (600 - 600) <73820122-62D4-359C-9312-CD49FCEDFE09> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices+    0x7fff9115a000 -     0x7fff911e5fff  com.apple.Metadata (10.7.0 - 778.1) <93F05A4E-6581-3CD5-8697-84783CEBF764> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata+    0x7fff9139d000 -     0x7fff913a4ff3  libcopyfile.dylib (103) <54DD5730-3F05-3F18-B55C-24EA9546286F> /usr/lib/system/libcopyfile.dylib+    0x7fff9152c000 -     0x7fff91530ff7  libheimdal-asn1.dylib (323.3) <90100758-0CC6-3D00-90AB-D3C7DC8CCE45> /usr/lib/libheimdal-asn1.dylib+    0x7fff9193c000 -     0x7fff91947fff  libkxld.dylib (2422.1.26.0.1) <CF43FD8E-E8FE-34F7-A3B1-286530AA9EFD> /usr/lib/system/libkxld.dylib+    0x7fff9194e000 -     0x7fff91950ff7  libquarantine.dylib (69) <1776AABC-F1D7-3CB0-B698-B0C70D4E535B> /usr/lib/system/libquarantine.dylib+    0x7fff91951000 -     0x7fff9195efff  com.apple.Sharing (112 - 112) <24BA2112-4FFB-318A-B881-93FEB4648371> /System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing+    0x7fff919fb000 -     0x7fff91a02ff7  libsystem_pthread.dylib (53) <2160EC74-26FC-32CE-8161-B1A72D2B09B0> /usr/lib/system/libsystem_pthread.dylib+    0x7fff91a03000 -     0x7fff91a2cfff  com.apple.DictionaryServices (1.2 - 197) <862F498E-3CB7-3087-BB07-AC185D5D08F8> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices+    0x7fff91a3c000 -     0x7fff91b04ff7  libvDSP.dylib (423.29) <72A38066-D6F5-38EC-A8B9-0D025AFC6E2B> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib+    0x7fff91b05000 -     0x7fff91b43ff7  libGLImage.dylib (9.0.74) <0DD99DA1-A8E7-3309-8DED-A2AB410E59C8> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib+    0x7fff92ade000 -     0x7fff92b00fff  libxpc.dylib (300.1.4) <4F832032-9709-3E80-91C4-71914C67A32B> /usr/lib/system/libxpc.dylib+    0x7fff92b01000 -     0x7fff92b04ff7  libdyld.dylib (237) <EA2A0414-849F-3976-BA4E-A93D3206ECE5> /usr/lib/system/libdyld.dylib+    0x7fff92b05000 -     0x7fff92b05fff  com.apple.ApplicationServices (48 - 48) <21188B7D-50E8-3C28-A15E-5345AE7BAFBB> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices+    0x7fff92b08000 -     0x7fff92b6cff7  com.apple.datadetectorscore (5.0 - 343.0) <7FE14856-0C85-3382-AD6C-1B9E21C276CB> /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore+    0x7fff92b6d000 -     0x7fff92b6fff3  libsystem_configuration.dylib (596.1) <1E0FDEA3-8822-3E80-AA0D-57D0F4E30E2E> /usr/lib/system/libsystem_configuration.dylib+    0x7fff92e00000 -     0x7fff92e53fff  com.apple.ScalableUserInterface (1.0 - 1) <A82F7DD8-1C79-3872-96D1-875B4ED121D4> /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/ScalableUserInterface.framework/Versions/A/ScalableUserInterface+    0x7fff92e72000 -     0x7fff92e73fff  libunc.dylib (28) <53C7CED6-55F5-3121-B00E-4339C29297C8> /usr/lib/system/libunc.dylib+    0x7fff92e91000 -     0x7fff92f53ff9  com.apple.CoreText (352.0 - 367.6) <CAFF0767-3351-3FE3-843F-6EA65B8264C8> /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText+    0x7fff934c7000 -     0x7fff934e2ff7  libCRFSuite.dylib (34) <E2353929-97B1-356A-84A0-CC650BC734D5> /usr/lib/libCRFSuite.dylib+    0x7fff934e3000 -     0x7fff93508ffb  com.apple.CoreVideo (1.8 - 117.0) <50587BF1-D111-3D49-9DAB-8F86B5E95808> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo+    0x7fff93509000 -     0x7fff93522ff7  com.apple.Kerberos (3.0 - 1) <13DDC487-95C0-379F-BD7F-E0FC5F5922D3> /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos+    0x7fff93523000 -     0x7fff935a2fff  com.apple.CoreSymbolication (3.0 - 137) <85C4F6E2-5039-3E53-9AB2-6D65CAC9AAC5> /System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication+    0x7fff935a3000 -     0x7fff935bdfff  libsystem_malloc.dylib (23.1.1) <FBCF2C62-AA8D-322E-859E-B5D90C610A3F> /usr/lib/system/libsystem_malloc.dylib+    0x7fff935bf000 -     0x7fff93600ff7  com.apple.PerformanceAnalysis (1.45 - 45) <6C498B15-45DB-362F-983B-764ECC9B8E21> /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis+    0x7fff9360f000 -     0x7fff93618ff3  libsystem_notify.dylib (121) <D34E9B17-297F-3C3F-BD16-69D1D9495B79> /usr/lib/system/libsystem_notify.dylib+    0x7fff93619000 -     0x7fff9362bff7  com.apple.MultitouchSupport.framework (245.12 - 245.12) <06CAA8FB-BEC6-3EF1-96FA-3D8A1EEB0959> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport+    0x7fff9367e000 -     0x7fff9368efff  libbsm.0.dylib (33) <65C2FC5C-4B4B-3C1B-B935-D67A3BF96A79> /usr/lib/libbsm.0.dylib+    0x7fff937f6000 -     0x7fff937fafff  libpam.2.dylib (20) <17E3DA0D-EE71-3398-BA30-BDD8514A6135> /usr/lib/libpam.2.dylib+    0x7fff93aea000 -     0x7fff93aedfff  libsystem_stats.dylib (93.1.8.1.1) <CAC30E07-CE62-3536-8CD4-1A3CE44DD973> /usr/lib/system/libsystem_stats.dylib+    0x7fff93b96000 -     0x7fff93d79ff7  com.apple.CoreFoundation (6.9 - 842) <DC8875C4-DC2C-3ADC-B88B-D66722953255> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation+    0x7fff93d7a000 -     0x7fff93db9fff  libGLU.dylib (9.0.74) <294F4F86-E900-356C-9A47-0C47A929F2FB> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib+    0x7fff93dba000 -     0x7fff93e9cff7  com.apple.backup.framework (1.5 - 1.5) <70E20485-EDB6-3225-8AF6-6D9494CB98B7> /System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup+    0x7fff93edb000 -     0x7fff93ee6ff7  com.apple.NetAuth (5.0 - 5.0) <64D42204-C075-3440-8C29-BBD68A99A771> /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth+    0x7fff93ee7000 -     0x7fff93ef3fff  com.apple.OpenDirectory (10.9 - 171) <FDE80473-0ADF-363A-8111-43CAB01A3F61> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory+    0x7fff93f3a000 -     0x7fff93f48ff7  com.apple.opengl (9.0.74 - 9.0.74) <9BD0013A-E503-3DA2-9F94-C42A11D2E734> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL+    0x7fff93f56000 -     0x7fff93f85ff5  com.apple.GSS (4.0 - 2.0) <6765C9D7-8AC9-3694-B5D4-5C26B119851D> /System/Library/Frameworks/GSS.framework/Versions/A/GSS+    0x7fff943f6000 -     0x7fff943fdfff  libcompiler_rt.dylib (35) <A0A9D62C-E1A5-39A0-A38E-B0B38762002D> /usr/lib/system/libcompiler_rt.dylib+    0x7fff943fe000 -     0x7fff94404fef  libsystem_platform.dylib (24) <5D8FE8C3-2A62-3705-AB7D-FBD7C284AFBD> /usr/lib/system/libsystem_platform.dylib+    0x7fff94405000 -     0x7fff9440fff7  com.apple.CrashReporterSupport (10.9 - 529) <F3BB7C5D-0775-3A05-944A-3A061E62B107> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport+    0x7fff94428000 -     0x7fff9442bffc  com.apple.IOSurface (91 - 91) <1B7746FC-3599-3BDB-A0DA-65795C999435> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface+    0x7fff9442c000 -     0x7fff944dbff7  libvMisc.dylib (423.29) <83CBEBB6-B9C2-3D83-A32A-CED47CDB65D6> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib+    0x7fff9451b000 -     0x7fff9451cffb  libremovefile.dylib (33) <D7EF6E8B-95D8-3D8E-918C-2D3F51D00060> /usr/lib/system/libremovefile.dylib+    0x7fff9465b000 -     0x7fff94898fff  com.apple.CoreData (107 - 468) <51F9B655-84D2-3E88-991B-914C9017BB08> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData+    0x7fff948ab000 -     0x7fff948acfff  com.apple.TrustEvaluationAgent (2.0 - 25) <644D981B-A5A7-31F5-99A6-9F180B9A5DE3> /System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent+    0x7fff948ad000 -     0x7fff948d0fff  com.apple.IconServices (25 - 25.4) <525BAAE5-F45C-3A15-ACED-2AF4EFFED546> /System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices+    0x7fff948f6000 -     0x7fff94be0ff7  com.apple.CoreServices.CarbonCore (1077.6 - 1077.6) <C32B5E2A-3BD8-3D6C-A931-E05B47ECB3C9> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore+    0x7fff94be1000 -     0x7fff94c09ffb  libxslt.1.dylib (13) <33D39746-6FCD-3F32-AFAE-2E45232BF6FB> /usr/lib/libxslt.1.dylib+    0x7fff94c0a000 -     0x7fff94c14ff7  com.apple.bsd.ServiceManagement (2.0 - 2.0) <3E92DCA9-DA23-34E1-8C38-DA7488621FFB> /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement+    0x7fff94c15000 -     0x7fff94c1ffff  libcommonCrypto.dylib (60049) <FC0D70F5-E485-32E6-BFC2-1E072047282B> /usr/lib/system/libcommonCrypto.dylib+    0x7fff94c94000 -     0x7fff94d82fff  libJP2.dylib (1029) <720403F5-7863-30D6-AC09-F5A04F069E1B> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib+    0x7fff94daf000 -     0x7fff94dc8ff3  com.apple.Ubiquity (1.3 - 280) <581DAEFC-B314-3F92-93CF-7B70BF22AEEF> /System/Library/PrivateFrameworks/Ubiquity.framework/Versions/A/Ubiquity+    0x7fff95037000 -     0x7fff9513cfff  com.apple.ImageIO.framework (3.2.0 - 1029) <FEF93B49-D136-3248-B46B-C026F7E906BD> /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO+    0x7fff9513d000 -     0x7fff9526aff7  com.apple.desktopservices (1.8 - 1.8) <ACF9A2F5-6285-316E-958A-25C0AFDF3AEA> /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv+    0x7fff9526b000 -     0x7fff95273ffc  libGFXShared.dylib (9.0.74) <13A420C1-1B14-36F8-8F08-4698D423E52F> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib+    0x7fff95274000 -     0x7fff9528cff7  com.apple.GenerationalStorage (2.0 - 158) <5BCFBEED-09D2-3BD3-8EE0-85E809C47380> /System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/GenerationalStorage+    0x7fff952b3000 -     0x7fff9533cff7  com.apple.ColorSync (4.9.0 - 4.9.0) <CBF9EA13-4FC4-34D8-812A-6A37189CD09E> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync+    0x7fff95361000 -     0x7fff953baff7  libTIFF.dylib (1029) <12303E45-734B-3D6C-A5C8-1495ECBC0344> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib+    0x7fff9548c000 -     0x7fff954d9ff2  com.apple.print.framework.PrintCore (9.0 - 424) <B09BB55A-67C0-34F9-95DB-6F735842EAE5> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore+    0x7fff954e4000 -     0x7fff95547ff3  com.apple.SystemConfiguration (1.13 - 1.13) <73B50935-DFE8-31B8-8583-27A28B5A9D1E> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration+    0x7fff955ac000 -     0x7fff955c6fff  libdispatch.dylib (339.1.2) <A9C37B4E-B908-3212-BF59-CE336EC30E78> /usr/lib/system/libdispatch.dylib+    0x7fff95ca6000 -     0x7fff95ca7ff3  libSystem.B.dylib (1197) <7589D08E-9338-3E28-AA74-9734F0D51CE0> /usr/lib/libSystem.B.dylib+    0x7fff95cb3000 -     0x7fff95cfaff3  libFontRegistry.dylib (121.1) <C8BC9042-B3EA-35FB-B4D7-2B1A6E0E6AB5> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib+    0x7fff95cfb000 -     0x7fff95deafff  libFontParser.dylib (106) <16B9215D-3244-365F-910F-FA033495E3F5> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib+    0x7fff95deb000 -     0x7fff95debfff  com.apple.Cocoa (6.8 - 20) <B2519A80-93F8-3BEB-A6B2-780B0D291E89> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa+    0x7fff95e0f000 -     0x7fff95e10fff  liblangid.dylib (117) <5146A22B-088F-3D8D-B245-F03DD3CDA2B0> /usr/lib/liblangid.dylib+    0x7fff95e11000 -     0x7fff9696ffff  com.apple.AppKit (6.9 - 1240) <53CEC6E0-F928-32EC-919D-B34C0818C88C> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit+    0x7fff96970000 -     0x7fff96977fff  com.apple.NetFS (6.0 - 4.0) <553EA9F4-7B2C-371A-AF03-4B709A730582> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS+    0x7fff96978000 -     0x7fff969c8ffa  com.apple.audio.CoreAudio (4.2.0 - 4.2.0) <548AC059-62DD-3CF6-B083-CABE454AFA38> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio+    0x7fff96a12000 -     0x7fff96a7cff7  com.apple.framework.IOKit (2.0.1 - 907.1.5) <BC9D0F47-DB6F-3AD0-B38F-267E891099D0> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit+    0x7fff96add000 -     0x7fff96ae0fff  com.apple.TCC (1.0 - 1) <1DF1D216-1355-3E4F-B4BE-3E3BA5A696EB> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC+    0x7fff96ae1000 -     0x7fff96b06ff7  com.apple.ChunkingLibrary (2.0 - 154) <EBFF01E3-D26B-3031-9E4C-670303B1086A> /System/Library/PrivateFrameworks/ChunkingLibrary.framework/Versions/A/ChunkingLibrary+    0x7fff96b07000 -     0x7fff96b0bff7  libGIF.dylib (1029) <000B8500-FC82-3016-8E59-9FA0D6395F04> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib+    0x7fff96b58000 -     0x7fff96b59ff7  libsystem_blocks.dylib (63) <7836104E-39B9-31B6-A0C7-C02ACD401ADE> /usr/lib/system/libsystem_blocks.dylib+    0x7fff96db9000 -     0x7fff96db9ffd  com.apple.audio.units.AudioUnit (1.9 - 1.9) <BBAD4575-CE0A-34EF-A5AF-36CD66FF260C> /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit+    0x7fff96df6000 -     0x7fff96e07fff  libsystem_asl.dylib (217) <F8795719-7E14-3FB2-8F4D-FF814AFFB7F7> /usr/lib/system/libsystem_asl.dylib+    0x7fff96e2d000 -     0x7fff96e5cfd2  libsystem_m.dylib (3047.15) <8A6B4EC2-BB25-342B-B3FE-9585175225B8> /usr/lib/system/libsystem_m.dylib+    0x7fff96e5d000 -     0x7fff96fb3ff3  com.apple.audio.toolbox.AudioToolbox (1.9 - 1.9) <D3F44C67-987D-3955-B15F-74A27C7E59E3> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox+    0x7fff96fb4000 -     0x7fff9709ffff  libsqlite3.dylib (155) <F60CCD67-FA68-379E-9D9C-4085E06F5665> /usr/lib/libsqlite3.dylib+    0x7fff970a0000 -     0x7fff97348ff9  com.apple.HIToolbox (2.1 - 681) <F25DDDC9-D3BC-3E80-A57D-EC1FE747B40B> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox+    0x7fff97349000 -     0x7fff97383ffb  com.apple.bom (12.0 - 192) <FE625F33-643C-310A-B931-14CEBC007302> /System/Library/PrivateFrameworks/Bom.framework/Versions/A/Bom+    0x7fff97758000 -     0x7fff97759ff7  libsystem_sandbox.dylib (278.1) <F723F1D9-5561-344A-A6F0-B1373D355DBA> /usr/lib/system/libsystem_sandbox.dylib+    0x7fff977fb000 -     0x7fff977fbfff  com.apple.Accelerate.vecLib (3.9 - vecLib 3.9) <349BA8B4-1C72-30BE-B2BB-1898F51B9B5E> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib+    0x7fff97939000 -     0x7fff97aa2ff3  com.apple.CFNetwork (657 - 657) <59A9476F-19A2-3F8B-A9B0-8531EA36A4AE> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork+    0x7fff97ac9000 -     0x7fff97b20fff  com.apple.Symbolication (1.4 - 125) <C3269812-583B-3349-A675-CCCFDF3140DB> /System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication+    0x7fff97b24000 -     0x7fff97b93ff1  com.apple.ApplicationServices.ATS (360 - 360) <8A3AD47D-2777-3019-80BB-4B17AA055E13> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS+    0x7fff97c01000 -     0x7fff97c28ff3  libsystem_info.dylib (449) <B5F10962-3DA2-3557-A0B1-369BB80EA6A5> /usr/lib/system/libsystem_info.dylib+    0x7fff97d95000 -     0x7fff97e21ff7  com.apple.ink.framework (10.9 - 205) <A3B23363-D876-39CF-9290-F01520C484E3> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink+    0x7fff97e22000 -     0x7fff97f04fff  com.apple.coreui (2.1 - 224) <9F8C1983-1795-34DA-A0C1-7F126ECA0D8E> /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI+    0x7fff97f4d000 -     0x7fff97fbafff  com.apple.SearchKit (1.4.0 - 1.4.0) <EACE2CF5-06EA-3899-9208-F9914C1922BD> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit+    0x7fff98062000 -     0x7fff982b6ff0  com.apple.security (7.0 - 55377) <2F4EFC9E-DD86-32E5-A2CB-E83A5DF34F8F> /System/Library/Frameworks/Security.framework/Versions/A/Security+    0x7fff982b7000 -     0x7fff982bbff7  libcache.dylib (61) <E9CD6B70-0553-3808-87DA-D16A1A6AC3FB> /usr/lib/system/libcache.dylib+    0x7fff982bc000 -     0x7fff982c1fff  com.apple.DiskArbitration (2.6 - 2.6) <4D7487BB-C4A7-32DB-BEE2-CE55EA7F40B2> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration+    0x7fff9838e000 -     0x7fff9838efff  com.apple.CoreServices (59 - 59) <D84FB78F-0F3C-3383-AE76-4BD6E3173F7F> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices+    0x7fff983e0000 -     0x7fff98418ff7  com.apple.RemoteViewServices (2.0 - 94) <7E7B5F1F-9F0E-3DF7-B6B9-152DFD2DFFC7> /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices+    0x7fff987c8000 -     0x7fff987e4fff  libresolv.9.dylib (54) <78D891A1-6F8B-34D4-8F0D-59DB6DF53411> /usr/lib/libresolv.9.dylib+    0x7fff987e5000 -     0x7fff987eafff  libmacho.dylib (845) <0038681B-CEC4-348A-A7B8-4236C701F2F8> /usr/lib/system/libmacho.dylib+    0x7fff98802000 -     0x7fff98844ff7  libauto.dylib (185.4) <379FBDA3-DB2A-35A3-A637-3893C0F0E52F> /usr/lib/libauto.dylib+    0x7fff9890a000 -     0x7fff98d3dff7  com.apple.vision.FaceCore (3.0.0 - 3.0.0) <14255DCC-80BD-3690-9269-057D175A9FC5> /System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore+    0x7fff98d66000 -     0x7fff98ed4ff7  libBLAS.dylib (1094.4) <80E99B02-BD2D-3D88-97B6-0BE2D8973633> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib+    0x7fff98f6b000 -     0x7fff98f6dfff  libRadiance.dylib (1029) <4E13C7E9-9B17-33D3-9142-B645B5BBCCD6> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib+    0x7fff98f6e000 -     0x7fff98f77ffe  com.apple.CommonAuth (4.0 - 2.0) <3918EBA0-A124-37DC-9BA6-4D1370AF03A8> /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth++ ++[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log+++# End of transcript or log.+"""]]
+ doc/bugs/git_annex_uninit_loses_content_when_interrupted.mdwn view
@@ -0,0 +1,33 @@+### Please describe the problem.++When git annex uninit is interrupted, git status shows++# On branch master+# Changes to be committed:+#   (use "git reset HEAD <file>..." to unstage)++deleted:    file1++file1 is the file that was being processed at the time of the interrupt.++### What steps will reproduce the problem?++git annex uninit++Ctrl-C++### What version of git-annex are you using? On what operating system?++4.20130709++### Please provide any additional information below.++[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log+++# End of transcript or log.+"""]]++> [[done]]; see my comment --[[Joey]]
+ doc/bugs/git_annex_uninit_removes_files_not_previously_added_to_annex.mdwn view
@@ -0,0 +1,32 @@+### Please describe the problem.++Suppose there are files not added/committed to git annex.+Once git annex uninit is complete, these files are deleted.++### What steps will reproduce the problem?++cp big-file annex-dir;+cd annex-dir;+git annex uninit++...+big-file is gone++### What version of git-annex are you using? On what operating system?++4.20130709+Linux Ubuntu 13.04++### Please provide any additional information below.++[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log+++# End of transcript or log.+"""]]++[[!tag moreinfo]]++> [[done]]; unreproducible by anyone. --[[Joey]]
+ doc/bugs/git_annex_webapp_--listen_on_a_remote_linux_server.mdwn view
@@ -0,0 +1,50 @@+### Please describe the problem.++webapp needs to be killed and restarted to finish setting up a new repository++### What steps will reproduce the problem?++I run on a remote linux server++git annex webapp --listen=10.222.0.1:4000++I get a url printed++click the url, it opens in my browser+click make a repository, and it doesn't finish loading the web page+if I ctrl-c git on the remote server and start it up again, click+the url again, i can continue to set up the new repository+++### What version of git-annex are you using? On what operating system?++git-annex version: 4.20130709+build flags: Assistant Webapp Pairing Testsuite S3 WebDAV Inotify DBus XMPP++debian wheezy with git-annex pinned from sid++### Please provide any additional information below.++[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log++[2013-07-19 08:09:54 EST] main: starting assistant version 4.20130709+WebApp crashed: unable to bind to local socket+[2013-07-19 08:09:54 EST] WebApp: warning WebApp crashed: unable to bind to local socket++  dbus failed; falling back to mtab polling (ClientError {clientErrorMessage = "runClient: unable to determine DBUS address", clientErrorFatal = True})++  No known network monitor available through dbus; falling back to polling+(scanning...) [2013-07-19 08:09:54 EST] Watcher: Performing startup scan+(started...) Merge made by the 'recursive' strategy.+ ...book.azw |    1 ++ 1 file changed, 1 insertion(+)+ create mode 120000 Books/book.azw+[2013-07-19 08:13:03 EST] Committer: Committing changes to git+++# End of transcript or log.+"""]]++> Duplicate; [[closed|done]]. --[[Joey]]
+ doc/bugs/googlemail.mdwn view
@@ -0,0 +1,15 @@+### Please describe the problem.+Git-Annex crashes when configuring jabber account with foo.bar@googlemail.com++### What steps will reproduce the problem?+Configure the Jabber Account with foo.bar@googlemail.com instead of foo.bar@gmail.com. The domain googlemail was used for a long time in germany because of a license issue. ++### What version of git-annex are you using? On what operating system?+Mac OS X - 10.8.3 Mountain Lion++Version: 4.20130709-g18e5f43 ++Build flags: Assistant Webapp Pairing Testsuite S3 WebDAV FsEvents XMPP DNS+++
+ doc/bugs/gpg_hangs_on_glacier_remote_creation.mdwn view
@@ -0,0 +1,76 @@+### Please describe the problem.+when attempting to create a glacier special remote one of the gpg sub-commands hangs without returning.++### What steps will reproduce the problem?+I'm not sure what will reproduce this issue. I recently upgraded from the apt-get version of git-annex (version 3) to the cabal version (version 4 shown below), but I'm not sure if that is relevant at all).++### What version of git-annex are you using? On what operating system?++git version: 1.7.9.5++(git annex was installed using cabal)+[[!format sh """+$> git-annex version+git-annex version: 4.20130709+build flags: Testsuite S3 Inotify DBus+local repository version: 3+default repository version: 3+supported repository versions: 3 4+upgrade supported from repository versions: 0 1 2+"""]]++OS version:++12.04.2 LTS, Precise Pangolin++GPG version:++[[!format sh """+$> gpg --version+gpg (GnuPG) 1.4.11+Copyright (C) 2010 Free Software Foundation, Inc.+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>+This is free software: you are free to change and redistribute it.+There is NO WARRANTY, to the extent permitted by law.++Home: ~/.gnupg+Supported algorithms:+Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA+Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128,+        CAMELLIA192, CAMELLIA256+Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224+Compression: Uncompressed, ZIP, ZLIB, BZIP2+"""]]++### Please provide any additional information below.++[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log++$> git annex initremote glacier type=glacier encryption=annex-l1@ggg.local embedcreds=yes vault=some-vault-name --verbose --debug+[2013-07-20 22:45:13 MDT] read: git ["--git-dir=/home/cantora/annex-l1/.git","--work-tree=/home/cantora/annex-l1","show-ref","git-annex"]+[2013-07-20 22:45:13 MDT] read: git ["--git-dir=/home/cantora/annex-l1/.git","--work-tree=/home/cantora/annex-l1","show-ref","--hash","refs/heads/git-annex"]+[2013-07-20 22:45:13 MDT] read: git ["--git-dir=/home/cantora/annex-l1/.git","--work-tree=/home/cantora/annex-l1","log","refs/heads/git-annex..181aa86dfd264557ab73285220d70c67f868b349","--oneline","-n1"]+[2013-07-20 22:45:13 MDT] read: git ["--git-dir=/home/cantora/annex-l1/.git","--work-tree=/home/cantora/annex-l1","log","refs/heads/git-annex..1dc6e1c4bca2102fc25e86491ab89338750ee1f6","--oneline","-n1"]+[2013-07-20 22:45:13 MDT] read: git ["--git-dir=/home/cantora/annex-l1/.git","--work-tree=/home/cantora/annex-l1","log","refs/heads/git-annex..b919b83cafeff420d23af24ff7de35b4ff955c8c","--oneline","-n1"]+[2013-07-20 22:45:13 MDT] chat: git ["--git-dir=/home/cantora/annex-l1/.git","--work-tree=/home/cantora/annex-l1","cat-file","--batch"]+[2013-07-20 22:45:13 MDT] read: git ["config","--null","--list"]+initremote glacier (encryption setup) [2013-07-20 22:45:13 MDT] read: gpg ["--batch","--no-tty","--use-agent","--quiet","--trust-model","always","--with-colons","--list-public-keys","annex-l1@ggg.local"]+[2013-07-20 22:45:13 MDT] read: gpg ["--batch","--no-tty","--use-agent","--quiet","--trust-model","always","--gen-random","--armor","2","512"]+[2013-07-20 22:47:37 MDT] chat: gpg ["--batch","--no-tty","--use-agent","--quiet","--trust-model","always","--encrypt","--no-encrypt-to","--no-default-recipient","--recipient","DF31708872834ABA"]+(with gpg key DF31708872834ABA) [2013-07-20 22:47:37 MDT] call: glacier ["--region=us-east-1","vault","create","some-vault-name"]+[2013-07-20 22:47:38 MDT] call: git ["--git-dir=/home/cantora/annex-l1/.git","--work-tree=/home/cantora/annex-l1","config","remote.glacier.annex-glacier","true"]+[2013-07-20 22:47:38 MDT] call: git ["--git-dir=/home/cantora/annex-l1/.git","--work-tree=/home/cantora/annex-l1","config","remote.glacier.annex-uuid","a9739087-7860-4ed0-bc38-0b6031b1afd3"]+(gpg) [2013-07-20 22:47:38 MDT] chat: gpg ["--batch","--no-tty","--use-agent","--quiet","--trust-model","always","--decrypt"]+[2013-07-20 22:47:38 MDT] chat: gpg ["--batch","--no-tty","--use-agent","--quiet","--trust-model","always","--batch","--passphrase-fd","3","--symmetric","--force-mdc"]+#at this point it simply waits forever. not sure what it's waiting for, stdin maybe? maybe fd 3 is empty??++#[on a different terminal]+$> ps ax | grep gpg | grep -v ssh+ 2024 ?        Ss     0:00 /usr/bin/gpg-agent --daemon --sh --write-env-file=/home/cantora/.gnupg/gpg-agent-info-ggg /usr/bin/dbus-launch --exit-with-session gnome-session --session=ubuntu+ 8341 pts/4    SL+    0:00 gpg --batch --no-tty --use-agent --quiet --trust-model always --batch --passphrase-fd 3 --symmetric --force-mdc+ 8652 pts/5    S+     0:00 grep --color=auto gpg++# End of transcript or log.+"""]]
+ doc/bugs/uninit_and_indirect_don__39__t_work_on_android.mdwn view
@@ -0,0 +1,23 @@+### Please describe the problem.+I am unable to restore a git-annex dir to its pre init state.++### What steps will reproduce the problem?+init a git-annex dir on android with a file system with out symlinks.+use for a while.+Run: "git-annex uninit" -> You cannot run this command in a direct mode repository.+Run: "git-annex indirect" -> Git is configured to not use symlinks, so you must use direct mode.++### What version of git-annex are you using? On what operating system?+git-annex version: 4.20130601-g7483ca4++### Please provide any additional information below.++[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log+++# End of transcript or log.+"""]]++> [[done]]; added support for direct mode --[[Joey]] 
+ doc/bugs/utf8.mdwn view
@@ -0,0 +1,187 @@+### Please describe the problem.++Git Annex stumbles and does not transfer files with special characters...+++### What steps will reproduce the problem?++Added the file "Freddie_Mercury/Barcelona_[+video]/B00921KHNS_(disc_1)_04_-_Ensueño_(New_Orchestrated_Version).mp3" to Git Annex on my Galaxy Nexus (Android), which was committed successfully but not gettable.+++### What version of git-annex are you using? On what operating system?++Phone: 4.20130709-g339d1eo+Transfer Server: 3.20120406 (which it did not get to)+Desktop: 3.20120629+++### Please provide any additional information below.++[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log+++fozz@cobol:~/Phone $ git annex get+get Freddie_Mercury/Barcelona_[+video]/B00921KHNS_(disc_1)_04_-_Ensueño_(New_Orchestrated_Version).mp3 (not available) +  Try making some of these repositories available:+  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+failed+get Freddie_Mercury/Barcelona_[+video]/B00921KKSA_(disc_2)_05_-_Ensueño_(Monsterrat's_Live_Takes).mp3 (not available) +  Try making some of these repositories available:+  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+failed+get Freddie_Mercury/Barcelona_[+video]/B00921KMYW_(disc_3)_04_-_Ensueno_(Orchestral_Version).mp3 (not available) +  Try making some of these repositories available:+  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+failed+get Freddie_Mercury/Barcelona_[+video]/B00921KMYW_(disc_3)_04_-_Ensueño_(Orchestral_Version).mp3 (not available) +  Try making some of these repositories available:+  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+failed+git-annex: get: 4 failed++===============++fozz@cobol:~/Phone $ git annex whereis Freddie_Mercury/+whereis Freddie_Mercury/Barcelona_[+video]/B00921KGRK_(disc_1)_01_-_Barcelona_(New_Orchestrated_Version.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KH5G_(disc_1)_02_-_La_Japonaise_(New_Orchestrated_Vers.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KHD8_(disc_1)_03_-_The_Fallen_Priest_(New_Orchestrated.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KHNS_(disc_1)_04_-_Ensueño_(New_Orchestrated_Version).mp3 (1 copy) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KHY2_(disc_1)_05_-_The_Golden_Boy_(New_Orchestrated_Ve.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KI9G_(disc_1)_06_-_Guide_Me_Home_(New_Orchestrated_Ver.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KIIW_(disc_1)_07_-_How_Can_I_Go_On_(New_Orchestrated_V.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KITG_(disc_1)_08_-_Exercises_In_Free_Love_(New_Orchest.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KJ22_(disc_1)_09_-_Overture_Piccante_(New_Orchestrated.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KJB8_(disc_1)_10_-_How_Can_I_Go_On_(New_Orchestrated_V.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KJMW_(disc_2)_01_-_Exercises_In_Free_Love_(1987_B-Side.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KJVI_(disc_2)_02_-_Barcelona_(Early_Version__Freddie's.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KK5I_(disc_2)_03_-_La_Japonaise_(Early_Version__Freddi.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KKHQ_(disc_2)_04_-_Rachmaninov's_Revenge_(The_Fallen_P.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KKSA_(disc_2)_05_-_Ensueño_(Monsterrat's_Live_Takes).mp3 (1 copy) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KL2U_(disc_2)_06_-_The_Golden_Boy_(Early_Version__Fred.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KLBQ_(disc_2)_07_-_Guide_Me_Home_(Alternative_Version).mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KLJI_(disc_2)_08_-_How_Can_I_Go_On_(Alternative_Versio.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KLUC_(disc_2)_09_-_How_Can_I_Go_On_(Alternative_Piano_.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KM3I_(disc_3)_01_-_Barcelona_(Orchestral_Version).mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KMBU_(disc_3)_02_-_La_Japonaise_(Orchestral_Version).mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KMM4_(disc_3)_03_-_The_Fallen_Priest_(Orchestral_Versi.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KMYW_(disc_3)_04_-_Ensueno_(Orchestral_Version).mp3 (1 copy) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KMYW_(disc_3)_04_-_Ensueño_(Orchestral_Version).mp3 (1 copy) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KNAK_(disc_3)_05_-_The_Golden_Boy_(Orchestral_Version).mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KNUA_(disc_3)_06_-_Guide_Me_Home_(Orchestral_Version).mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KOVI_(disc_3)_07_-_How_Can_I_Go_On_(Orchestral_Version.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KPP8_(disc_3)_08_-_Exercises_In_Free_Love_(Orchestral_.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+whereis Freddie_Mercury/Barcelona_[+video]/B00921KQJ8_(disc_3)_09_-_Overture_Piccante_(Orchestral_Versi.mp3 (3 copies) +  	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+   	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+   	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+ok+++# End of transcript or log.+"""]]
+ doc/bugs/utf8/comment_1_416ad6fb5f7379732129dc5283a7e550._comment view
@@ -0,0 +1,23 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawnRai_qFYPVvEgC6i1nlM1bh-C__jbhqS0"+ nickname="Matthew"+ subject="Renaming files"+ date="2013-07-21T10:08:16Z"+ content="""+Renaming the files does not fix it, Git annex on all computers knows that those files are only in my phone, but the assistant is refusing to transfer the contents, it does not seem to know that it needs to...++    whereis Freddie_Mercury/Barcelona_[+video]/B00921KMM4_(disc_3)_03_-_The_Fallen_Priest_(Orchestral_Versi.mp3 (3 copies) +      	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+       	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+       	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+    ok+    whereis Freddie_Mercury/Barcelona_[+video]/B00921KMYW_(disc_3)_04_-_Ensueno_(Orchestral_Version).mp3 (1 copy) +      	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+    ok+    whereis Freddie_Mercury/Barcelona_[+video]/B00921KNAK_(disc_3)_05_-_The_Golden_Boy_(Orchestral_Version).mp3 (3 copies) +      	1f368162-f02f-4794-af0c-1b5489e099b3 -- u0_a84@localhost:/sdcard/annex+       	53f03d06-f1e3-11e2-8519-1b41c09abecd -- here (Cobol: Phone)+       	cb6240e0-f1df-11e2-836a-7f4323e50c49 -- origin (Markdown: Phone)+    ok++"""]]
+ doc/bugs/utf8/comment_2_cd55f6bbeb145fd554f331dcff64f5e1._comment view
@@ -0,0 +1,10 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawnRai_qFYPVvEgC6i1nlM1bh-C__jbhqS0"+ nickname="Matthew"+ subject="git annex copy --to won't get them across either..."+ date="2013-07-21T10:12:03Z"+ content="""+git annex copy . --to markdown.DOMAIN_phoneannex responds with++    ControlPath \"/data/data/ga.androidterm/tmp/fozz@...somethingthatlookslikeahash\" too long for Unix domain socket+"""]]
+ doc/bugs/utf8/comment_3_bb583a419d6fa4e33e5364c4468b35c6._comment view
@@ -0,0 +1,8 @@+[[!comment format=mdwn+ username="http://joeyh.name/"+ ip="4.154.0.140"+ subject="seems to not involve utf8 at all.."+ date="2013-07-21T18:17:00Z"+ content="""+Can you please show me the actual filename, that you obfuscated as \"/data/data/ga.androidterm/tmp/fozz@...somethingthatlookslikeahash\" ?+"""]]
+ doc/bugs/utf8/comment_4_cd8a22cfb70d9d21f0a5339ccc52ee93._comment view
@@ -0,0 +1,14 @@+[[!comment format=mdwn+ username="GLITTAH"+ ip="37.130.227.133"+ subject="comment 4"+ date="2013-07-21T19:36:16Z"+ content="""+This sounds like a bug I ran into a while ago that got fixed.++>What version of git-annex are you using? On what operating system?+>+>Phone: 4.20130709-g339d1eo Transfer Server: 3.20120406 (which it did not get to) Desktop: 3.20120629++Maybe try upgrading your server and desktop versions?  Those look old enough to still have the utf-8 bug.+"""]]
+ doc/bugs/utf8/comment_5_14eefd4bee283802e9c462fa20b7835c._comment view
@@ -0,0 +1,19 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawnRai_qFYPVvEgC6i1nlM1bh-C__jbhqS0"+ nickname="Matthew"+ subject="Darn it..."+ date="2013-07-21T20:29:33Z"+ content="""+Hi,++Sorry, it was on my phone and very long and I didn't think it'd be important... Sheesh Users eh!++I think the error happened for every file or at least lots, not just the one with the strange tilde above the \"n\".+Eventually, it might have been after a phone reboot, it sorted itself and continued.++I can try and recreate it if it'll help, though it won't be till Wednesday / Thursday as I'm going away for a few days and I still need to pack.++Sorry for the bad bug report, I know how annoying they are.++It's not so easy for me to upgrade because one's an Ubuntu LTS and one is a Mint Debian Edition, both are the repository versions.+"""]]
+ doc/bugs/utf8/comment_6_58d8b5bdb9f11e8c344e86a675a075dd._comment view
@@ -0,0 +1,11 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawmkBwMWvNKZZCge_YqobCSILPMeK6xbFw8"+ nickname="develop"+ subject="comment 6"+ date="2013-07-21T20:31:50Z"+ content="""+As much i myself personally would hate it. You really should go with the standalone builds provided on this site then.++Just download the zip, extract on both machines. Make sure the PATH is correct, and it should Just Work(TM)++"""]]
+ doc/bugs/utf8/comment_7_00fa9672ce55b6bfa885b8a13287ac25._comment view
@@ -0,0 +1,10 @@+[[!comment format=mdwn+ username="http://joeyh.name/"+ ip="4.154.1.10"+ subject="comment 7"+ date="2013-07-22T18:34:55Z"+ content="""+The only version of git-annex that matters is the one installed on the Android device. Which is fine.++I reiterate my request for the actual thing that got obfuscated as \"/data/data/ga.androidterm/tmp/fozz@...somethingthatlookslikeahash\". Once I have that peice of information I should be able to fix this bug in short order. I understand exactly what's going on, except I don't know what the actual length of the filename that is causing the problem is.+"""]]
+ doc/bugs/utf8/comment_8_a01e26fa0fafbc291020f53dbfdf6443._comment view
@@ -0,0 +1,10 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawnRai_qFYPVvEgC6i1nlM1bh-C__jbhqS0"+ nickname="Matthew"+ subject="I will give recreating the bug a go in about 3 days time..."+ date="2013-07-22T19:26:44Z"+ content="""+I will give recreating the bug a go in about 3 days time when I get back off holiday.++Thanks+"""]]
+ doc/bugs/webapp_shows___34__Added_x_files__34___a_bit_ugly.mdwn view
@@ -0,0 +1,15 @@+### Please describe the problem.+When adding a folder with some 80.000 files, the sidebar with "Added x files" gets updated in batches. After some time, it shows (also see attached screenshot):++> Added 6496 files 5781 files 8633 files 7363 files 6159 files++This is a bit ugly. There could a newline after "files".++### What steps will reproduce the problem?+Add a folder with many files and subfolders in it.++### What version of git-annex are you using? On what operating system?+4.20130627 ++> I have improved the display, now it will just show a single ongoing count,+> and the most recent 10 or so files added. [[done]] --[[Joey]]
+ doc/bugs/wishlist:_generic_annex.cost-command.mdwn view
@@ -0,0 +1,17 @@+### Current setup++ATM git-annex has++remote.<name>.annex-cost+remote.<name>.annex-cost-command  # command is not provided cmdline options by annex++to set the cost for a given remote.  That requires setting up one of those variables per each host, and possibly hardcoding options for the annex-cost-command providing e.g. the remote name.++### Suggestion++wouldn't it be more general and thus more flexible to have a repository-wide++annex.cost-command++which could take options %remote, %file and assessed accordingly per each file upon '--get' request to allow maximal flexibility: e.g. some files might better be fetched from remotes supporting transfer compression, some from the web, etc.  Also it might be worth providing %remote_kind ("special" vs "git") to disambiguate %remote's?+
doc/design/assistant/blog.mdwn view
@@ -1,5 +1,4 @@-The git-annex assistant is being-[crowd funded on Kickstarter](http://www.kickstarter.com/projects/joeyh/git-annex-assistant-like-dropbox-but-with-your-own/).+Work on the git-annex assistant is [crowdfunded](https://campaign.joeyh.name/). I'll be blogging about my progress here on a semi-daily basis.  [[!sidebar content="""
+ doc/design/assistant/blog/day_294__release_day.mdwn view
@@ -0,0 +1,7 @@+Got the release out, after fixing test suite and windows build breakage.+This release has all the features on the command line side (--all,+--unused, etc), but several bugfixes on the assistant side, and a lot+of Windows bug fixes.++I've spent this evening adding icons to git-annex on Linux.+Even got the Linux standalone tarball to automatically install icons.
+ doc/design/assistant/blog/day_295__balls_in_the_air.mdwn view
@@ -0,0 +1,13 @@+Been keeping several non-coding balls in the air recently, two of which+landed today.++First, Rsync.net is [offering a discount to all git-annex users](http://www.rsync.net/products/git-annex-pricing.html),+at one third their normal price.+"People using git-annex are clueful and won't be a big support burden for us,+so it's a win-win."+The web app will be updated offer the discount when setting up a rsync.net+repository.++Secondly, I've recorded an interview today for the Git Minutes podcast,+about git-annex. Went well, looking forward to it going up, probably on+Monday.
+ doc/design/assistant/blog/day_296__new_crowdfunding_campaign.mdwn view
@@ -0,0 +1,41 @@+Surprise! I'm running a new crowdfunding campaign, which I hope will fund+several more months of git-annex development.++<https://campaign.joeyh.name/>++Please don't feel you have to give, but if you do decide to, give+generously. ;) I'm accepting both Paypal and Bitcoin (via CoinBase.com),+and have some rewards that you might enjoy.++----++I came up with two lists of things I hope this campaign will fund.+These are by no means complete lists. First, some general features and+development things:++* Integrate better with Android.+* Get the assistant and webapp ported to Windows.+* Refine the automated stress testing tools to find and fix more problems+  before users ever see them.+* Automatic recovery. Cosmic ray flipped a bit in a file? +  USB drive corrupted itself? The assistant should notice these problems,+  and fix them.+* Encourage more contributions from others. For example, improve the+  special remote plugin interface so it can do everything the native Haskell+  interface can do. Eight new cloud storage services were added this year+  as plugins, but we can do better!+* Use deltas to reduce bandwidth needed to transfer modified versions of files.++Secondly, some things to improve security:++* Add easy support for encrypted git repositories+  using [git-remote-gcrypt](https://github.com/blake2-ppc/git-remote-gcrypt),+  so you can safely push to a repository on a server you don't control.+* Add support for setting up and using GPG keys in the webapp.+* Add protection to the XMPP protocol to guard against man in the middle+  attacks if the XMPP server is compromised. Ie, Google should not be able to+  learn about your git-annex repository even if you're using their servers.+* To avoid leaking even the size of your encrypted files to+  cloud storage providers, add a mode that stores fixed size chunks.++It will also, of course, fund ongoing bugfixing, support, etc.
+ doc/design/assistant/blog/day_297__back_to_work.mdwn view
@@ -0,0 +1,16 @@+It looks like I'm funded for at least the next 9 months! It would still be+nice to get to a year. ;) <https://campaign.joeyh.name/>++Working to get caught up on recent bug reports..++Made `git annex uninit` not nuke anything that's left over in+`.git/annex/objects` after unannexing all the files. After all, that could+be important old versions of files or deleted file, and just because the+user wants to stop using git-annex, doesn't mean git-annex shouldn't try to+protect that data with its dying breath. So it prints out some suggestions+in this case, and leaves it up to the user to decide what to do with the+data.++Fixed the Android autobuilder, which had stopped including the webapp.++Looks like another autobuilder will be needed for OSX 10.9.
+ doc/design/assistant/blog/day_298__exceptional.mdwn view
@@ -0,0 +1,21 @@+Theme today seems to be fun with exceptions. ++Fixed an uncaught exception that could crash the assistant's Watcher thread+if just the right race occurred.++Also fixed it to not throw an exception if another process is+already transferring a file. What this means is that if you run multiple +`git annex get` processes on the same files, they'll cooperate in each+picking their own files to get and download in parallel. (Also works for+copy, etc.) Especially useful when downloading from an encrypted remote,+since often one process will be decrypting a file while the other is+downloading the next file. There is still room for improvement here; +a -jN option could better handle ensuring N downloads ran concurrently, and+decouple decryption from downloading. But it would need the output layer to+be redone to avoid scrambled output. (All the other stuff to make parallel+git-annex transfers etc work was already in place for a long time.)++----++Campaign update: Now funded for nearly 10 months, and aiming for a year.+<https://campaign.joeyh.name/>
+ doc/design/assistant/blog/day_299__bugfixing.mdwn view
@@ -0,0 +1,8 @@+Succeeded fixing a few bugs today, and followed up on a lot of other ones..++Fixed checking when content is present in a non-bare repository accessed via+http.++My changes a few days ago turned out to make uninit leave hard links behind+in .git/annex. Luckily the test suite caught this bug, and it was easily+fixed by making uninit delete objects with 2 or more hard links at the end.
+ doc/design/assistant/blog/day_300__new_logo.mdwn view
@@ -0,0 +1,36 @@+git-annex has a new nicer versions of its [[logo]], thanks to John Lawrence.++Finally tracked down a week-old bug about the watcher crashing. It turned+out to crash when it encountered a directory containing a character that's+invalid in the current locale. I've noticed that 'ü' is often the character I+get bug reports about. After reproducing the bug I quickly tracked it down+to code in the haskell hinotify library, and sent in a patch.++Also uploaded a fixed hinotify to Debian, and deployed it to all 3 of the+autobuilder chroots. That took much more time than actually fixing the bug.+Quite a lot of yak shaving went on actually. Oh well. The Linux+autobuilders are updated to use Debian unstable again, which is nice.++Fixed a bug that prevented annex.diskreserve to be honored when storing+files encrypted in a directory special remote.++Taught the webapp the difference between initializing a new special remote+and enabling an existing special remote, which fixed some bad behavior when+it got confused.++----++And then for the really fun bug of the day! A user sent me a large file+which badly breaks git annex add. Adding the file causes a symlink to be+set up, but the file's content is not stored in the annex. Indeed, it's+deleted. This is the first data loss bug since January 2012.++Turns out it was caused by the code that handles the dummy files git uses+in place of symlinks on FAT etc filesystems. Code that had no business+running when `core.symlinks=true`. Code that was prone to false positives+when looking at a tarball of a git-annex repository. So I put in multiple+fixes for this bug. I'll be making a release on Monday.++----++Today's work was sponsored by Mikhail Barabanov. Thanks, Mikhail!
+ doc/design/assistant/blog/day_301__direct_unannex.mdwn view
@@ -0,0 +1,21 @@+No release today after all. Unexpected bandwidth failure. Maybe in a few+days..++Got unannex and uninit working in direct mode. This is one of the more+subtle parts of git-annex, and took some doing to get it right.+Surprisingly, unannex in direct mode actually turns out to be faster than+in indirect mode. In direct mode it doesn't have to immediately commit the+unannexing, it can just stage it to be committed later.++Also worked on the ssh connection caching code. The perrennial problem with+that code is that the fifo used to communicate with ssh has a small limit+on its path, somewhere around 100 characters. This had caused problems when+the hostname was rather long. I found a way to avoid needing to be able to+reverse back from the fifo name to the hostname, and this let me take the+md5sum of long hostnames, and use that shorter string for the fifo.++Also various other bug followups.++----++[Campaign](https://campaign.joeyh.name/) is almost to 1 year!
doc/design/assistant/polls/Android_default_directory.mdwn view
@@ -4,4 +4,4 @@ want the first time they run it, but to save typing on android, anything that gets enough votes will be included in a list of choices as well. -[[!poll open=yes expandable=yes 53 "/sdcard/annex" 5 "Whole /sdcard" 4 "DCIM directory (photos and videos only)" 1 "Same as for regular git-annex. ~/annex/"]]+[[!poll open=yes expandable=yes 54 "/sdcard/annex" 5 "Whole /sdcard" 4 "DCIM directory (photos and videos only)" 1 "Same as for regular git-annex. ~/annex/"]]
doc/design/assistant/polls/prioritizing_special_remotes.mdwn view
@@ -6,7 +6,7 @@ Help me prioritize my work: What special remote would you most like to use with the git-annex assistant? -[[!poll open=yes 16 "Amazon S3 (done)" 12 "Amazon Glacier (done)" 9 "Box.com (done)" 70 "My phone (or MP3 player)" 19 "Tahoe-LAFS" 7 "OpenStack SWIFT" 31 "Google Drive"]]+[[!poll open=yes 16 "Amazon S3 (done)" 12 "Amazon Glacier (done)" 9 "Box.com (done)" 71 "My phone (or MP3 player)" 20 "Tahoe-LAFS" 9 "OpenStack SWIFT" 31 "Google Drive"]]  This poll is ordered with the options I consider easiest to build listed first. Mostly because git-annex already supports them and they
+ doc/favicon.png view

binary file changed (absent → 714 bytes)

+ doc/forum/Encrypted_ssh_remote__44___synced_folders.mdwn view
@@ -0,0 +1,87 @@+Hello,++I hope my understanding of the git-annex webapp is correct, and if not, please correct my wrong thought-pattern.++I have 2 VPS servers and 5 computers. On the 5 computers, I want to sync one folder (with subfolders and files). All the computers are full-disk encrypted, and it is important for me that when the data leaves my computer, it stays encrypted in one way or another. I want to use the two VPS's as an encrypted ssh full backup repository.++The computers are rarely on at the same time, some are off for two weeks, others are on more frequent. However, the VPS's are always on.++Now, is it possible to set up git-annex to support this behaviour? Using an encrypted ssh remote to make sure the folder is in sync on all computers? ++I've set git-annex up on one box, with the two servers as encrypted full backup remotes (without git-annex installed there), and configured my jabber account. That all works, and the files get synced.++Then I've set up a second computer, while the first one is still on. There I've added my jabber account, and created a local repository. Then I selected "Share with your other devices". It now shows my jabber account on both machines, and I saw a few syncing messages, but then there came errors, "Unable to download files from your other devices". I've attached the log at the bottom of this page.++It gives me the option to add a Cloud Repository. If I add the encrypted rsync full backup remote VPS there, will it work and keep my files in sync? is there something I'm doing wrong?++Note that the computers I've set up now are two OS X machines running Mountain Lion, and the servers are CentOS 6.++Log:+++    [2013-07-15 07:44:17 CEST] main: starting assistant version 4.20130709-g18e5f43++    (scanning...) [2013-07-15 07:44:17 CEST] Watcher: Performing startup scan+    (started...) [2013-07-15 07:45:08 CEST] main: starting assistant version 4.20130709-g18e5f43++    (scanning...) [2013-07-15 07:45:08 CEST] Watcher: Performing startup scan+    (started...) [2013-07-15 07:54:31 CEST] XMPPClient: Pairing with stnl in progress+    rercrrrreveeeec:ccccv vvvv:r:::: e    rsrrrreoeeeesussssorooooucuuuurerrrrc cccceveeee a    vnvvvvaiaaaansnnnnihiiiisesssshdhhhhe eeeed(dddd C    (o((((CnCCCConoooonennnnncnnnneteeeecicccctottttiniiiio oooonrnnnn e    rsrrrreeeeeestsssse eeeetbtttt y    b bbbbypyyyy e    peppppereeeee)eeeer+    rrrr)))))+++++    recv: resource vanished (Connection reset by peer)+    recv:r errceevcs:vo :ur rercseeos uovruacrneci esv havenadin si(hsCehoden dn( eC(coCtnoinnoennce tcriteoisnoe ntr  erbseyes tep teb eybr y)p+    epeere)r+    )+    [2013-07-15 07:55:00 CEST] XMPPSendPack: Syncing with janwxmpp+    Already up-to-date.+    recv: resource vanished (Connection reset by peer)+    [2013-07-15 07:55:04 CEST] XMPPReceivePack: Syncing with janwxmpp+    To xmpp::janwxmpp@gmail.com+     * [new branch]      git-annex -> refs/synced/0a41c397-09e8-4957-a6f4-2a6846a4f9d8/cmVsc3RubEBnbWFpbC5jb20=/git-annex+     * [new branch]      master -> refs/synced/0a41c397-09e8-4957-a6f4-2a6846a4f9d8/cmVsc3RubEBnbWFpbC5jb20=/master+    [2013-07-15 07:55:25 CEST] XMPPSendPack: Unable to download files from your other devices.+    [2013-07-15 07:55:25 CEST] XMPPSendPack: Syncing with janwxmpp+    recv: resource vanished (Connection reset by peer)+    fatal: Could not read from remote repository.++    Please make sure you have the correct access rights+    and the repository exists.+    [2013-07-15 07:57:25 CEST] XMPPSendPack: Unable to download files from your other devices.+    recv: resource vanished (Connection reset by peer)+    recv: resource vanished (Connection reset by peer)+    recv: resource vanished (Connection reset by peer)+    recv: resource vanished (Connection reset by peer)+    recv: resource vanished (Connection reset by peer)++    (Recording state in git...)++    (scanning...) [2013-07-15 08:01:36 CEST] Watcher: Performing startup scan+    (started...) recvr:rrrrrrre eeeeeeecrcccccccvevvvvvvv:s::::::: o       rurrrrrrrereeeeeeescsssssssoeooooooou uuuuuuurvrrrrrrrcaccccccceneeeeeee i       vsvvvvvvvahaaaaaaanennnnnnnidiiiiiiis sssssssh(hhhhhhheCeeeeeeedoddddddd n       (n(((((((CeCCCCCCCocooooooontnnnnnnnninnnnnnneoeeeeeeecnccccccct tttttttiriiiiiiioeooooooonsnnnnnnn e       rtrrrrrrre eeeeeeesbssssssseyeeeeeeet ttttttt p       bebbbbbbbyeyyyyyyy r       p)pppppppe+    eeeeeeeeeeeeeeerrrrrrrr))))))))++++++++    [2013-07-15 08:44:42 CEST] XMPPSendPack: Syncing with janwxmpp+    recv: resource vanished (Connection reset by peer)+    recrvre:ec cvrv:e: s roreuesrsocoueur rcvceae n vivasanhnieisdsh he(edCd o (n(CnCoeoncnntneiecoctnti ioronen s reretes sebetyt   bpbyey e prpe)ee+    err))++    fatal: Could not read from remote repository.++    Please make sure you have the correct access rights+    and the repository exists.+    [2013-07-15 08:46:42 CEST] XMPPSendPack: Unable to download files from your other devices.+    [2013-07-15 08:46:42 CEST] XMPPSendPack: Syncing with janwxmpp+    fatal: Could not read from remote repository.++    Please make sure you have the correct access rights+    and the repository exists.+    [2013-07-15 08:48:42 CEST] XMPPSendPack: Unable to download files from your other devices.
+ doc/forum/Git_annex_syncing_speed__44___possible__63__.mdwn view
@@ -0,0 +1,21 @@+Hello++I'm trying Git annex latest builds available in Linux & Android+Here is the scenario :-++Syncing 2 peer devices running Linux & Android+Devices can access each other directly over Cisco VPN encrypted link++Currently, syncing files via rsync over webdav (over Cisco VPN)+Everything is working, manual file tracking is an issue.++Here's where Git annex steps in,+I've configures external jabber account so they can talk to each other.++But the transfers are super-slow over internet,+I'm guessing Cisco VPN adding 15-20% overhead + SSH adding another 20-30% overhead.++Since the network link is trusted, is there any way to speed things up assuming Cisco solution+remains in place?++looking to solve this issue
+ doc/forum/Lacking_webapp_on_Trisquel__47__Ubuntu_Precise.mdwn view
@@ -0,0 +1,7 @@+I'd like to have git-annex assistant running so I can use it to sync files, but when I downloaded and ran it the webapp was missing.  ++I've recently begun using Trisquel, or rather the KDE version Triskel.  The current Trisquel is built from Ubuntu Precise, 12.04, the current LTS version.  Thus it seems that I'm a bit behind the current Ubuntu software, and my impression is that this relates to my problem.++In [a post](http://git-annex.branchable.com/forum/Cannot_launch_webapp_on_ubuntu_12.04_using_ppa/) on this forum I read that a version of git-annex was built without the webapp, and that this had since been corrected.  It appears from my git-annex version data that I have an older version, though I downloaded it only two days ago, and it's older than the corrected version.  Is this because my Ubuntu stuff is out of date? ++More importantly, is there any way I can get webapp running on my current OS, or must I wait until Trisquel gets to 13.04?
+ doc/forum/Sync_without_jabber_account.mdwn view
@@ -0,0 +1,9 @@+Hi,++It is possible to keep devices sync only using a box.com account as a transfer remote, without Jabber? I can't use Jabber because of firewall restrictions.++It would be nice to be able to use the transfer remote, in my case box.net, as the sync "provider", for example by polling a file with the needed changes in a pre-defined interval.++Regards,++Stone
+ doc/forum/Webapp_on_ARM.mdwn view
@@ -0,0 +1,6 @@+Webapp on ARM?+==============++Since the webapp is apparently now available on Android (not tested yet, but I plan to do it soon ;)), I was wondering what was the status of the webapp on ARM. Does it build, does it work, and if it does would it be possible to enable it in the Debian package for the next release?++For the record, I'm using git-annex on my NAS (Synology DS413j). I'm using the Debian armel package and running it in an Arch Linux chroot (a very simple setup). It works really well, and I'm extremely satisfied with git-annex. Thanks a lot for all your work, Joey *et al.*!
+ doc/forum/Webapp_on_ARM/comment_1_82ac40cef5b59070136527b8d81a5ce2._comment view
@@ -0,0 +1,10 @@+[[!comment format=mdwn+ username="http://joeyh.name/"+ ip="4.154.1.10"+ subject="comment 1"+ date="2013-07-22T19:13:38Z"+ content="""+To build the WebApp on arm, you need a ghc that supports template haskell on arm. While I have heard persistent rumors of such a thing existing, I have yet to see it.++It's possible to build the WebApp on arm without that, but it's a complicated process, involving first building on x86 with the same versions of the haskell libraries that you have on the arm system, and then using the EvilSplicer to generate a source tree with the template haskell expanded, which can then be built on arm. This build process is not really suitable for a Debian package.+"""]]
+ doc/forum/Which_cloud_providers_are_supported__63___.mdwn view
@@ -0,0 +1,3 @@+So Box.net and Amazon is supported, any way to get google drive in there?++thanks for cool software!
+ doc/forum/Wishlist:_Bittorrent-like_transfers.mdwn view
@@ -0,0 +1,5 @@+**EDIT: Mistakenly posted this thread in the forum.  I created a new post in todo. Link: http://git-annex.branchable.com/todo/Bittorrent-like_features/?updated**++Do you think it would be possible to have bittorrent-like transfers between remotes, so that no one remote gets pegged too hard with transfers? It would be great if you distribute your files between multiple bandwidth-capped remotes, and want fast down speed.  Obviously, this isn't a simple task, but the protocol is already there, it just needs to be adapted for the purpose (and re-written in Haskell...).  Maybe some day in the future after the more important stuff gets taken care of?  It could be an enticing stretch goal.++PS: still working on getting BTC, will be donating soon!
+ doc/forum/git_annex_copy_--fast_--to_blah_much_slower_than_--from_blah.mdwn view
@@ -0,0 +1,15 @@+I keep a repo synced between machines over ssh. Assuming all the files are in sync, so no actual file transfer needs to takes place, when I do++```+git annex copy --fast --quiet --to blah+```++is quite slow, about 10 seconds, using 100% CPU on one core, just to decide nothing needs to be done. On the other hand, doing++```+  git annex copy --fast --quiet --from blah+```++takes about 1 second.++I'm confused, as it seems to me that, since I'm using --fast, both transactions should use only locally available data, and both should need about the same amount of computing. Am I missing something? Can this be fixed?
+ doc/forum/non-bare_repo_on_cloud_remote.mdwn view
@@ -0,0 +1,6 @@+Hi,++I wondered if it's possible to have a non-bare repo on a cloud remote. I want to have some sort of Dropbox-like workflow were I simply put stuff into a directory on my drive and it gets synced via SSH to a central VPS so I can also always access it via HTTP, for example.++Regards,+Lukas
+ doc/forum/not_getting_file_contents.mdwn view
@@ -0,0 +1,1 @@+I have 2 computers successfully exchanging files, but the contexts are incomplete.  Used text files, documents, mp3s as tests. Both computers report in the webapp that they are synched and file names are there.  But file sizes are wrong by 75% less and contents are unusable.  Is there something in the config?  Both machines on LinuxMint 13. 
+ doc/forum/reliability__47__completeness_of_XMPP_updates.mdwn view
@@ -0,0 +1,7 @@+This falls into the category of "noob questions" I think.++The one piece of the git-annex assistant puzzle I've never messed with is XMPP pairing.  I'm wondering how well a pair of repos can keep in sync with each other if their only connection is via XMPP.  Will things go badly if changes are made to one while the other is offline?  Do messages get queued up to deliver when they're both online?  (Or do they get queued on the server side so they can be delivered even if one of them is online, makes changes, then goes offline, and the other one comes online later?)++If some xmpp messages don't go through for whatever reason, will the remotes be able to "catch up" with each other later on and make up for lost time?++Just hoping for a general sense of the limitations of XMPP pairing.   TIA.
+ doc/forum/reserving_space_with_directory_special_remotes.mdwn view
@@ -0,0 +1,2 @@+Can diskreserve be done with directory special remotes?+Where should such per directory remote setting be put?
+ doc/forum/ui.mdwn view
@@ -0,0 +1,11 @@+I just briefly tried git-annex. It's an interesting concept.++My main frustration so far: I find it difficult to visualise and use the annex. Shell script contortions can obviously show you anything, but I don't have the ready knowledge to compose them. It would be nice to have some more user-friendly commands or even a GUI.++'annex whereis' is fine for one file, but unweildly for many (e.g. a directory whose contents are always together, never divided between repositories). Is it possible to treat a given directory and all its contents as a single object?++It is not clear what files are immediately available. Sometimes you don't care about annexed files that aren't stored in the current repository. Might it be nice to temporarily remove or hide symlinks for files that are not here right now? Then you could treat the repository more like a normal file heirarchy. Or how about something like 'git annex ls' to show only currently available files?++assistant and sharebox fs sound like great basic synch options, but it would be really cool to have a fuse fs somewhere between raw git-annex and assistant. Putting a file in the directory would trigger git-annex to add it and sync. rm <file> on that new file would not work by default because it's the only copy. rm --annex to get rid of the file from all repos. mv/cp <file> <remote> to transfer between repos. ls to show only the files that are here now, ls --annex to display complete information in a clear way (well-formatted, colorized). Something like that.++This has just been a random brain dump from a new user, hopefully it made some sense.
+ doc/forum/ui/comment_1_f3e3446b05d6b573e29e6cad300fb635._comment view
@@ -0,0 +1,10 @@+[[!comment format=mdwn+ username="http://joeyh.name/"+ ip="4.154.0.140"+ subject="comment 1"+ date="2013-07-20T19:51:19Z"+ content="""+It's pretty easy to configure ls to show broken symlinks in a different color. Run dircolors, and alias ls='ls --color==auto'. Then you can see which files are not there at a glance.++The Linux file manager's I've tried (nautilus and thunar) also shows which files are present; you get a X on the icon of annexed files that are not present.+"""]]
+ doc/forum/webapp_and_manual_mode.mdwn view
@@ -0,0 +1,7 @@+Somehow I seemingly have not understood the manual mode.++If I have a file in my repository, that is not yet in the annex (or in git), and I start the webapp, that file is automatically added to git-annex (and git).++Why is that?++And how can I use the webapp without such interference?
+ doc/forum/wishlist:_make_copy_stop_on_exhausted_disk_space.mdwn view
@@ -0,0 +1,4 @@+I'm trying to distribute a large annex to a number of smaller archive drives.++While copying to a directory special remote, the current behaviour is to continue trying copying files into a remote, even as diskspace there has been exhausted.+It would make sense for git-annex copy to actually stop instead.
doc/git-annex.mdwn view
@@ -246,7 +246,7 @@ * initremote name [param=value ...]    Creates a new special remote, and adds it to `.git/config`. -  +   The remote's configuration is specified by the parameters. Different   types of special remotes need different configuration values. The   command will prompt for parameters as needed.@@ -270,14 +270,14 @@   Enables use of an existing special remote in the current repository,   which may be a different repository than the one in which it was   originally created with the initremote command. -  +   The name of the remote is the same name used when origianlly    creating that remote with "initremote". Run "git annex enableremote"   with no parameters to get a list of special remote names.    Some special remotes may need parameters to be specified every time.   For example, the directory special remote requires a directory= parameter.-  +   This command can also be used to modify the configuration of an existing   special remote, by specifying new values for parameters that were originally   set when using initremote. For example, to add a new gpg key to the keys@@ -322,7 +322,7 @@    For example: -	git annex content . "include(*.mp3) or include(*.ogg)"+	git annex content . "include=*.mp3 or include=*.ogg"    Without an expression, displays the current preferred content setting   of the repository.@@ -347,7 +347,7 @@ * indirect    Switches a repository back from direct mode to the default, indirect mode.-  +   As part of the switch from direct mode, any changed files will be committed.  # REPOSITORY MAINTENANCE COMMANDS@@ -372,7 +372,7 @@   started a configurable time after the last incremental fsck was started.   Once the current incremental fsck has completely finished, it causes   a new one to start.- +   Maybe you'd like to run a fsck for 5 hours at night, picking up each   night where it left off. You'd like this to continue until all files   have been fscked. And once it's done, you'd like a new fsck pass to start,@@ -380,6 +380,9 @@  	git annex fsck --incremental-schedule 30d --time-limit 5h +  To verify data integrity only while disregarding required number of copies,+  use --numcopies=1.+ * unused    Checks the annex for data that does not correspond to any files present@@ -576,7 +579,7 @@   This plumbing-level command is used by the assistant to transfer data.  * rekey [file key ...]-  +   This plumbing-level command is similar to migrate, but you specify   both the file, and the new key to use for it. @@ -683,7 +686,7 @@ * --untrust=repository    Overrides trust settings for a repository. May be specified more than once.-  +   The repository should be specified using the name of a configured remote,   or the UUID or description of a repository. @@ -792,7 +795,7 @@    Matches only files whose content is smaller than, or larger than the   specified size.- +   The size can be specified with any commonly used units, for example,   "0.5 gb" or "100 KiloBytes" @@ -1132,7 +1135,7 @@ For example, this makes two copies be needed for wav files:  	*.wav annex.numcopies=2-  + Note that setting numcopies to 0 is very unsafe.  # FILES
doc/index.mdwn view
@@ -1,15 +1,5 @@ [[!inline raw=yes pages="summary"]] -[[!sidebar content="""-[[!inline feeds=no template=bare pages=sidebar]]--[[Feeds]]:--<small>-[[!inline pages="internal(feeds/*)" archive=yes show=8 feeds=no]]-</small>-"""]]- <table> <tr> <td width="33%" valign="top">[[!inline feeds=no template=bare pages=links/key_concepts]]</td>
+ doc/install/OSX/comment_21_987f1302f56107c926b6daf83e124654._comment view
@@ -0,0 +1,11 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawmJdzisfT6DhorwRz0kKJ_9-zQbccCopu4"+ nickname="Alejandro"+ subject="Macports _iconv"+ date="2013-07-18T14:23:02Z"+ content="""+If you get an error like `undefined symbol _iconv for x86_64`, you're most likely using libiconv installed by macports. You can fix this by running++    cabal install c2hs git-annex --bindir=$HOME/bin --extra-lib-dirs=/usr/lib++"""]]
doc/install/cabal.mdwn view
@@ -1,15 +1,29 @@ As a haskell package, git-annex can be installed using cabal. -Start by installing the [Haskell Platform](http://hackage.haskell.org/platform/),-and then:+Start by installing the [Haskell Platform](http://hackage.haskell.org/platform/). +## minimal build++This builds git-annex without some features that require C libraries, that+can be harder to get installed. This is plenty to get started using it,+although it does not include the assistant or webapp.+ 	cabal update 	PATH=$HOME/bin:$PATH-	cabal install c2hs+	cabal install git-annex --bindir=$HOME/bin -f"-assistant -webapp -webdav -pairing -xmpp -dns"++## full build++To build with all features enabled, including the assistant and webapp,+you will need to install several C libraries and their headers,+including libgnutls, libgsasl, libxml2, and zlib. Then run:++	cabal update+	PATH=$HOME/bin:$PATH+	cabal install c2hs --bindir=$HOME/bin 	cabal install git-annex --bindir=$HOME/bin -The above downloads the latest release and installs it into a ~/bin/-directory, which you can put in your PATH.+## building from git checkout  But maybe you want something newer (or older). Then [[download]] the version you want, and use cabal as follows inside its source tree:@@ -21,11 +35,3 @@ 	cabal configure 	cabal build 	cabal install --bindir=$HOME/bin--By default, cabal will try to build git-annex with the git-annex assistant-and webapp. This requires several C libraries and their headers be already-installed on your system, including libgnutls, libgsasl, libxml2, and zlib.-To build git-annex without the assistant and webapp, you can pass flags to-cabal install. For example:--	cabal install git-annex --flags="-assistant -WebApp" --bindir=$HOME/bin
doc/internals.mdwn view
@@ -36,6 +36,9 @@ Also, `.git/annex/journal/` is used to record changes before they are added to git. +This branch operates on objects exclusively. No file names will ever+be stored in this branch.+ ### `uuid.log`  Records the UUIDs of known repositories, and associates them with a
− doc/logo-bw.svg
@@ -1,60 +0,0 @@-<?xml version="1.0" encoding="UTF-8" standalone="no"?>-<!-- Created with Inkscape (http://www.inkscape.org/) -->--<svg-   xmlns:dc="http://purl.org/dc/elements/1.1/"-   xmlns:cc="http://creativecommons.org/ns#"-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-   xmlns:svg="http://www.w3.org/2000/svg"-   xmlns="http://www.w3.org/2000/svg"-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"-   width="640px"-   height="480px"-   id="svg3134"-   version="1.1"-   inkscape:version="0.48.3.1 r9886"-   sodipodi:docname="New document 11">-  <defs-     id="defs3136" />-  <sodipodi:namedview-     id="base"-     pagecolor="#ffffff"-     bordercolor="#666666"-     borderopacity="1.0"-     inkscape:pageopacity="0.0"-     inkscape:pageshadow="2"-     inkscape:zoom="0.77472527"-     inkscape:cx="317.41844"-     inkscape:cy="245.16312"-     inkscape:current-layer="layer1"-     inkscape:document-units="px"-     showgrid="false"-     inkscape:window-width="800"-     inkscape:window-height="564"-     inkscape:window-x="0"-     inkscape:window-y="12"-     inkscape:window-maximized="0" />-  <metadata-     id="metadata3139">-    <rdf:RDF>-      <cc:Work-         rdf:about="">-        <dc:format>image/svg+xml</dc:format>-        <dc:type-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />-        <dc:title></dc:title>-      </cc:Work>-    </rdf:RDF>-  </metadata>-  <g-     id="layer1"-     inkscape:label="Layer 1"-     inkscape:groupmode="layer">-    <path-       style="fill:#000000"-       d="m 302.43431,440.4468 c -14.88228,-4.33874 -18.89443,-6.47398 -28.38217,-15.10481 -13.08558,-11.90371 -17.72561,-23.29726 -17.72561,-43.52501 0,-18.30772 4.14768,-29.96528 14.34194,-40.30981 7.27131,-7.37848 18.36439,-13.25052 25.03206,-13.25052 4.73347,0 4.8315,0.27458 4.8315,13.5325 l 0,13.5325 -6.57204,3.04787 c -9.16684,4.25125 -13.05127,12.36242 -12.09267,25.25093 1.53891,20.69072 13.75689,28.81207 43.34566,28.81207 14.25099,0 19.3577,-0.72886 23.91428,-3.41316 12.51899,-7.37499 18.80704,-23.65294 14.28477,-36.97908 -2.56222,-7.55028 -13.65238,-17.88336 -19.19364,-17.88336 -3.36269,0 -3.73837,1.31029 -3.73837,13.03841 l 0,13.0384 -11.88928,-0.55077 -11.88929,-0.55079 0,-25.90026 0,-25.90027 35.19228,0 35.19228,0 0.57499,9.7126 c 0.49269,8.32267 0.0845,9.71665 -2.85343,9.74093 -8.20311,0.0677 -8.706,2.84359 -2.15276,11.88256 6.12053,8.44215 6.33349,9.33743 6.33349,26.62529 0,15.38301 -0.65924,19.1446 -4.70538,26.84845 -9.93611,18.91837 -28.93477,29.1492 -56.00199,30.15722 -10.88743,0.40545 -20.4551,-0.28006 -25.84662,-1.85189 z m -45.65485,-139.01542 0,-13.87514 65.62885,0 65.62884,0 0,13.87514 0,13.87514 -65.62884,0 -65.62885,0 0,-13.87514 z m 49.45942,-38.8504 0,-15.72516 -24.72971,0 -24.72971,0 0,-12.95013 0,-12.95014 24.72971,0 24.72971,0 0,-16.65017 0,-16.65017 15.21829,0 15.21828,0 0,16.65017 0,16.65017 25.68085,0 25.68085,0 0,12.89643 0,12.89645 -25.20528,0.51619 -25.20528,0.51621 -0.5525,15.26265 -0.5525,15.26266 -15.14135,0 -15.14136,0 0,-15.72516 z m 90.58314,-28.97078 c -1.413,-6.87082 -1.79669,-6.34506 5.78198,-7.92291 5.58749,-1.16331 6.09939,-0.83956 7.33692,4.64003 1.45579,6.44604 -0.79787,9.0505 -7.87441,9.1001 -3.02463,0.0211 -4.34501,-1.44337 -5.24449,-5.81722 z m -160.69546,0.49827 c -1.79783,-1.10787 -2.17745,-3.37832 -1.25087,-7.48118 1.23754,-5.47959 1.74944,-5.80335 7.33693,-4.64004 7.57866,1.57785 7.19497,1.05209 5.78198,7.92291 -1.24077,6.03343 -6.10031,7.75249 -11.86804,4.19831 z m 190.42463,-6.76941 c -1.85277,-5.87101 -1.66966,-6.25919 3.83255,-8.12458 3.17805,-1.07743 5.9948,-1.95896 6.25947,-1.95896 0.91633,0 4.67209,11.70301 3.97372,12.38219 -0.38574,0.37517 -3.27056,1.39869 -6.41068,2.27453 -5.34046,1.48954 -5.83503,1.19409 -7.65506,-4.57318 z m -216.85329,0.64986 c -3.40034,-0.87401 -6.18243,-1.85733 -6.18243,-2.18515 0,-0.32782 0.94953,-3.24505 2.11007,-6.48271 1.73496,-4.84015 2.83405,-5.67166 6.18243,-4.67733 7.88037,2.34017 8.42794,3.15845 6.18018,9.23554 -1.96709,5.31825 -2.52062,5.59264 -8.29025,4.10965 z m 245.52541,-10.67191 c -2.12815,-5.48318 -2.11652,-5.49574 11.85359,-12.82409 22.7641,-11.94143 40.5838,-25.97488 57.05249,-44.93026 l 7.53031,-8.66734 5.41145,4.25151 5.41145,4.25151 -17.60152,17.90565 c -16.73035,17.01941 -37.6183,32.42395 -56.39658,41.59159 -10.27596,5.01677 -10.722,4.96367 -13.26119,-1.57857 z m -286.33038,-6.27889 c -21.55151,-11.9442 -31.63729,-19.70355 -49.98909,-38.45829 l -16.54083,-16.90401 5.39695,-4.24028 5.39696,-4.24026 7.53031,8.66734 c 16.46869,18.95538 34.28839,32.98883 57.05248,44.93026 13.97012,7.32835 13.98175,7.34091 11.8536,12.82409 -1.17162,3.01872 -3.03333,5.48856 -4.13709,5.48856 -1.10378,0 -8.55726,-3.63034 -16.56329,-8.06741 z m 375.66016,-70.84688 c -3.97648,-2.69927 -4.05764,-3.18834 -1.36824,-8.24615 2.7937,-5.254 2.98784,-5.31188 8.50732,-2.53606 6.47782,3.25777 6.35114,2.92151 3.44074,9.13364 -2.52039,5.37967 -4.60478,5.70447 -10.57982,1.64857 z M 89.683687,134.84263 c -2.910382,-6.21213 -3.037055,-5.87587 3.440759,-9.13364 5.520337,-2.77624 5.713305,-2.71854 8.512274,2.54533 2.72546,5.12566 2.63957,5.52893 -1.77689,8.3432 -6.255304,3.98601 -7.594703,3.75504 -10.176143,-1.75489 z M 558.86885,114.49806 c -4.66412,-2.46246 -4.94939,-3.21135 -3.14292,-8.25101 1.09275,-3.04849 2.20334,-5.54273 2.46799,-5.54273 1.15984,0 12.46263,4.10838 12.46263,4.52996 0,2.20567 -4.45138,12.10382 -5.41738,12.04614 -0.68234,-0.0407 -3.54898,-1.29279 -6.37032,-2.78236 z M 76.248436,107.82834 c -1.1486,-3.20438 -2.088367,-6.03672 -2.088367,-6.2941 0,-0.42158 11.30279,-4.529954 12.462632,-4.529954 0.264646,0 1.376722,2.498376 2.471297,5.551964 1.832586,5.11256 1.553673,5.77145 -3.524022,8.32508 -7.178882,3.61035 -6.90035,3.70158 -9.32154,-3.05299 z M 568.27869,86.478917 c -4.16144,-1.0576 -4.15124,-1.435966 0.47558,-17.673656 4.71707,-16.554414 4.76128,-15.866207 -0.95115,-14.804204 -3.51666,0.653779 -4.75571,0.08973 -4.75571,-2.164633 0,-1.67682 1.09334,-3.456779 2.42964,-3.95547 1.33629,-0.498709 4.53447,-4.218875 7.10707,-8.267031 3.85384,-6.064326 5.73436,-7.360301 10.68013,-7.360301 4.78765,0 6.24005,0.919681 7.17525,4.543462 0.64491,2.498894 2.13408,6.869564 3.30925,9.712599 4.714,11.40422 2.47433,18.328434 -4.06643,12.571786 -3.92535,-3.4548 -3.4906,-4.351652 -9.63904,19.885132 -2.24473,8.848659 -3.45803,9.62341 -11.76459,7.512316 z M 62.514449,66.506779 57.950276,48.599557 52.639,52.662624 c -2.921206,2.234675 -5.630041,3.75306 -6.019648,3.374157 -0.389608,-0.378884 0.859281,-4.428205 2.775301,-8.998492 1.916001,-4.570287 3.965028,-9.76649 4.553405,-11.547134 0.734891,-2.224093 3.046111,-3.237533 7.383397,-3.237533 5.021102,0 8.14882,1.812001 15.277977,8.851138 4.930401,4.868122 8.964349,10.279427 8.964349,12.025124 0,4.517598 -2.081195,3.939726 -6.8916,-1.913568 -2.299596,-2.798153 -4.818203,-4.473179 -5.596904,-3.722293 -0.778719,0.750904 0.522064,8.499468 2.890599,17.219014 2.368555,8.719565 3.936551,16.213492 3.484473,16.653149 -0.452097,0.439676 -3.422934,1.3053 -6.601862,1.923613 l -5.779866,1.12422 -4.564172,-17.90724 z"-       id="path3050"-       inkscape:connector-curvature="0" />-  </g>-</svg>
+ doc/logo-old-bw.svg view
@@ -0,0 +1,60 @@+<?xml version="1.0" encoding="UTF-8" standalone="no"?>+<!-- Created with Inkscape (http://www.inkscape.org/) -->++<svg+   xmlns:dc="http://purl.org/dc/elements/1.1/"+   xmlns:cc="http://creativecommons.org/ns#"+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+   xmlns:svg="http://www.w3.org/2000/svg"+   xmlns="http://www.w3.org/2000/svg"+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"+   width="640px"+   height="480px"+   id="svg3134"+   version="1.1"+   inkscape:version="0.48.3.1 r9886"+   sodipodi:docname="New document 11">+  <defs+     id="defs3136" />+  <sodipodi:namedview+     id="base"+     pagecolor="#ffffff"+     bordercolor="#666666"+     borderopacity="1.0"+     inkscape:pageopacity="0.0"+     inkscape:pageshadow="2"+     inkscape:zoom="0.77472527"+     inkscape:cx="317.41844"+     inkscape:cy="245.16312"+     inkscape:current-layer="layer1"+     inkscape:document-units="px"+     showgrid="false"+     inkscape:window-width="800"+     inkscape:window-height="564"+     inkscape:window-x="0"+     inkscape:window-y="12"+     inkscape:window-maximized="0" />+  <metadata+     id="metadata3139">+    <rdf:RDF>+      <cc:Work+         rdf:about="">+        <dc:format>image/svg+xml</dc:format>+        <dc:type+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />+        <dc:title></dc:title>+      </cc:Work>+    </rdf:RDF>+  </metadata>+  <g+     id="layer1"+     inkscape:label="Layer 1"+     inkscape:groupmode="layer">+    <path+       style="fill:#000000"+       d="m 302.43431,440.4468 c -14.88228,-4.33874 -18.89443,-6.47398 -28.38217,-15.10481 -13.08558,-11.90371 -17.72561,-23.29726 -17.72561,-43.52501 0,-18.30772 4.14768,-29.96528 14.34194,-40.30981 7.27131,-7.37848 18.36439,-13.25052 25.03206,-13.25052 4.73347,0 4.8315,0.27458 4.8315,13.5325 l 0,13.5325 -6.57204,3.04787 c -9.16684,4.25125 -13.05127,12.36242 -12.09267,25.25093 1.53891,20.69072 13.75689,28.81207 43.34566,28.81207 14.25099,0 19.3577,-0.72886 23.91428,-3.41316 12.51899,-7.37499 18.80704,-23.65294 14.28477,-36.97908 -2.56222,-7.55028 -13.65238,-17.88336 -19.19364,-17.88336 -3.36269,0 -3.73837,1.31029 -3.73837,13.03841 l 0,13.0384 -11.88928,-0.55077 -11.88929,-0.55079 0,-25.90026 0,-25.90027 35.19228,0 35.19228,0 0.57499,9.7126 c 0.49269,8.32267 0.0845,9.71665 -2.85343,9.74093 -8.20311,0.0677 -8.706,2.84359 -2.15276,11.88256 6.12053,8.44215 6.33349,9.33743 6.33349,26.62529 0,15.38301 -0.65924,19.1446 -4.70538,26.84845 -9.93611,18.91837 -28.93477,29.1492 -56.00199,30.15722 -10.88743,0.40545 -20.4551,-0.28006 -25.84662,-1.85189 z m -45.65485,-139.01542 0,-13.87514 65.62885,0 65.62884,0 0,13.87514 0,13.87514 -65.62884,0 -65.62885,0 0,-13.87514 z m 49.45942,-38.8504 0,-15.72516 -24.72971,0 -24.72971,0 0,-12.95013 0,-12.95014 24.72971,0 24.72971,0 0,-16.65017 0,-16.65017 15.21829,0 15.21828,0 0,16.65017 0,16.65017 25.68085,0 25.68085,0 0,12.89643 0,12.89645 -25.20528,0.51619 -25.20528,0.51621 -0.5525,15.26265 -0.5525,15.26266 -15.14135,0 -15.14136,0 0,-15.72516 z m 90.58314,-28.97078 c -1.413,-6.87082 -1.79669,-6.34506 5.78198,-7.92291 5.58749,-1.16331 6.09939,-0.83956 7.33692,4.64003 1.45579,6.44604 -0.79787,9.0505 -7.87441,9.1001 -3.02463,0.0211 -4.34501,-1.44337 -5.24449,-5.81722 z m -160.69546,0.49827 c -1.79783,-1.10787 -2.17745,-3.37832 -1.25087,-7.48118 1.23754,-5.47959 1.74944,-5.80335 7.33693,-4.64004 7.57866,1.57785 7.19497,1.05209 5.78198,7.92291 -1.24077,6.03343 -6.10031,7.75249 -11.86804,4.19831 z m 190.42463,-6.76941 c -1.85277,-5.87101 -1.66966,-6.25919 3.83255,-8.12458 3.17805,-1.07743 5.9948,-1.95896 6.25947,-1.95896 0.91633,0 4.67209,11.70301 3.97372,12.38219 -0.38574,0.37517 -3.27056,1.39869 -6.41068,2.27453 -5.34046,1.48954 -5.83503,1.19409 -7.65506,-4.57318 z m -216.85329,0.64986 c -3.40034,-0.87401 -6.18243,-1.85733 -6.18243,-2.18515 0,-0.32782 0.94953,-3.24505 2.11007,-6.48271 1.73496,-4.84015 2.83405,-5.67166 6.18243,-4.67733 7.88037,2.34017 8.42794,3.15845 6.18018,9.23554 -1.96709,5.31825 -2.52062,5.59264 -8.29025,4.10965 z m 245.52541,-10.67191 c -2.12815,-5.48318 -2.11652,-5.49574 11.85359,-12.82409 22.7641,-11.94143 40.5838,-25.97488 57.05249,-44.93026 l 7.53031,-8.66734 5.41145,4.25151 5.41145,4.25151 -17.60152,17.90565 c -16.73035,17.01941 -37.6183,32.42395 -56.39658,41.59159 -10.27596,5.01677 -10.722,4.96367 -13.26119,-1.57857 z m -286.33038,-6.27889 c -21.55151,-11.9442 -31.63729,-19.70355 -49.98909,-38.45829 l -16.54083,-16.90401 5.39695,-4.24028 5.39696,-4.24026 7.53031,8.66734 c 16.46869,18.95538 34.28839,32.98883 57.05248,44.93026 13.97012,7.32835 13.98175,7.34091 11.8536,12.82409 -1.17162,3.01872 -3.03333,5.48856 -4.13709,5.48856 -1.10378,0 -8.55726,-3.63034 -16.56329,-8.06741 z m 375.66016,-70.84688 c -3.97648,-2.69927 -4.05764,-3.18834 -1.36824,-8.24615 2.7937,-5.254 2.98784,-5.31188 8.50732,-2.53606 6.47782,3.25777 6.35114,2.92151 3.44074,9.13364 -2.52039,5.37967 -4.60478,5.70447 -10.57982,1.64857 z M 89.683687,134.84263 c -2.910382,-6.21213 -3.037055,-5.87587 3.440759,-9.13364 5.520337,-2.77624 5.713305,-2.71854 8.512274,2.54533 2.72546,5.12566 2.63957,5.52893 -1.77689,8.3432 -6.255304,3.98601 -7.594703,3.75504 -10.176143,-1.75489 z M 558.86885,114.49806 c -4.66412,-2.46246 -4.94939,-3.21135 -3.14292,-8.25101 1.09275,-3.04849 2.20334,-5.54273 2.46799,-5.54273 1.15984,0 12.46263,4.10838 12.46263,4.52996 0,2.20567 -4.45138,12.10382 -5.41738,12.04614 -0.68234,-0.0407 -3.54898,-1.29279 -6.37032,-2.78236 z M 76.248436,107.82834 c -1.1486,-3.20438 -2.088367,-6.03672 -2.088367,-6.2941 0,-0.42158 11.30279,-4.529954 12.462632,-4.529954 0.264646,0 1.376722,2.498376 2.471297,5.551964 1.832586,5.11256 1.553673,5.77145 -3.524022,8.32508 -7.178882,3.61035 -6.90035,3.70158 -9.32154,-3.05299 z M 568.27869,86.478917 c -4.16144,-1.0576 -4.15124,-1.435966 0.47558,-17.673656 4.71707,-16.554414 4.76128,-15.866207 -0.95115,-14.804204 -3.51666,0.653779 -4.75571,0.08973 -4.75571,-2.164633 0,-1.67682 1.09334,-3.456779 2.42964,-3.95547 1.33629,-0.498709 4.53447,-4.218875 7.10707,-8.267031 3.85384,-6.064326 5.73436,-7.360301 10.68013,-7.360301 4.78765,0 6.24005,0.919681 7.17525,4.543462 0.64491,2.498894 2.13408,6.869564 3.30925,9.712599 4.714,11.40422 2.47433,18.328434 -4.06643,12.571786 -3.92535,-3.4548 -3.4906,-4.351652 -9.63904,19.885132 -2.24473,8.848659 -3.45803,9.62341 -11.76459,7.512316 z M 62.514449,66.506779 57.950276,48.599557 52.639,52.662624 c -2.921206,2.234675 -5.630041,3.75306 -6.019648,3.374157 -0.389608,-0.378884 0.859281,-4.428205 2.775301,-8.998492 1.916001,-4.570287 3.965028,-9.76649 4.553405,-11.547134 0.734891,-2.224093 3.046111,-3.237533 7.383397,-3.237533 5.021102,0 8.14882,1.812001 15.277977,8.851138 4.930401,4.868122 8.964349,10.279427 8.964349,12.025124 0,4.517598 -2.081195,3.939726 -6.8916,-1.913568 -2.299596,-2.798153 -4.818203,-4.473179 -5.596904,-3.722293 -0.778719,0.750904 0.522064,8.499468 2.890599,17.219014 2.368555,8.719565 3.936551,16.213492 3.484473,16.653149 -0.452097,0.439676 -3.422934,1.3053 -6.601862,1.923613 l -5.779866,1.12422 -4.564172,-17.90724 z"+       id="path3050"+       inkscape:connector-curvature="0" />+  </g>+</svg>
+ doc/logo-old.png view

binary file changed (absent → 9092 bytes)

+ doc/logo-old.svg view
@@ -0,0 +1,77 @@+<?xml version="1.0" encoding="UTF-8" standalone="no"?>+<!-- Created with Inkscape (http://www.inkscape.org/) -->++<svg+   xmlns:dc="http://purl.org/dc/elements/1.1/"+   xmlns:cc="http://creativecommons.org/ns#"+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+   xmlns:svg="http://www.w3.org/2000/svg"+   xmlns="http://www.w3.org/2000/svg"+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"+   width="640px"+   height="480px"+   id="svg3134"+   version="1.1"+   inkscape:version="0.48.3.1 r9886"+   sodipodi:docname="git-annex.svg">+  <defs+     id="defs3136" />+  <sodipodi:namedview+     id="base"+     pagecolor="#ffffff"+     bordercolor="#666666"+     borderopacity="1.0"+     inkscape:pageopacity="0.0"+     inkscape:pageshadow="2"+     inkscape:zoom="0.77472527"+     inkscape:cx="398.6665"+     inkscape:cy="232.05718"+     inkscape:current-layer="layer1"+     inkscape:document-units="px"+     showgrid="false"+     inkscape:window-width="1024"+     inkscape:window-height="566"+     inkscape:window-x="0"+     inkscape:window-y="12"+     inkscape:window-maximized="0" />+  <metadata+     id="metadata3139">+    <rdf:RDF>+      <cc:Work+         rdf:about="">+        <dc:format>image/svg+xml</dc:format>+        <dc:type+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />+        <dc:title></dc:title>+      </cc:Work>+    </rdf:RDF>+  </metadata>+  <g+     id="layer1"+     inkscape:label="Layer 1"+     inkscape:groupmode="layer">+    <g+       id="g4187"+       transform="matrix(2.0184211,0,0,1.9796558,-320.30102,-235.1316)">+      <path+         sodipodi:nodetypes="cccccccccccccccccccccccccssscssssssssscssssssssssscccssssscccssssssssssssssssssscssssssssssscsssssssccscsssssssssscc"+         inkscape:connector-curvature="0"+         id="path3050"+         d="m 306.53525,253.83733 0,-8.5 -13,0 -13,0 0,-7 0,-7 13,0 13,0 0,-9 0,-9 8,0 8,0 0,9 0,9 13.5,0 13.5,0 0,6.97097 0,6.97098 -13.25,0.27902 -13.25,0.27903 -0.29044,8.25 -0.29044,8.25 -7.95956,0 -7.95956,0 z m 47.61806,-15.65972 c -0.74279,-3.71392 -0.94449,-3.42973 3.03949,-4.28261 2.93725,-0.62881 3.20635,-0.45381 3.8569,2.5081 0.76528,3.48431 -0.41943,4.89211 -4.13945,4.91892 -1.59,0.0114 -2.2841,-0.78019 -2.75694,-3.14441 z m -84.47495,0.26933 c -0.94509,-0.59884 -1.14465,-1.8261 -0.65756,-4.04384 0.65055,-2.96191 0.91965,-3.13691 3.8569,-2.5081 3.98398,0.85288 3.78228,0.56869 3.03949,4.28261 -0.65225,3.26128 -3.20683,4.19049 -6.23883,2.26933 z m 100.10308,-3.6591 c -0.97397,-3.17349 -0.87771,-3.38331 2.01471,-4.39162 1.67065,-0.58239 3.15137,-1.05889 3.2905,-1.05889 0.4817,0 2.45604,6.32589 2.08892,6.69301 -0.20278,0.20279 -1.71928,0.75604 -3.36999,1.22946 -2.80739,0.80515 -3.06738,0.64545 -4.02414,-2.47196 z m -113.99619,0.35127 c -1.7875,-0.47243 -3.25,-1.00395 -3.25,-1.18115 0,-0.1772 0.49915,-1.75406 1.10923,-3.50413 0.91204,-2.61627 1.48981,-3.06573 3.25,-2.52826 4.14258,1.26494 4.43043,1.70725 3.24882,4.99213 -1.03407,2.8747 -1.32505,3.02302 -4.35805,2.22141 z m 129.06865,-5.76854 c -1.11873,-2.96385 -1.11262,-2.97064 6.23124,-6.93187 11.96671,-6.45476 21.33423,-14.04033 29.99155,-24.28638 l 3.95856,-4.685 2.84471,2.29809 2.84471,2.29809 -9.25283,9.67863 c -8.79487,9.19959 -19.77532,17.52628 -29.64675,22.48171 -5.4019,2.71174 -5.63638,2.68304 -6.97119,-0.85327 z m -150.51915,-3.39396 c -11.32927,-6.45626 -16.6312,-10.65046 -26.27844,-20.78805 l -8.69524,-9.13721 2.83709,-2.29202 2.83709,-2.29201 3.95856,4.685 c 8.65732,10.24605 18.02484,17.83162 29.99155,24.28638 7.34386,3.96123 7.34997,3.96802 6.23124,6.93187 -0.6159,1.63172 -1.59457,2.96676 -2.1748,2.96676 -0.58024,0 -4.49841,-1.96233 -8.70705,-4.36072 z m 197.47834,-38.29522 c -2.09037,-1.45905 -2.13303,-1.72341 -0.71926,-4.45733 1.4686,-2.83997 1.57066,-2.87126 4.47216,-1.37083 3.40528,1.76094 3.33869,1.57918 1.80874,4.93705 -1.32493,2.9079 -2.42066,3.08347 -5.56164,0.89111 z m -239.11733,-2.89111 c -1.52994,-3.35787 -1.59653,-3.17611 1.80875,-4.93705 2.90195,-1.50066 3.00339,-1.46947 4.47476,1.37584 1.43273,2.7706 1.38758,2.98858 -0.93408,4.50979 -3.28831,2.15458 -3.99241,2.02973 -5.34943,-0.94858 z m 246.64289,-10.99695 c -2.45185,-1.33105 -2.60181,-1.73585 -1.65218,-4.45996 0.57444,-1.64782 1.15826,-2.99604 1.29738,-2.99604 0.60971,0 6.5514,2.22072 6.5514,2.4486 0,1.19224 -2.34002,6.54254 -2.84783,6.51136 -0.35869,-0.022 -1.86564,-0.6988 -3.34877,-1.50396 z m -253.70558,-3.60522 c -0.6038,-1.73208 -1.09782,-3.26306 -1.09782,-3.40218 0,-0.22788 5.94169,-2.4486 6.5514,-2.4486 0.13912,0 0.72372,1.35046 1.29912,3.00103 0.96336,2.76352 0.81674,3.11967 -1.85252,4.5 -3.77382,1.95152 -3.6274,2.00083 -4.90018,-1.65025 z M 444.28525,158.648 c -2.1876,-0.57167 -2.18224,-0.77619 0.25,-9.55323 2.47969,-8.94824 2.50293,-8.57624 -0.5,-8.00219 -1.84865,0.35339 -2.5,0.0485 -2.5,-1.17006 0,-0.90638 0.57475,-1.86851 1.27722,-2.13807 0.70247,-0.26957 2.3837,-2.28045 3.73607,-4.46862 2.0259,-3.27798 3.01446,-3.9785 5.61437,-3.9785 2.51679,0 3.28029,0.49712 3.77191,2.4559 0.33902,1.35074 1.12185,3.71324 1.73962,5.25 2.47807,6.16438 1.30071,9.90716 -2.13766,6.79549 -2.06349,-1.86744 -1.83495,-2.35222 -5.06708,10.74861 -1.18002,4.78301 -1.81783,5.20179 -6.18445,4.06067 z m -265.87191,-10.79564 -2.39931,-9.67948 -2.79205,2.19623 c -1.53563,1.20792 -2.95962,2.02866 -3.16443,1.82385 -0.20481,-0.2048 0.45171,-2.3936 1.45893,-4.864 1.00721,-2.4704 2.08435,-5.27913 2.39365,-6.24163 0.38632,-1.2022 1.60129,-1.75 3.88133,-1.75 2.63951,0 4.2837,0.97945 8.03138,4.78435 2.59183,2.63139 4.71241,5.55639 4.71241,6.5 0,2.44192 -1.09405,2.12956 -3.6228,-1.03435 -1.20886,-1.5125 -2.53285,-2.41791 -2.9422,-2.01203 -0.40936,0.40589 0.27444,4.59426 1.51954,9.30748 1.24511,4.71323 2.06938,8.76396 1.83173,9.00161 -0.23766,0.23766 -1.79938,0.70556 -3.47049,1.03978 l -3.03838,0.60768 z"+         style="fill:#40bf4c;fill-opacity:1" />+      <path+         sodipodi:nodetypes="ccccccccc"+         style="fill:#d8372c;fill-opacity:1"+         d="m 280.84173,275.15053 0,-7.5 34.5,0 34.5,0 0,7.5 0,7.5 -34.5,0 -34.5,0 z"+         id="path4113"+         inkscape:connector-curvature="0" />+      <path+         sodipodi:nodetypes="sssssscssssssscccccccsssssss"+         style="fill:#666666;fill-opacity:1;fill-rule:nonzero"+         d="m 305.37638,349.62884 c -7.82337,-2.34524 -9.93249,-3.49941 -14.92004,-8.16468 -6.87887,-6.43437 -9.31806,-12.59298 -9.31806,-23.52679 0,-9.89596 2.18037,-16.19728 7.53932,-21.78886 3.82241,-3.98833 9.65386,-7.16237 13.15894,-7.16237 2.48831,0 2.53984,0.14842 2.53984,7.31479 l 0,7.31479 -3.45481,1.64748 c -4.81886,2.29795 -6.86084,6.68232 -6.35692,13.64901 0.80898,11.18406 7.23177,15.57393 22.7861,15.57393 7.49151,0 10.17602,-0.39397 12.57134,-1.84493 6.58103,-3.98644 9.88655,-12.78524 7.50927,-19.98849 -1.34692,-4.08119 -7.17683,-9.66658 -10.08978,-9.66658 -1.76771,0 -1.9652,0.70826 -1.9652,7.04772 l 0,7.04771 -6.25,-0.29771 -6.25,-0.29772 0,-14 0,-14 18.5,0 18.5,0 0.30226,5.25 c 0.259,4.49869 0.0444,5.25219 -1.5,5.26531 -4.31224,0.0366 -4.5766,1.53706 -1.13167,6.42294 3.21746,4.56328 3.32941,5.04721 3.32941,14.3919 0,8.31506 -0.34655,10.34833 -2.47354,14.51253 -5.22325,10.22604 -15.21053,15.75616 -29.43932,16.30103 -5.72334,0.21916 -10.75291,-0.15138 -13.58714,-1.00101 z"+         id="path4115"+         inkscape:connector-curvature="0" />+    </g>+  </g>+</svg>
+ doc/logo-old_small.png view

binary file changed (absent → 4713 bytes)

+ doc/logo.mdwn view
@@ -0,0 +1,13 @@+Variants of the git-annex logo.++[[logo_small.png]]++[[logo.svg]]++[[logo-old.png]]++[[logo-old_small.png]]++[[logo-old.svg]]++[[logo-old-bw.svg]]
− doc/logo.png

binary file changed (9092 → absent bytes)

doc/logo.svg view
@@ -9,37 +9,18 @@    xmlns="http://www.w3.org/2000/svg"    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"-   width="640px"-   height="480px"-   id="svg3134"-   version="1.1"-   inkscape:version="0.48.3.1 r9886"-   sodipodi:docname="git-annex.svg">-  <defs-     id="defs3136" />-  <sodipodi:namedview-     id="base"-     pagecolor="#ffffff"-     bordercolor="#666666"-     borderopacity="1.0"-     inkscape:pageopacity="0.0"-     inkscape:pageshadow="2"-     inkscape:zoom="0.77472527"-     inkscape:cx="398.6665"-     inkscape:cy="232.05718"-     inkscape:current-layer="layer1"-     inkscape:document-units="px"-     showgrid="false"-     inkscape:window-width="1024"-     inkscape:window-height="566"-     inkscape:window-x="0"-     inkscape:window-y="12"-     inkscape:window-maximized="0" />+   id="svg2"+   sodipodi:version="0.32"+   inkscape:version="0.47 r22583"+   width="251.1875"+   height="240.34375"+   version="1.0"+   sodipodi:docname="gitlogo.svg">   <metadata-     id="metadata3139">+     id="metadata7">     <rdf:RDF>       <cc:Work-         rdf:about="">+         rdf:about="Git Logo">         <dc:format>image/svg+xml</dc:format>         <dc:type            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />@@ -47,31 +28,65 @@       </cc:Work>     </rdf:RDF>   </metadata>-  <g-     id="layer1"-     inkscape:label="Layer 1"-     inkscape:groupmode="layer">-    <g-       id="g4187"-       transform="matrix(2.0184211,0,0,1.9796558,-320.30102,-235.1316)">-      <path-         sodipodi:nodetypes="cccccccccccccccccccccccccssscssssssssscssssssssssscccssssscccssssssssssssssssssscssssssssssscsssssssccscsssssssssscc"-         inkscape:connector-curvature="0"-         id="path3050"-         d="m 306.53525,253.83733 0,-8.5 -13,0 -13,0 0,-7 0,-7 13,0 13,0 0,-9 0,-9 8,0 8,0 0,9 0,9 13.5,0 13.5,0 0,6.97097 0,6.97098 -13.25,0.27902 -13.25,0.27903 -0.29044,8.25 -0.29044,8.25 -7.95956,0 -7.95956,0 z m 47.61806,-15.65972 c -0.74279,-3.71392 -0.94449,-3.42973 3.03949,-4.28261 2.93725,-0.62881 3.20635,-0.45381 3.8569,2.5081 0.76528,3.48431 -0.41943,4.89211 -4.13945,4.91892 -1.59,0.0114 -2.2841,-0.78019 -2.75694,-3.14441 z m -84.47495,0.26933 c -0.94509,-0.59884 -1.14465,-1.8261 -0.65756,-4.04384 0.65055,-2.96191 0.91965,-3.13691 3.8569,-2.5081 3.98398,0.85288 3.78228,0.56869 3.03949,4.28261 -0.65225,3.26128 -3.20683,4.19049 -6.23883,2.26933 z m 100.10308,-3.6591 c -0.97397,-3.17349 -0.87771,-3.38331 2.01471,-4.39162 1.67065,-0.58239 3.15137,-1.05889 3.2905,-1.05889 0.4817,0 2.45604,6.32589 2.08892,6.69301 -0.20278,0.20279 -1.71928,0.75604 -3.36999,1.22946 -2.80739,0.80515 -3.06738,0.64545 -4.02414,-2.47196 z m -113.99619,0.35127 c -1.7875,-0.47243 -3.25,-1.00395 -3.25,-1.18115 0,-0.1772 0.49915,-1.75406 1.10923,-3.50413 0.91204,-2.61627 1.48981,-3.06573 3.25,-2.52826 4.14258,1.26494 4.43043,1.70725 3.24882,4.99213 -1.03407,2.8747 -1.32505,3.02302 -4.35805,2.22141 z m 129.06865,-5.76854 c -1.11873,-2.96385 -1.11262,-2.97064 6.23124,-6.93187 11.96671,-6.45476 21.33423,-14.04033 29.99155,-24.28638 l 3.95856,-4.685 2.84471,2.29809 2.84471,2.29809 -9.25283,9.67863 c -8.79487,9.19959 -19.77532,17.52628 -29.64675,22.48171 -5.4019,2.71174 -5.63638,2.68304 -6.97119,-0.85327 z m -150.51915,-3.39396 c -11.32927,-6.45626 -16.6312,-10.65046 -26.27844,-20.78805 l -8.69524,-9.13721 2.83709,-2.29202 2.83709,-2.29201 3.95856,4.685 c 8.65732,10.24605 18.02484,17.83162 29.99155,24.28638 7.34386,3.96123 7.34997,3.96802 6.23124,6.93187 -0.6159,1.63172 -1.59457,2.96676 -2.1748,2.96676 -0.58024,0 -4.49841,-1.96233 -8.70705,-4.36072 z m 197.47834,-38.29522 c -2.09037,-1.45905 -2.13303,-1.72341 -0.71926,-4.45733 1.4686,-2.83997 1.57066,-2.87126 4.47216,-1.37083 3.40528,1.76094 3.33869,1.57918 1.80874,4.93705 -1.32493,2.9079 -2.42066,3.08347 -5.56164,0.89111 z m -239.11733,-2.89111 c -1.52994,-3.35787 -1.59653,-3.17611 1.80875,-4.93705 2.90195,-1.50066 3.00339,-1.46947 4.47476,1.37584 1.43273,2.7706 1.38758,2.98858 -0.93408,4.50979 -3.28831,2.15458 -3.99241,2.02973 -5.34943,-0.94858 z m 246.64289,-10.99695 c -2.45185,-1.33105 -2.60181,-1.73585 -1.65218,-4.45996 0.57444,-1.64782 1.15826,-2.99604 1.29738,-2.99604 0.60971,0 6.5514,2.22072 6.5514,2.4486 0,1.19224 -2.34002,6.54254 -2.84783,6.51136 -0.35869,-0.022 -1.86564,-0.6988 -3.34877,-1.50396 z m -253.70558,-3.60522 c -0.6038,-1.73208 -1.09782,-3.26306 -1.09782,-3.40218 0,-0.22788 5.94169,-2.4486 6.5514,-2.4486 0.13912,0 0.72372,1.35046 1.29912,3.00103 0.96336,2.76352 0.81674,3.11967 -1.85252,4.5 -3.77382,1.95152 -3.6274,2.00083 -4.90018,-1.65025 z M 444.28525,158.648 c -2.1876,-0.57167 -2.18224,-0.77619 0.25,-9.55323 2.47969,-8.94824 2.50293,-8.57624 -0.5,-8.00219 -1.84865,0.35339 -2.5,0.0485 -2.5,-1.17006 0,-0.90638 0.57475,-1.86851 1.27722,-2.13807 0.70247,-0.26957 2.3837,-2.28045 3.73607,-4.46862 2.0259,-3.27798 3.01446,-3.9785 5.61437,-3.9785 2.51679,0 3.28029,0.49712 3.77191,2.4559 0.33902,1.35074 1.12185,3.71324 1.73962,5.25 2.47807,6.16438 1.30071,9.90716 -2.13766,6.79549 -2.06349,-1.86744 -1.83495,-2.35222 -5.06708,10.74861 -1.18002,4.78301 -1.81783,5.20179 -6.18445,4.06067 z m -265.87191,-10.79564 -2.39931,-9.67948 -2.79205,2.19623 c -1.53563,1.20792 -2.95962,2.02866 -3.16443,1.82385 -0.20481,-0.2048 0.45171,-2.3936 1.45893,-4.864 1.00721,-2.4704 2.08435,-5.27913 2.39365,-6.24163 0.38632,-1.2022 1.60129,-1.75 3.88133,-1.75 2.63951,0 4.2837,0.97945 8.03138,4.78435 2.59183,2.63139 4.71241,5.55639 4.71241,6.5 0,2.44192 -1.09405,2.12956 -3.6228,-1.03435 -1.20886,-1.5125 -2.53285,-2.41791 -2.9422,-2.01203 -0.40936,0.40589 0.27444,4.59426 1.51954,9.30748 1.24511,4.71323 2.06938,8.76396 1.83173,9.00161 -0.23766,0.23766 -1.79938,0.70556 -3.47049,1.03978 l -3.03838,0.60768 z"-         style="fill:#40bf4c;fill-opacity:1" />-      <path-         sodipodi:nodetypes="ccccccccc"-         style="fill:#d8372c;fill-opacity:1"-         d="m 280.84173,275.15053 0,-7.5 34.5,0 34.5,0 0,7.5 0,7.5 -34.5,0 -34.5,0 z"-         id="path4113"-         inkscape:connector-curvature="0" />-      <path-         sodipodi:nodetypes="sssssscssssssscccccccsssssss"-         style="fill:#666666;fill-opacity:1;fill-rule:nonzero"-         d="m 305.37638,349.62884 c -7.82337,-2.34524 -9.93249,-3.49941 -14.92004,-8.16468 -6.87887,-6.43437 -9.31806,-12.59298 -9.31806,-23.52679 0,-9.89596 2.18037,-16.19728 7.53932,-21.78886 3.82241,-3.98833 9.65386,-7.16237 13.15894,-7.16237 2.48831,0 2.53984,0.14842 2.53984,7.31479 l 0,7.31479 -3.45481,1.64748 c -4.81886,2.29795 -6.86084,6.68232 -6.35692,13.64901 0.80898,11.18406 7.23177,15.57393 22.7861,15.57393 7.49151,0 10.17602,-0.39397 12.57134,-1.84493 6.58103,-3.98644 9.88655,-12.78524 7.50927,-19.98849 -1.34692,-4.08119 -7.17683,-9.66658 -10.08978,-9.66658 -1.76771,0 -1.9652,0.70826 -1.9652,7.04772 l 0,7.04771 -6.25,-0.29771 -6.25,-0.29772 0,-14 0,-14 18.5,0 18.5,0 0.30226,5.25 c 0.259,4.49869 0.0444,5.25219 -1.5,5.26531 -4.31224,0.0366 -4.5766,1.53706 -1.13167,6.42294 3.21746,4.56328 3.32941,5.04721 3.32941,14.3919 0,8.31506 -0.34655,10.34833 -2.47354,14.51253 -5.22325,10.22604 -15.21053,15.75616 -29.43932,16.30103 -5.72334,0.21916 -10.75291,-0.15138 -13.58714,-1.00101 z"-         id="path4115"-         inkscape:connector-curvature="0" />-    </g>-  </g>+  <defs+     id="defs5">+    <inkscape:perspective+       sodipodi:type="inkscape:persp3d"+       inkscape:vp_x="0 : 94 : 1"+       inkscape:vp_y="0 : 1000 : 0"+       inkscape:vp_z="97 : 94 : 1"+       inkscape:persp3d-origin="48.5 : 62.666667 : 1"+       id="perspective11" />+    <inkscape:perspective+       id="perspective3682"+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"+       inkscape:vp_z="1 : 0.5 : 1"+       inkscape:vp_y="0 : 1000 : 0"+       inkscape:vp_x="0 : 0.5 : 1"+       sodipodi:type="inkscape:persp3d" />+  </defs>+  <sodipodi:namedview+     inkscape:window-height="825"+     inkscape:window-width="1440"+     inkscape:pageshadow="2"+     inkscape:pageopacity="0.0"+     guidetolerance="10.0"+     gridtolerance="10.0"+     objecttolerance="10.0"+     borderopacity="1.0"+     bordercolor="#666666"+     pagecolor="#ffffff"+     id="base"+     inkscape:zoom="1.7347111"+     inkscape:cx="79.460121"+     inkscape:cy="96.862066"+     inkscape:window-x="0"+     inkscape:window-y="25"+     inkscape:current-layer="svg2"+     showguides="false"+     showgrid="false"+     inkscape:window-maximized="1" />+  <path+     sodipodi:nodetypes="ccccccccccccccccccc"+     id="path1927"+     d="m 115.03986,236.92929 c -15.769481,-2.03151 -31.998702,-16.94187 -34.26618,-34.43444 -2.174671,-14.62409 0.962744,-31.69413 13.051455,-41.34542 5.302266,-3.61399 12.514875,-7.66322 18.875285,-7.18134 0.1905,6.47429 -0.19049,14.34359 0,20.81788 -7.57578,0.84345 -14.909032,9.45432 -14.756408,17.33851 0.185705,10.26001 4.726478,19.68681 14.597668,22.75753 10.91859,3.67394 23.41726,2.62901 33.52469,-3.47905 8.34971,-6.50563 9.12218,-18.61836 4.75506,-27.83618 -1.96442,-5.07246 -6.19899,-8.79638 -11.94647,-8.78081 l 0,18.05778 -16.20641,0 0,-38.87566 49.07678,0 0,13.97989 -13.44239,0.12434 c 12.54392,7.15066 13.82967,22.58379 13.18688,33.29078 0.45188,18.39283 -17.71936,33.38895 -35.74198,35.39399 -6.52041,0.48886 -12.03738,0.51459 -20.70798,0.1722 z"+     style="fill:#666666;fill-opacity:1" />+  <path+     sodipodi:nodetypes="ccccc"+     id="path1925"+     d="m 79.977992,146.2455 -0.103031,-20.40175 91.999999,0 -0.0106,20.5 -91.886388,-0.0983 z"+     style="fill:#d8382d;fill-opacity:1" />+  <path+     sodipodi:nodetypes="ccccccccccccc"+     id="path1917"+     d="m 115.04163,118.67709 0,-21.83334 -35.666669,0 0,-19 35.666669,0 0,-24.5 21.33333,0 0,24.5 35.5,0 0,19 -35.5,0 -0.35168,21.78777 -20.98165,0.0456 z"+     style="fill:#40bf4c;fill-opacity:1" />+  <path+     style="fill:#40bf4c;fill-opacity:1;fill-rule:evenodd;stroke:none"+     d="M 21.28125,0 0,29.75 l 11.8125,0 c 0.02423,3.288346 0.302477,6.52723 0.78125,9.6875 L 31.375,36.59375 C 31.03908,34.358787 30.836567,32.072528 30.8125,29.75 l 11.75,0 L 21.28125,0 z M 32.84375,43.28125 14.6875,48.75 c 0.923692,3.063035 2.046663,6.043138 3.375,8.90625 L 35.28125,49.6875 c -0.956041,-2.062577 -1.776322,-4.198284 -2.4375,-6.40625 z m 5.6875,12.25 L 22.5625,65.8125 C 29.747774,76.954156 40.108616,85.860221 52.375,91.21875 L 59.96875,73.8125 C 51.136943,69.958114 43.695592,63.555939 38.53125,55.53125 z m 27.75,20.5 -5.125,18.3125 c 2.899536,0.810722 5.86596,1.421431 8.90625,1.84375 l 2.625,-18.8125 c -2.184482,-0.307312 -4.321319,-0.760497 -6.40625,-1.34375 z"+     id="path2836" />+  <path+     style="fill:#40bf4c;fill-opacity:1;fill-rule:evenodd;stroke:none"+     d="m 229.90625,0 -21.28125,29.75 11.8125,0 c -0.024,2.322528 -0.22658,4.608787 -0.5625,6.84375 l 18.78125,2.84375 c 0.47877,-3.16027 0.75698,-6.399154 0.78125,-9.6875 l 11.75,0 L 229.90625,0 z m -11.5,43.28125 c -0.66118,2.207966 -1.48146,4.343673 -2.4375,6.40625 l 17.21875,7.96875 c 1.32834,-2.863112 2.45131,-5.843215 3.375,-8.90625 l -18.15625,-5.46875 z m -5.6875,12.25 c -5.16434,8.024689 -12.60569,14.426864 -21.4375,18.28125 L 198.875,91.21875 C 211.14138,85.860221 221.50223,76.954156 228.6875,65.8125 L 212.71875,55.53125 z m -27.75,20.5 c -2.08493,0.583253 -4.22177,1.036438 -6.40625,1.34375 l 2.625,18.8125 c 3.04029,-0.422319 6.00671,-1.033028 8.90625,-1.84375 l -5.125,-18.3125 z"+     id="path3649" /> </svg>
doc/logo_small.png view

binary file changed (4713 → 4749 bytes)

− doc/news/version_4.20130521.mdwn
@@ -1,24 +0,0 @@-git-annex 4.20130521 released with [[!toggle text="these changes"]]-[[!toggleable text="""-   * Sanitize debian changelog version before putting it into cabal file.-     Closes: #[708619](http://bugs.debian.org/708619)-   * Switch to MonadCatchIO-transformers for better handling of state while-     catching exceptions.-   * Fix a zombie that could result when running a process like gpg to-     read and write to it.-   * Allow building with gpg2.-   * Disable building with the haskell threaded runtime when the webapp-     is not built. This may fix builds on mips, s390x and sparc, which are-     failing to link -lHSrts\_thr-   * Temporarily build without webapp on kfreebsd-i386, until yesod is-     installable there again.-   * Direct mode bug fix: After a conflicted merge was automatically resolved,-     the content of a file that was already present could incorrectly-     be replaced with a symlink.-   * Fix a bug in the git-annex branch handling code that could-     cause info from a remote to not be merged and take effect immediately.-   * Direct mode is now fully tested by the test suite.-   * Detect bad content in ~/.config/git-annex/program and look in PATH instead.-   * OSX: Fixed gpg included in dmg.-   * Linux standalone: Back to being built with glibc 2.13 for maximum-     portability."""]]
+ doc/news/version_4.20130723.mdwn view
@@ -0,0 +1,36 @@+git-annex 4.20130723 released with [[!toggle text="these changes"]]+[[!toggleable text="""+   * Fix data loss bug when adding an (uncompressed) tarball of a+     git-annex repository, or other file that begins with something+     that can be mistaken for a git-annex link. Closes: #[717456](http://bugs.debian.org/717456)+   * New improved version of the git-annex logo, contributed by+     John Lawrence.+   * Rsync.net have committed to support git-annex and offer a special+     discounted rate for git-annex users. Updated the webapp to reflect this.+     http://www.rsync.net/products/git-annex-pricing.html+   * Install XDG desktop icon files.+   * Support unannex and uninit in direct mode.+   * Support import in direct mode.+   * webapp: Better display of added files.+   * fix: Preserve the original mtime of fixed symlinks.+   * uninit: Preserve .git/annex/objects at the end, if it still+     has content, so that old versions of files and deleted files+     are not deleted. Print a message with some suggested actions.+   * When a transfer is already being run by another process,+     proceed on to the next file, rather than dying.+   * Fix checking when content is present in a non-bare repository+     accessed via http.+   * Display byte sizes with more precision.+   * watcher: Fixed a crash that could occur when a directory was renamed+     or deleted before it could be scanned.+   * watcher: Partially worked around a bug in hinotify, no longer crashes+     if hinotify cannot process a directory (but can't detect changes in it)+   * directory special remote: Fix checking that there is enough disk space+     to hold an object, was broken when using encryption.+   * webapp: Differentiate between creating a new S3/Glacier/WebDav remote,+     and initializing an existing remote. When creating a new remote, avoid+     conflicts with other existing (or deleted) remotes with the same name.+   * When an XMPP server has SRV records, try them, but don't then fall+     back to the regular host if they all fail.+   * For long hostnames, use a hash of the hostname to generate the socket+     file for ssh connection caching."""]]
doc/preferred_content.mdwn view
@@ -80,7 +80,7 @@ with a special name.  The name of the directory can be configured using -`git annex initremote $remote preferreddir=$dirname`+`git annex enableremote $remote preferreddir=$dirname`  (If no directory name is configured, it uses "public" by default.) @@ -186,9 +186,7 @@ repository.)  The name of the directory can be configured using-`git annex initremote $remote preferreddir=$dirname`--`inpreferreddir`+`git annex enableremote $remote preferreddir=$dirname`  ### unwanted 
doc/sidebar.mdwn view
@@ -9,4 +9,7 @@ * [[forum]] * [[comments]] * [[contact]]-* <a href="http://flattr.com/thing/84843/git-annex"><img src="https://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" /></a>++[crowdfunding campaign underway!](https://campaign.joeyh.name/)++<!-- * <a href="http://flattr.com/thing/84843/git-annex"><img src="https://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" /></a> -->
+ doc/special_remotes/directory/comment_12._comment view
@@ -0,0 +1,16 @@+[[!comment format=mdwn+ username="http://joeyh.name/"+ ip="4.153.2.25"+ subject="comment 2"+ date="2013-07-19T13:54:10Z"+ content="""+@Laura the directory special remote requires files to+be in a particular directory structure with special names+git-annex comes up with. So you can't use it on an existing+tree of files like that.++What you can do is use the [[web_special_remote|web]],+with a `file://` url to point to the files wherever+they are stored. So for example,+`git annex addurl file:///media/dvd/file`+"""]]
+ doc/tips/owncloudannex/comment_1_129652308c3c499462828dcaf8e747a4._comment view
@@ -0,0 +1,40 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawkQvRLq7nMMEGoEKuYx9oaf67IC0nZfmVI"+ nickname="chung yan"+ subject="owncloud hook exited nonzero"+ date="2013-07-10T05:03:47Z"+ content="""+hi ++I got the above message, and cannot sync to my owncloud. Here is the log file i had: ++>[2013-07-10 12:30:31 HKT] main: starting assistant version 4.20130627+(scanning...) [2013-07-10 12:30:31 HKT] Watcher: Performing startup scan+(started...) git-annex: Daemon is already running.+git-annex: Daemon is already running.+[2013-07-10 12:44:04 HKT] Committer: Adding sync2Servers.sh++>add syncByRsync/sync2Servers.sh (checksum...) [2013-07-10 12:44:04 HKT] Committer: Committing changes to git+(gpg) ++>owncloud hook exited nonzero!+>git-annex: Daemon is already running.+[2013-07-10 12:51:07 HKT] main: Syncing with owncloud ++>owncloud hook exited nonzero!+>[2013-07-10 12:53:10 HKT] Committer: Adding 2 files+ok+(Recording state in git...)+(Recording state in git...)+add syncByRsync/DSCN1810.JPG (checksum...) ok+add syncByRsync/DSCN1810.JPG (checksum...) [2013-07-10 12:53:10 HKT] Committer: Committing changes to git++>owncloud hook exited nonzero!+[2013-07-10 12:53:50 HKT] main: Syncing with owncloud +  owncloud hook exited nonzero!+  owncloud hook exited nonzero!++thanks++yan+"""]]
+ doc/tips/owncloudannex/comment_2_38604990368666f654d41891ba99ac61._comment view
@@ -0,0 +1,15 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawmLB39PC89rfGaA8SwrsnB6tbumezj-aC0"+ nickname="Tobias"+ subject="comment 2"+ date="2013-07-10T08:21:39Z"+ content="""+Personally i've only seen that when the server ran out of space. But lets see what is going on.++Please run this command++git config annex.owncloud-hook '/usr/bin/python2 ~/owncloudannex/owncloudannex.py --dbglevel 1 --stderr'++And then replicate the error. It should give me some debug information to work with.++"""]]
+ doc/tips/owncloudannex/comment_3_1bfd290d00d6536da7d31818db46f8ec._comment view
@@ -0,0 +1,87 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawkQvRLq7nMMEGoEKuYx9oaf67IC0nZfmVI"+ nickname="chung yan"+ subject="comment 3"+ date="2013-07-10T08:46:27Z"+ content="""+hi Tobias ++Thanks your suggestion for list of my error log, here it is: ++[2013-07-10 16:27:58 HKT] main: starting assistant version 4.20130627+(scanning...) [2013-07-10 16:27:58 HKT] Watcher: Performing startup scan+(started...) [2013-07-10 16:28:14 HKT] Committer: Adding 2 files++add syncByRsync/sync2Servers.sh (checksum...) ok+add syncByRsync/sync2Servers.sh (checksum...) [2013-07-10 16:28:14 HKT] Committer: Committing changes to git+[2013-07-10 16:31:12 HKT] Watcher: add direct DSCN1810.JPG+[2013-07-10 16:31:12 HKT] read: lsof [\"-F0can\",\"+d\",\"/home/yan/annex_testing/.git/annex/tmp/\"]+[2013-07-10 16:31:12 HKT] Committer: Adding DSCN1810.JPG+ok+(Recording state in git...)+(Recording state in git...)+add DSCN1810.JPG [2013-07-10 16:31:12 HKT](checksum...)  Watcher: add direct DSCN1810.JPG+[2013-07-10 16:31:12 HKT] read: sha256sum [\"/home/yan/annex_testing/.git/annex/tmp/DSCN181012023.JPG\"]++  DSCN1810.JPG changed while it was being added+[2013-07-10 16:31:12 HKT] Committer: delaying commit of 1 changes+[2013-07-10 16:31:13 HKT] read: lsof [\"-F0can\",\"+d\",\"/home/yan/annex_testing/.git/annex/tmp/\"]+[2013-07-10 16:31:13 HKT] Committer: Adding 2 files+failed+add DSCN1810.JPG (checksum...) [2013-07-10 16:31:13 HKT] read: sha256sum [\"/home/yan/annex_testing/.git/annex/tmp/DSCN181012023.JPG\"]+[2013-07-10 16:31:13 HKT] chat: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"hash-object\",\"-t\",\"blob\",\"-w\",\"--stdin\",\"--no-filters\"]+ok+add DSCN1810.JPG (checksum...) [2013-07-10 16:31:13 HKT] read: sha256sum [\"/home/yan/annex_testing/.git/annex/tmp/DSCN181012024.JPG\"]+[2013-07-10 16:31:13 HKT] chat: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"hash-object\",\"-t\",\"blob\",\"-w\",\"--stdin\",\"--no-filters\"]+[2013-07-10 16:31:13 HKT] Committer: committing 2 changes+[2013-07-10 16:31:13 HKT] Committer: Committing changes to git+[2013-07-10 16:31:13 HKT] feed: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"update-index\",\"-z\",\"--index-info\"]+[2013-07-10 16:31:13 HKT] read: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"commit\",\"--allow-empty-message\",\"--no-edit\",\"-m\",\"\",\"--quiet\",\"--no-verify\"]+[2013-07-10 16:31:13 HKT] Committer: queued Upload UUID \"df02d32a-7e3a-4e12-a417-7f1d1a1cf1a6\" DSCN1810.JPG Nothing : new file created+[2013-07-10 16:31:13 HKT] chat: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"hash-object\",\"-w\",\"--stdin-paths\",\"--no-filters\"]+[2013-07-10 16:31:13 HKT] feed: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"update-index\",\"-z\",\"--index-info\"]+[2013-07-10 16:31:13 HKT] read: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]+[2013-07-10 16:31:13 HKT] read: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"write-tree\"]+[2013-07-10 16:31:13 HKT] chat: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"commit-tree\",\"a8337a989b58b29eee5fd2fa7a4c0b8ec45d5e59\",\"-p\",\"refs/heads/git-annex\"]+[2013-07-10 16:31:13 HKT] call: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"update-ref\",\"refs/heads/git-annex\",\"267bf35da4d9abe5ed7fe82ea5df8a8df2ddf940\"]+[2013-07-10 16:31:13 HKT] read: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"symbolic-ref\",\"HEAD\"]+[2013-07-10 16:31:13 HKT] read: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"show-ref\",\"refs/heads/master\"]+[2013-07-10 16:31:13 HKT] Transferrer: Transferring: Upload UUID \"df02d32a-7e3a-4e12-a417-7f1d1a1cf1a6\" DSCN1810.JPG Nothing+[2013-07-10 16:31:13 HKT] read: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"show-ref\",\"git-annex\"]+[2013-07-10 16:31:13 HKT] call: git-annex [\"transferkeys\",\"--readfd\",\"46\",\"--writefd\",\"36\"]+[2013-07-10 16:31:13 HKT] read: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]+[2013-07-10 16:31:13 HKT] read: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"log\",\"refs/heads/git-annex..267bf35da4d9abe5ed7fe82ea5df8a8df2ddf940\",\"--oneline\",\"-n1\"]+[2013-07-10 16:31:13 HKT] read: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"show-ref\",\"git-annex\"]+[2013-07-10 16:31:13 HKT] read:[2013-07-10 16:31:13 HKT] read: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"ls-tree\",\"-z\",\"--\",\"refs/heads/git-annex\",\"uuid.log\",\"remote.log\",\"trust.log\",\"group.log\",\"preferred-content.log\"]+ git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]+[2013-07-10 16:31:13 HKT] read: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"log\",\"refs/heads/git-annex..267bf35da4d9abe5ed7fe82ea5df8a8df2ddf940\",\"--oneline\",\"-n1\"]+[2013-07-10 16:31:13 HKT] chat: git [\"--git-dir=/home/yan/annex_testing/.git\",\"--work-tree=/home/yan/annex_testing\",\"cat-file\",\"--batch\"]+(gpg) [2013-07-10 16:31:13 HKT] TransferWatcher: transfer starting: Upload UUID \"df02d32a-7e3a-4e12-a417-7f1d1a1cf1a6\" DSCN1810.JPG Nothing+[2013-07-10 16:31:13 HKT] chat: gpg [\"--batch\",\"--no-tty\",\"--use-agent\",\"--quiet\",\"--trust-model\",\"always\",\"--batch\",\"--passphrase-fd\",\"48\",\"--symmetric\",\"--force-mdc\"]+[2013-07-10 16:31:14 HKT] call: sh [\"-c\",\"/usr/bin/python2 /home/yan/annex/SocialBusiness/Resources/Infrastructure/Computer_Tools/Records/AsusU24/owncloudannex/owncloudannex.py --dbglevel 1 --stderr\"]++ 16:31:16 [owncloudannex-0.1.1] <module> : 'START'+ 16:31:16 [owncloudannex-0.1.1] main : 'ARGS: 'ANNEX_ACTION=store ANNEX_KEY=GPGHMACSHA1--0179fbbf559d5c25cf69b4e92025ff1f007d4f1f ANNEX_HASH_1=fp ANNEX_HASH_2=23 ANNEX_FILE=/home/yan/annex_testing/.git/annex/tmp/GPGHMACSHA1--0179fbbf559d5c25cf69b4e92025ff1f007d4f1f /home/yan/annex/SocialBusiness/Resources/Infrastructure/Computer_Tools/Records/AsusU24/owncloudannex/owncloudannex.py --dbglevel 1 --stderr''+ 16:31:16 [owncloudannex-0.1.1] readFile : ''/home/yan/annex/SocialBusiness/Resources/Infrastructure/Computer_Tools/Records/AsusU24/owncloudannex/owncloudannex.conf' - 'r''+ 16:31:16 [owncloudannex-0.1.1] readFile : 'Done'+ 16:31:16 [owncloudannex-0.1.1] login : ''+ 16:31:16 [owncloudannex-0.1.1] login : 'Using base: wingyan.no-ip.org - {'Authorization': 'Basic Y2h1bmd5YW41QGdtYWlsLmNvbTp5YW5fd2lraQ=='}'+ 16:31:16 [owncloudannex-0.1.1] login : 'res: <davlib.DAV instance at 0x12915f0>'+ 16:31:16 [owncloudannex-0.1.1] findInFolder : 'u'gitannex'(<type 'unicode'>) - '/'(<type 'str'>)'+ 16:31:17 [owncloudannex-0.1.1] findInFolder : 'propfind: /owncloud/remote.php/webdav - '<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<d:error xmlns:d=\"DAV:\" xmlns:s=\"http://sabredav.org/ns\">\n  <s:exception>Sabre_DAV_Exception_NotAuthenticated</s:exception>\n  <s:message>Username or password does not match</s:message>\n  <s:sabredav-version>1.7.6</s:sabredav-version>\n</d:error>\n''+ 16:31:17 [owncloudannex-0.1.1] findInFolder : 'Failure'+ 16:31:17 [owncloudannex-0.1.1] createFolder : '/gitannex'+ 16:31:18 [owncloudannex-0.1.1] createFolder : 'Failure: 401 - '<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<d:error xmlns:d=\"DAV:\" xmlns:s=\"http://sabredav.org/ns\">\n  <s:exception>Sabre_DAV_Exception_NotAuthenticated</s:exception>\n  <s:message>Username or password does not match</s:message>\n  <s:sabredav-version>1.7.6</s:sabredav-version>\n</d:error>\n''+++  owncloud hook exited nonzero!+[2013-07-10 16:31:18 HKT] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID \"df02d32a-7e3a-4e12-a417-7f1d1a1cf1a6\", transferKey = Key {keyName = \"911ba6148fbcbe4afe53772f1216b8204f403ed4ee06cb90c3c3ac25e56d9402.JPG\", keyBackendName = \"SHA256E\", keySize = Just 1893431, keyMtime = Nothing}}++I figured out it is a *Username or password does not match*, and i saw the content of owncloudannex.conf as \"uname\": \"myGmail@gmail.com\", but i quickly saw my WebDAV login to owncloud as my user name, not gmail address, so i changed this \"uname\": \"my_normal_user_name_not_gmail_acc\" inside owncloudannex.conf. Finally, i got it work. So, i think, user name should not be a gmail address, should be owncloud login user name. ++Another issue, i had a look into /WebDAV.../gitannex/, it is git repos. file, for my user opinion, it is better that it is a real file content that we can see the file(such as photos) by owncloud web client directly, rather that owncloud is a file server to keep git repos only. ++Thanks++yan+"""]]
+ doc/tips/owncloudannex/comment_4_492b6922a7c5bb5464fedb46b0c5303b._comment view
@@ -0,0 +1,17 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawmLB39PC89rfGaA8SwrsnB6tbumezj-aC0"+ nickname="Tobias"+ subject="comment 4"+ date="2013-07-10T08:54:13Z"+ content="""+Hm, an error like that it really should print without the need of debug information. I'll look into it.++And if you want the real file content, not encrypted, just change \"shared\" to \"none\" in the line:++git annex initremote owncloud type=hook hooktype=owncloud encryption=shared++I'm not sure if you can change this after you initialized the remote though. And also, the folder structure and filenames will be as you see them now on the owncloud. I'd need some more data from gitannex to make it show the real directory structure. But that doesn't seem feasible.++Why would you even want the data unencrypted on owncloud anyways? i mean on flickr, or googledocs, i kinda get it. but for owncloud?++"""]]
+ doc/tips/owncloudannex/comment_5_1d48ac08714fadcb06d874570d745bd8._comment view
@@ -0,0 +1,16 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawkQvRLq7nMMEGoEKuYx9oaf67IC0nZfmVI"+ nickname="chung yan"+ subject="comment 5"+ date="2013-07-10T09:43:55Z"+ content="""+hi Tobias++thanks your sharing, i am still in have a trial of git-annex, so i do not yet have real data on the server, so i just del. all and re-create both client and server repos in owncloud, i can got what you said, and see my photo. ++Actually, i am studying git-annex. 1) It can syncs the data from my client computer to server. 2) i would like that other and anywhere computers through browser can view my server data which do not need to download all data into a new client. So my original goal is i can have a web to display the content of my files, and see owncloud have a nice web. ++Regarding to GDoc, flickr, etc. they have space limitation, so i install owncloud as my own computer. I also see the <http://git-annex.branchable.com/design/assistant/partial_content/>, but it is not yet at roadmap. ++thanks+"""]]
+ doc/tips/owncloudannex/comment_6_65959f49a2f56bffd6fe48670c0c8d5a._comment view
@@ -0,0 +1,8 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawmLB39PC89rfGaA8SwrsnB6tbumezj-aC0"+ nickname="Tobias"+ subject="comment 6"+ date="2013-07-10T09:50:14Z"+ content="""+A 1 terabyte limit(for flickr) should be enough for most people. No?+"""]]
+ doc/tips/owncloudannex/comment_7_7482002991672ef67836bae43b8d0be8._comment view
@@ -0,0 +1,8 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawkQvRLq7nMMEGoEKuYx9oaf67IC0nZfmVI"+ nickname="chung yan"+ subject="comment 7"+ date="2013-07-10T09:56:54Z"+ content="""+i have not got this 1 terabyte limit from flick before. I will have a look. I still consider some my own data, it is better to keep at my own server. +"""]]
+ doc/tips/yet_another_simple_disk_usage_like_utility.mdwn view
@@ -0,0 +1,9 @@+Here's the annex-du script that I use:++#!/bin/sh+git annex find "$@" --include '*' --format='${bytesize}\n' |awk '{ sum += $1; nfiles++; } END { printf "%d files, %.3f MB\n", nfiles, sum/1000000 } '++This one can be slow on a large number of files, but it has an advantage of being able to use all of the filtering available in git annex find.+For example, to figure out how much is stored in remote X, do++annex-du --in=X
+ doc/todo/A_really_simple_way_to_pair_devices_like_bittorent_sync.mdwn view
@@ -0,0 +1,7 @@+I like the way btsync search for the peer. So if I need to sync my laptop and other family laptop both with a total different and changing network setup the two device found each other do NAT traversal if needed use relays but the end the two folders are synced. But its closed-source :( I like git and git-annex looks really great. I'm learning it now.++First I thought with xmpp I can sync files without ssh/rsync or other remote access to my devices just with two jabber account. Now I know I can't. :(++It would be just great to have some means to sync files without cloud just the two device. Without the ssh / rsync jut share some secret and the devices do the rest. :-o++Anyway thanks for hearing. I'm looking forward to know more about git-annex. Thank you for that sw. =-<>-=
+ doc/todo/Bittorrent-like_features.mdwn view
@@ -0,0 +1,31 @@+I made an oops and created a wishlist thread in the forum regarding bittorrent-like behaviour.  Sorry, my bad.++Here's the original thread:+http://git-annex.branchable.com/forum/Wishlist:_Bittorrent-like_transfers/++I think I summed up pretty well what bittorrent-like features could be added to git-annex in one of the posts, so I'll copy and paste some of it here (with slight clarifications added in).++>Disclaimer: I'm thinking out loud of what could make git-annex even more awesome. I don't expect this to be implemented any time soon. Please pardon any dumbassery.++>Having your remotes (optionally!) act like a swarm would be an awesome feature to have because you bring in a lot of new features that optimize storage, bandwidth, and overall traffic usage. This would be made a lot easier if parts of it were implemented in small steps that added a nifty feature. The best part is, each of these could be implemented by themselves, and they're all features that would be really useful.+>+>Step 1. Concurrent downloads of a file from remotes.+>+>This would make sense to have, it saves upload traffic on your remotes, and you also get faster DL speeds on the receiving end.+>+>Step 2. Implementing part of the super-seeding capabilities.+>+>You upload pieces of a file to different remotes from your laptop, and on your desktop you can download all those pieces and put them together again to get a complete file. If you really wanted to get fancy, you could build in redundancy (ala RAID) so if a remote or two gets lost, you don't lose the entire file. This would be a very efficient use of storage if you have a bunch of free cloud storage accounts (~1GB each) and some big files you want to back up.+>+>Step 3. Setting it up so that those remotes could talk to one another and share those pieces.+>+>This is where it gets more like bittorrent. Useful because you upload 1 copy and in a few hours, have say, 5 complete copies on 5 different remotes. You could add or remove remotes from a swarm locally, and push those changes to those remotes, which then adapt themselves to suit the new rules and share those with other remotes in the swarm (rules should be GPG-signed as a safety precaution). Also, if/when deltas get implemented, you could push that delta to the swarm and have all the remotes adopt it. This is cooler than regular bittorrent because the shared file can be updated. As a safety precaution, the delta could be GPG signed so a corrupt file doesn't contaminate the entire swarm. Each remote could have bandwidth/storage limits set in a dotfile.+>+>This is a high-level idea of how it might work, and it's also a HUGE set of features to add, but if implemented, you'd be saving a ton of resources, adding new use cases, and making git-annex more flexible.++And this:++>Obviously, Step 3 would only work on remotes that you have control of processes on, but if given login credentials to cloud storage remotes (potentially dangerous!) they could read/write to something like dropbox or rsync.+>+>Another thing, this would be completely trackerless. You just use remote groups (or create swarm definitions) and share those with your remotes. **It's completely decentralized!**+
+ doc/todo/free_space_checking_for_local_special_remotes.mdwn view
@@ -0,0 +1,4 @@+Should be possible to configure an annex.diskreserve setting for local+special remotes, such as a directory special remote or possibly a bup+special remote. (Although bup's deltas will make storing some versions of+files take less space than git-annex would have to assume it would take.)
+ doc/todo/support_for_lossy_remotes.mdwn view
@@ -0,0 +1,5 @@+I'm curious if there's a possibility to support lossy remotes. It may be handy to support syncing to special remotes that do lossy compression on the files (e.g., videos and images). For example, one could imagine having a YouTube special remote that only syncs video files. The original files wouldn't be available for download due to the transcoding and compression that YouTube does, so they wouldn't count towards the number of copies. In this YouTube example, the user gains:++1. an online place that their videos are available from+2. a worst-case scenario "backup"+3. a remote that they could download smaller video files
+ doc/todo/wishlist:___34__quiet__34___annex_get_for_centralized_use_case.mdwn view
@@ -0,0 +1,9 @@+We're using git-annex to manage large files as part of a team.++We have a central repository of large files that everyone grabs from.++We would like to be able to get the files without updating the `git-annex` branch.  This way it doesn't pollute the history with essentially always unreachable locations.++I think the easiest way would be to just add an option to not update the `git-annex` branch when `annex get` is executed.++Thoughts?
doc/walkthrough/using_ssh_remotes.mdwn view
@@ -1,6 +1,6 @@ So far in this walkthrough, git-annex has been used with a remote repository on a USB drive. But it can also be used with a git remote-that is truely remote, a host accessed by ssh.+that is truly remote, a host accessed by ssh.  Say you have a desktop on the same network as your laptop and want to clone the laptop's annex to it:
git-annex.1 view
@@ -291,7 +291,7 @@ .IP For example: .IP- git annex content . "include(*.mp3) or include(*.ogg)"+ git annex content . "include=*.mp3 or include=*.ogg" .IP Without an expression, displays the current preferred content setting of the repository.@@ -344,6 +344,9 @@ but no more often than once a month. Then put this in a nightly cron job: .IP  git annex fsck \-\-incremental\-schedule 30d \-\-time\-limit 5h+.IP+To verify data integrity only while disregarding required number of copies,+use \-\-numcopies=1. .IP .IP "unused" Checks the annex for data that does not correspond to any files present
git-annex.cabal view
@@ -1,5 +1,5 @@ Name: git-annex-Version: 4.20130709+Version: 4.20130723 Cabal-Version: >= 1.8 License: GPL-3 Maintainer: Joey Hess <joey@kitenet.net>@@ -115,17 +115,18 @@     Build-Depends: data-endian     CPP-Options: -D__ANDROID__ -  if os(linux) && flag(Inotify)-    Build-Depends: hinotify-    CPP-Options: -DWITH_INOTIFY-  else-    if os(darwin)-      Build-Depends: hfsevents-      CPP-Options: -DWITH_FSEVENTS+  if flag(Assistant)+    if os(linux) && flag(Inotify)+      Build-Depends: hinotify+      CPP-Options: -DWITH_INOTIFY     else-      if (! os(windows) && ! os(solaris) && ! os(linux))-        CPP-Options: -DWITH_KQUEUE-        C-Sources: Utility/libkqueue.c+      if os(darwin)+        Build-Depends: hfsevents+        CPP-Options: -DWITH_FSEVENTS+      else+        if (! os(windows) && ! os(solaris) && ! os(linux))+          CPP-Options: -DWITH_KQUEUE+          C-Sources: Utility/libkqueue.c    if os(linux) && flag(Dbus)     Build-Depends: dbus (>= 0.10.3)
standalone/android/icons/drawable-hdpi/ic_launcher.png view

binary file changed (1991 → 2612 bytes)

standalone/android/icons/drawable-hdpi/ic_stat_service_notification_icon.png view

binary file changed (1071 → 1310 bytes)

standalone/android/icons/drawable-ldpi/ic_launcher.png view

binary file changed (1031 → 1279 bytes)

standalone/android/icons/drawable-ldpi/ic_stat_service_notification_icon.png view

binary file changed (587 → 682 bytes)

standalone/android/icons/drawable-mdpi/ic_launcher.png view

binary file changed (1389 → 1768 bytes)

standalone/android/icons/drawable-mdpi/ic_stat_service_notification_icon.png view

binary file changed (712 → 946 bytes)

standalone/android/icons/drawable-xhdpi/ic_launcher.png view

binary file changed (2671 → 3396 bytes)

standalone/android/icons/drawable/ic_launcher.png view

binary file changed (1389 → 1768 bytes)

standalone/android/icons/drawable/ic_stat_service_notification_icon.png view

binary file changed (712 → 946 bytes)

standalone/osx/git-annex.app/Contents/Resources/git-annex.icns view

binary file changed (52194 → 77548 bytes)

templates/configurators/addrepository/cloud.hamlet view
@@ -9,6 +9,8 @@     <i .icon-plus-sign></i> Rsync.net <p>   Works very well with git-annex.+  <br>+  Offers a discounted rate for git-annex users.  <h3>   <a href="@{AddS3R}">
templates/configurators/addrsync.net.hamlet view
@@ -6,7 +6,12 @@       Rsync.net #     is a well-respected cloud storage provider. Its rsync repositories are #     supported very well by git-annex. #-    <a href="http://www.rsync.net/products/pricing.html">++  <p>+    They have committed to support git-annex and offer a special+    discounted rate for git-annex users.++    <a href="http://www.rsync.net/products/git-annex-pricing.html">       pricing details   <p>     $case status
templates/documentation/about.hamlet view
@@ -20,6 +20,9 @@       <a href="http://git-annex.branchable.com/license">         this page.     <p>+    The source code for git-annex can be downloaded #+    <a href="http://source.git-annex.branchable.com/">here</a>.+    <p>     Development of git-annex is made possible by #     <a href="http://git-annex.branchable.com/assistant/thanks/">       many excellent people