git-annex 5.20140108 → 5.20140116
raw patch · 84 files changed
+1961/−419 lines, 84 files
Files
- Annex/Branch.hs +3/−1
- Assistant/DaemonStatus.hs +1/−1
- Assistant/Threads/SanityChecker.hs +7/−0
- Assistant/XMPP/Git.hs +3/−3
- Build/Configure.hs +7/−2
- Build/OSXMkLibs.hs +22/−7
- CHANGELOG +24/−0
- COPYRIGHT +2/−2
- Command/Map.hs +3/−1
- Command/Repair.hs +12/−3
- Command/Test.hs +11/−1
- Config.hs +5/−1
- Git/Fsck.hs +15/−5
- Git/Repair.hs +1/−1
- GitAnnex.hs +1/−1
- Logs/RemoteState.hs +1/−1
- Remote/Bup.hs +1/−1
- Remote/Directory.hs +1/−1
- Remote/External.hs +22/−2
- Remote/External/Types.hs +15/−0
- Remote/GCrypt.hs +1/−1
- Remote/Git.hs +5/−5
- Remote/Glacier.hs +3/−3
- Remote/Helper/Git.hs +9/−7
- Remote/Hook.hs +3/−4
- Remote/List.hs +6/−0
- Remote/Rsync.hs +1/−1
- Remote/S3.hs +1/−1
- Remote/Tahoe.hs +255/−0
- Remote/Web.hs +1/−1
- Remote/WebDAV.hs +1/−1
- Types/Availability.hs +11/−0
- Types/GitConfig.hs +5/−0
- Types/Remote.hs +11/−3
- Utility/Env.hs +18/−0
- Utility/Url.hs +9/−1
- debian/changelog +24/−0
- debian/control +7/−3
- debian/copyright +2/−2
- doc/assistant.mdwn +1/−3
- doc/assistant/thanks.mdwn +1/−243
- doc/bugs/Check_for_minimum_Git_version.mdwn +41/−0
- doc/bugs/Git_annex_add_._dies_when_you_add_too_much.mdwn +56/−0
- doc/bugs/Share_with_friends_crash_in_osx.mdwn +368/−0
- doc/bugs/USB_drive_not_syncing.mdwn +2/−2
- doc/bugs/Weird_directories_appearing.mdwn +82/−0
- doc/bugs/broken_git_annex_map_on_direct_mode.mdwn +58/−0
- doc/bugs/index_file_smaller_than_expected.mdwn +53/−0
- doc/bugs/wget_and_android_4.4.mdwn +27/−0
- doc/design/assistant/telehash.mdwn +60/−0
- doc/design/assistant/xmpp_security.mdwn +3/−0
- doc/design/external_special_remote_protocol.mdwn +12/−0
- doc/design/roadmap.mdwn +3/−3
- doc/devblog/day_96__catching_up.mdwn +7/−0
- doc/devblog/day_97__exciting_telehash_possiblities.mdwn +20/−0
- doc/devblog/day_98__old_bug.mdwn +17/−0
- doc/forum/Advice_needed:_git-annex_slows_down_my_macbook.mdwn +21/−0
- doc/forum/Can__39__t_get_jabber_working.mdwn +7/−0
- doc/forum/Feature_request:_Multiple_concurrent_transfers.mdwn +1/−1
- doc/forum/Limit_file_revision_history.mdwn +22/−0
- doc/forum/__91__NEED_HELP__93___manual_ssh_remote_setup_with_shared_key.mdwn +19/−0
- doc/forum/btsync_equivalent__63__.mdwn +8/−0
- doc/forum/do_not_use_git-annex_inside_your_Dropbox.mdwn +5/−0
- doc/git-annex.mdwn +10/−0
- doc/links/other_stuff.mdwn +1/−0
- doc/preferred_content.mdwn +6/−0
- doc/privacy.mdwn +2/−2
- doc/sidebar.mdwn +1/−4
- doc/special_remotes.mdwn +1/−1
- doc/special_remotes/tahoe.mdwn +43/−0
- doc/thanks.mdwn +370/−0
- doc/tips/dropboxannex.mdwn +6/−5
- doc/tips/emacs_integration.mdwn +6/−1
- doc/tips/flickrannex.mdwn +13/−25
- doc/tips/googledriveannex.mdwn +12/−8
- doc/tips/imapannex.mdwn +4/−6
- doc/tips/megaannex.mdwn +13/−25
- doc/tips/owncloudannex.mdwn +7/−7
- doc/tips/skydriveannex.mdwn +8/−5
- doc/todo/makefile:_respect___36__PREFIX.mdwn +1/−1
- doc/todo/tahoe_lfs_for_reals.mdwn +8/−8
- doc/todo/wishlist:_more_info_in_commit_messages_in_general.mdwn +8/−0
- git-annex.1 +8/−0
- git-annex.cabal +9/−2
Annex/Branch.hs view
@@ -342,10 +342,12 @@ let keyenv = words "USER PATH GIT_EXEC_PATH HOSTNAME HOME" let getEnvPair k = maybe Nothing (\v -> Just (k, v)) <$> getEnv k e <- liftIO $ catMaybes <$> forM keyenv getEnvPair+ let e' = ("GIT_INDEX_FILE", f):e #else e <- liftIO getEnvironment+ let e' = addEntry "GIT_INDEX_FILE" f e #endif- let g' = g { gitEnv = Just $ ("GIT_INDEX_FILE", f):e }+ let g' = g { gitEnv = Just e' } r <- tryAnnex $ do Annex.changeState $ \s -> s { Annex.repo = g' }
Assistant/DaemonStatus.hs view
@@ -64,7 +64,7 @@ , syncingToCloudRemote = any iscloud syncdata } where- iscloud r = not (Remote.readonly r) && Remote.globallyAvailable r+ iscloud r = not (Remote.readonly r) && Remote.availability r == Remote.GloballyAvailable {- Updates the syncRemotes list from the list of all remotes in Annex state. -} updateSyncRemotes :: Assistant ()
Assistant/Threads/SanityChecker.hs view
@@ -16,6 +16,7 @@ import Assistant.Alert import Assistant.Repair import Assistant.Ssh+import qualified Annex.Branch import qualified Git.LsFiles import qualified Git.Command import qualified Git.Config@@ -53,6 +54,12 @@ debug ["no index file; restaging"] modifyDaemonStatus_ $ \s -> s { forceRestage = True } )+ {- If the git-annex index file is corrupt, it's ok to remove it;+ - the data from the git-annex branch will be used, and the index+ - will be automatically regenerated. -}+ unlessM (liftAnnex $ Annex.Branch.withIndex $ inRepo $ Git.Repair.checkIndexFast) $ do+ notice ["corrupt annex/index file found at startup; removing"]+ liftAnnex $ liftIO . nukeFile =<< fromRepo gitAnnexIndex {- Fix up ssh remotes set up by past versions of the assistant. -} liftIO $ fixUpSshRemotes
Assistant/XMPP/Git.hs view
@@ -114,13 +114,13 @@ env <- liftIO getEnvironment path <- liftIO getSearchPath- let myenv = M.fromList+ let myenv = addEntries [ ("PATH", intercalate [searchPathSeparator] $ tmpdir:path) , (relayIn, show inf) , (relayOut, show outf) , (relayControl, show controlf) ]- `M.union` M.fromList env+ env inh <- liftIO $ fdToHandle readpush outh <- liftIO $ fdToHandle writepush@@ -132,7 +132,7 @@ {- This can take a long time to run, so avoid running it in the - Annex monad. Also, override environment. -} g <- liftAnnex gitRepo- r <- liftIO $ gitpush $ g { gitEnv = Just $ M.toList myenv }+ r <- liftIO $ gitpush $ g { gitEnv = Just myenv } liftIO $ do mapM_ killThread [t1, t2]
Build/Configure.hs view
@@ -10,6 +10,7 @@ import System.Environment (getArgs) import Data.Maybe import Control.Monad.IfElse+import Control.Monad import Data.Char import Build.TestConfig@@ -95,8 +96,12 @@ return $ Config "upgradelocation" $ MaybeStringConfig e getGitVersion :: Test-getGitVersion = Config "gitversion" . StringConfig . show- <$> Git.Version.installed+getGitVersion = do+ v <- Git.Version.installed+ let oldestallowed = Git.Version.normalize "1.7.1.0"+ when (v < oldestallowed) $+ error $ "installed git version " ++ show v ++ " is too old! (Need " ++ show oldestallowed ++ " or newer)"+ return $ Config "gitversion" $ StringConfig $ show v getSshConnectionCaching :: Test getSshConnectionCaching = Config "sshconnectioncaching" . BoolConfig <$>
Build/OSXMkLibs.hs view
@@ -8,13 +8,13 @@ module Main where import Control.Applicative-import System.Environment+import System.Environment (getArgs) import Data.Maybe import System.FilePath import System.Directory-import System.IO import Control.Monad import Data.List+import Data.String.Utils import Utility.PartialPrelude import Utility.Directory@@ -23,6 +23,7 @@ import Utility.SafeCommand import Utility.Path import Utility.Exception+import Utility.Env import qualified Data.Map as M import qualified Data.Set as S@@ -41,6 +42,7 @@ installLibs appbase replacement_libs libmap = do (needlibs, replacement_libs', libmap') <- otool appbase replacement_libs libmap libs <- forM needlibs $ \lib -> do+ pathlib <- findLibPath lib let shortlib = fromMaybe (error "internal") (M.lookup lib libmap') let fulllib = dropWhile (== '/') lib let dest = appbase </> fulllib@@ -49,15 +51,20 @@ ( return Nothing , do createDirectoryIfMissing True (parentDir dest)- putStrLn $ "installing " ++ lib ++ " as " ++ shortlib- _ <- boolSystem "cp" [File lib, File dest]+ putStrLn $ "installing " ++ pathlib ++ " as " ++ shortlib+ _ <- boolSystem "cp" [File pathlib, File dest] _ <- boolSystem "chmod" [Param "644", File dest] _ <- boolSystem "ln" [Param "-s", File fulllib, File symdest] return $ Just appbase ) return (catMaybes libs, replacement_libs', libmap') -{- Returns libraries to install. -}+{- Returns libraries to install.+ -+ - Note that otool -L ignores DYLD_LIBRARY_PATH, so the+ - library files returned may need to be run through findLibPath+ - to find the actual libraries to install.+ -} otool :: FilePath -> [(FilePath, FilePath)] -> LibMap -> IO ([FilePath], [(FilePath, FilePath)], LibMap) otool appbase replacement_libs libmap = do files <- filterM doesFileExist =<< dirContentsRecursive appbase@@ -76,6 +83,14 @@ m' <- install_name_tool file libs expanded_libs m process (expanded_libs:c) rest rls' m' +findLibPath :: FilePath -> IO FilePath+findLibPath l = go =<< getEnv "DYLD_LIBRARY_PATH"+ where+ go Nothing = return l+ go (Just p) = fromMaybe l+ <$> firstM doesFileExist (map (</> f) (split ":" p))+ f = takeFileName l+ {- Expands any @rpath in the list of libraries. - - This is done by the nasty method of running the command with a dummy@@ -94,7 +109,7 @@ let m = if (null s) then M.fromList replacement_libs else M.fromList $ mapMaybe parse $ lines s- return $ map (replace m) libs+ return $ map (replacem m) libs | otherwise = return libs where probe c = "DYLD_PRINT_RPATHS=1 " ++ c ++ " --getting-rpath-dummy-option 2>&1 | grep RPATH"@@ -102,7 +117,7 @@ ("RPATH":"successful":"expansion":"of":old:"to:":new:[]) -> Just (old, new) _ -> Nothing- replace m l = fromMaybe l $ M.lookup l m+ replacem m l = fromMaybe l $ M.lookup l m parseOtool :: String -> [FilePath] parseOtool = catMaybes . map parse . lines
CHANGELOG view
@@ -1,3 +1,27 @@+git-annex (5.20140116) unstable; urgency=medium++ * Added tahoe special remote.+ * external special remote protocol: Added GETGITDIR, and GETAVAILABILITY.+ * Refuse to build with git older than 1.7.1.1, which is needed for+ git checkout -B+ * map: Fix display of v5 direct mode repos.+ * repair: Support old git versions from before git fsck --no-dangling was+ implemented.+ * Fix a long-standing bug that could cause the wrong index file to be used+ when committing to the git-annex branch, if GIT_INDEX_FILE is set in the+ environment. This typically resulted in git-annex branch log files being+ committed to the master branch and later showing up in the work tree.+ (These log files can be safely removed.)+ * assistant: Detect if .git/annex/index is corrupt at startup, and+ recover.+ * repair: Fix bug in packed refs file exploding code that caused a .gitrefs+ directory to be created instead of .git/refs+ * Fix FTBFS on mipsel and sparc due to test suite not being available+ on those architectures.+ * Android: Avoid passing --clobber to busybox wget.++ -- Joey Hess <joeyh@debian.org> Thu, 16 Jan 2014 11:34:54 -0400+ git-annex (5.20140107) unstable; urgency=medium * mirror: Support --all (and --unused).
COPYRIGHT view
@@ -2,11 +2,11 @@ Source: native package Files: *-Copyright: © 2010-2013 Joey Hess <joey@kitenet.net>+Copyright: © 2010-2014 Joey Hess <joey@kitenet.net> License: GPL-3+ Files: Assistant/WebApp.hs Assistant/WebApp/* templates/* static/*-Copyright: © 2012-2013 Joey Hess <joey@kitenet.net>+Copyright: © 2012-2014 Joey Hess <joey@kitenet.net> License: AGPL-3+ Files: Utility/ThreadScheduler.hs
Command/Map.hs view
@@ -156,7 +156,9 @@ absRepo reference r | Git.repoIsUrl reference = return $ Git.Construct.localToUrl reference r | Git.repoIsUrl r = return r- | otherwise = liftIO $ Git.Construct.fromAbsPath =<< absPath (Git.repoPath r)+ | otherwise = liftIO $ do+ r' <- Git.Construct.fromAbsPath =<< absPath (Git.repoPath r)+ flip Annex.eval Annex.gitRepo =<< Annex.new r' {- Checks if two repos are the same. -} same :: Git.Repo -> Git.Repo -> Bool
Command/Repair.hs view
@@ -12,6 +12,7 @@ import qualified Annex import qualified Git.Repair import qualified Annex.Branch+import qualified Git.Ref import Git.Types import Annex.Version @@ -55,18 +56,26 @@ ( commitindex , do nukeindex- liftIO $ putStrLn "Had to delete the .git/annex/index file as it was corrupt. Since the git-annex branch is not up-to-date anymore. It would be a very good idea to run: git annex fsck --fast"+ missingbranch ) | otherwise = ifM okindex ( noop- , nukeindex+ , do+ nukeindex+ ifM (null <$> inRepo (Git.Ref.matching [Annex.Branch.fullname]))+ ( missingbranch+ , liftIO $ putStrLn "No data was lost."+ ) ) where okindex = Annex.Branch.withIndex $ inRepo $ Git.Repair.checkIndex commitindex = do Annex.Branch.forceCommit "committing index after git repository repair" liftIO $ putStrLn "Successfully recovered the git-annex branch using .git/annex/index"- nukeindex = inRepo $ nukeFile . gitAnnexIndex+ nukeindex = do+ inRepo $ nukeFile . gitAnnexIndex+ liftIO $ putStrLn "Had to delete the .git/annex/index file as it was corrupt."+ missingbranch = liftIO $ putStrLn "Since the git-annex branch is not up-to-date anymore. It would be a very good idea to run: git annex fsck --fast" trackingOrSyncBranch :: Ref -> Bool trackingOrSyncBranch b = Git.Repair.isTrackingBranch b || isAnnexSyncBranch b
Command/Test.hs view
@@ -8,6 +8,7 @@ module Command.Test where import Command+import Messages def :: [Command] def = [ dontCheck repoExists $@@ -19,6 +20,15 @@ {- We don't actually run the test suite here because of a dependency loop. - The main program notices when the command is test and runs it; this- - function is never run if that works. -}+ - function is never run if that works.+ -+ - However, if git-annex is built without the test suite, just print a+ - warning, and do not exit nonzero. This is so git-annex test can be run+ - in debian/rules despite some architectures not being able to build the+ - test suite.+ -} start :: [String] -> CommandStart+start [] = do+ warning "git-annex was built without its test suite; not testing"+ stop start _ = error "Cannot specify any additional parameters when running test"
Config.hs view
@@ -1,6 +1,6 @@ {- Git configuration -- - Copyright 2011-2012 Joey Hess <joey@kitenet.net>+ - Copyright 2011-2014 Joey Hess <joey@kitenet.net> - - Licensed under the GNU GPL version 3 or higher. -}@@ -13,6 +13,7 @@ import qualified Git.Command import qualified Annex import Config.Cost+import Types.Availability type UnqualifiedConfigKey = String data ConfigKey = ConfigKey String@@ -64,6 +65,9 @@ setRemoteCost :: Git.Repo -> Cost -> Annex () setRemoteCost r c = setConfig (remoteConfig r "cost") (show c)++setRemoteAvailability :: Git.Repo -> Availability -> Annex ()+setRemoteAvailability r c = setConfig (remoteConfig r "availability") (show c) getNumCopies :: Maybe Int -> Annex Int getNumCopies (Just v) = return v
Git/Fsck.hs view
@@ -20,6 +20,7 @@ import Git.Command import Git.Sha import Utility.Batch+import qualified Git.BuildVersion import qualified Data.Set as S @@ -75,11 +76,20 @@ ] r findShas :: String -> [Sha]-findShas = catMaybes . map extractSha . concat . map words . lines+findShas = catMaybes . map extractSha . concat . map words . filter wanted . lines+ where+ wanted l+ | supportsNoDangling = True+ | otherwise = not ("dangling " `isPrefixOf` l) fsckParams :: Repo -> [CommandParam]-fsckParams = gitCommandLine $- [ Param "fsck"- , Param "--no-dangling"- , Param "--no-reflogs"+fsckParams = gitCommandLine $ map Param $ catMaybes+ [ Just "fsck"+ , if supportsNoDangling+ then Just "--no-dangling"+ else Nothing+ , Just "--no-reflogs" ]++supportsNoDangling :: Bool+supportsNoDangling = not $ Git.BuildVersion.older "1.7.10"
Git/Repair.hs view
@@ -231,7 +231,7 @@ nukeFile f where makeref (sha, ref) = do- let dest = localGitDir r ++ show ref+ let dest = localGitDir r </> show ref createDirectoryIfMissing True (parentDir dest) unlessM (doesFileExist dest) $ writeFile dest (show sha)
GitAnnex.hs view
@@ -84,8 +84,8 @@ import qualified Command.XMPPGit #endif #endif-#ifdef WITH_TESTSUITE import qualified Command.Test+#ifdef WITH_TESTSUITE import qualified Command.FuzzTest #endif #ifdef WITH_EKG
Logs/RemoteState.hs view
@@ -1,6 +1,6 @@ {- Remote state logs. -- - Copyright 2013 Joey Hess <joey@kitenet.net>+ - Copyright 2014 Joey Hess <joey@kitenet.net> - - Licensed under the GNU GPL version 3 or higher. -}
Remote/Bup.hs view
@@ -72,7 +72,7 @@ then Just buprepo else Nothing , remotetype = remote- , globallyAvailable = not $ bupLocal buprepo+ , availability = if bupLocal buprepo then LocallyAvailable else GloballyAvailable , readonly = False } return $ Just $ encryptableRemote c
Remote/Directory.hs view
@@ -61,7 +61,7 @@ gitconfig = gc, localpath = Just dir, readonly = False,- globallyAvailable = False,+ availability = LocallyAvailable, remotetype = remote } where
Remote/External.hs view
@@ -45,6 +45,7 @@ external <- newExternal externaltype u c Annex.addCleanup (fromUUID u) $ stopExternal external cst <- getCost external r gc+ avail <- getAvailability external r gc return $ Just $ encryptableRemote c (storeEncrypted external $ getGpgEncParams (c,gc)) (retrieveEncrypted external)@@ -66,11 +67,11 @@ repo = r, gitconfig = gc, readonly = False,- globallyAvailable = False,+ availability = avail, remotetype = remote } where- externaltype = fromMaybe (error "missing externaltype") $ remoteAnnexExternalType gc+ externaltype = fromMaybe (error "missing externaltype") (remoteAnnexExternalType gc) externalSetup :: Maybe UUID -> RemoteConfig -> Annex (RemoteConfig, UUID) externalSetup mu c = do@@ -230,6 +231,7 @@ send $ CREDS (fst creds) (snd creds) handleRemoteRequest GETUUID = send $ VALUE $ fromUUID $ externalUUID external+ handleRemoteRequest GETGITDIR = send . VALUE =<< fromRepo Git.localGitDir handleRemoteRequest (SETWANTED expr) = preferredContentSet (externalUUID external) expr handleRemoteRequest GETWANTED = do@@ -418,3 +420,21 @@ _ -> Nothing setRemoteCost r c return c++{- Caches the availability in the git config to avoid needing to start up an+ - external special remote every time time just to ask it what its+ - availability is.+ -+ - Most remotes do not bother to implement a reply to this request;+ - globally available is the default.+ -}+getAvailability :: External -> Git.Repo -> RemoteGitConfig -> Annex Availability+getAvailability external r gc = maybe query return (remoteAnnexAvailability gc)+ where+ query = do+ avail <- handleRequest external GETAVAILABILITY Nothing $ \req -> case req of+ AVAILABILITY avail -> Just $ return avail+ UNSUPPORTED_REQUEST -> Just $ return GloballyAvailable+ _ -> Nothing+ setRemoteAvailability r avail+ return avail
Remote/External/Types.hs view
@@ -38,6 +38,7 @@ import Logs.Transfer (Direction(..)) import Config.Cost (Cost) import Types.Remote (RemoteConfig)+import Types.Availability (Availability(..)) import Data.Char import Control.Concurrent.STM@@ -105,6 +106,7 @@ = PREPARE | INITREMOTE | GETCOST+ | GETAVAILABILITY | TRANSFER Direction Key FilePath | CHECKPRESENT Key | REMOVE Key@@ -120,6 +122,7 @@ formatMessage PREPARE = ["PREPARE"] formatMessage INITREMOTE = ["INITREMOTE"] formatMessage GETCOST = ["GETCOST"]+ formatMessage GETAVAILABILITY = ["GETAVAILABILITY"] formatMessage (TRANSFER direction key file) = [ "TRANSFER", serialize direction, serialize key, serialize file ] formatMessage (CHECKPRESENT key) = [ "CHECKPRESENT", serialize key ]@@ -137,6 +140,7 @@ | REMOVE_SUCCESS Key | REMOVE_FAILURE Key ErrorMsg | COST Cost+ | AVAILABILITY Availability | INITREMOTE_SUCCESS | INITREMOTE_FAILURE ErrorMsg | UNSUPPORTED_REQUEST@@ -153,6 +157,7 @@ parseCommand "REMOVE-SUCCESS" = parse1 REMOVE_SUCCESS parseCommand "REMOVE-FAILURE" = parse2 REMOVE_FAILURE parseCommand "COST" = parse1 COST+ parseCommand "AVAILABILITY" = parse1 AVAILABILITY parseCommand "INITREMOTE-SUCCESS" = parse0 INITREMOTE_SUCCESS parseCommand "INITREMOTE-FAILURE" = parse1 INITREMOTE_FAILURE parseCommand "UNSUPPORTED-REQUEST" = parse0 UNSUPPORTED_REQUEST@@ -168,6 +173,7 @@ | SETCREDS Setting String String | GETCREDS Setting | GETUUID+ | GETGITDIR | SETWANTED PreferredContentExpression | GETWANTED | SETSTATE Key String@@ -184,6 +190,7 @@ parseCommand "SETCREDS" = parse3 SETCREDS parseCommand "GETCREDS" = parse1 GETCREDS parseCommand "GETUUID" = parse0 GETUUID+ parseCommand "GETGITDIR" = parse0 GETGITDIR parseCommand "SETWANTED" = parse1 SETWANTED parseCommand "GETWANTED" = parse0 GETWANTED parseCommand "SETSTATE" = parse2 SETSTATE@@ -249,6 +256,14 @@ instance Serializable Cost where serialize = show deserialize = readish++instance Serializable Availability where+ serialize GloballyAvailable = "GLOBAL"+ serialize LocallyAvailable = "LOCAL"++ deserialize "GLOBAL" = Just GloballyAvailable+ deserialize "LOCAL" = Just LocallyAvailable+ deserialize _ = Nothing instance Serializable BytesProcessed where serialize (BytesProcessed n) = show n
Remote/GCrypt.hs view
@@ -114,7 +114,7 @@ , repo = r , gitconfig = gc { remoteGitConfig = Just $ extractGitConfig r } , readonly = Git.repoIsHttp r- , globallyAvailable = globallyAvailableCalc r+ , availability = availabilityCalc r , remotetype = remote } return $ Just $ encryptableRemote c
Remote/Git.hs view
@@ -126,7 +126,7 @@ , gitconfig = gc { remoteGitConfig = Just $ extractGitConfig r } , readonly = Git.repoIsHttp r- , globallyAvailable = globallyAvailableCalc r+ , availability = availabilityCalc r , remotetype = remote } @@ -414,13 +414,13 @@ Just (c, ps) -> batchCommand c ps | otherwise = return $ do program <- readProgramFile- env <- getEnvironment r' <- Git.Config.read r- let env' =+ env <- getEnvironment+ let env' = addEntries [ ("GIT_WORK_TREE", Git.repoPath r') , ("GIT_DIR", Git.localGitDir r')- ] ++ env- batchCommandEnv program (Param "fsck" : params) (Just env')+ ] env+ batchCommandEnv program (Param "fsck" : params) $ Just env' {- The passed repair action is run in the Annex monad of the remote. -} repairRemote :: Git.Repo -> Annex Bool -> Annex (IO Bool)
Remote/Glacier.hs view
@@ -9,7 +9,6 @@ import qualified Data.Map as M import qualified Data.Text as T-import System.Environment import Common.Annex import Types.Remote@@ -26,6 +25,7 @@ import qualified Annex import Annex.Content import Annex.UUID+import Utility.Env import System.Process @@ -66,7 +66,7 @@ gitconfig = gc, localpath = Nothing, readonly = False,- globallyAvailable = True,+ availability = GloballyAvailable, remotetype = remote } @@ -232,7 +232,7 @@ go Nothing = return Nothing go (Just (user, pass)) = do e <- liftIO getEnvironment- return $ Just $ (uk, user):(pk, pass):e+ return $ Just $ addEntries [(uk, user), (pk, pass)] e creds = AWS.creds u (uk, pk) = credPairEnvironment creds
Remote/Helper/Git.hs view
@@ -1,6 +1,6 @@ {- Utilities for git remotes. -- - Copyright 2011-2012 Joey Hess <joey@kitenet.net>+ - Copyright 2011-2014 Joey Hess <joey@kitenet.net> - - Licensed under the GNU GPL version 3 or higher. -}@@ -9,18 +9,20 @@ import Common.Annex import qualified Git+import Types.Availability repoCheap :: Git.Repo -> Bool repoCheap = not . Git.repoIsUrl localpathCalc :: Git.Repo -> Maybe FilePath-localpathCalc r = if globallyAvailableCalc r- then Nothing- else Just $ Git.repoPath r+localpathCalc r+ | availabilityCalc r == GloballyAvailable = Nothing+ | otherwise = Just $ Git.repoPath r -globallyAvailableCalc :: Git.Repo -> Bool-globallyAvailableCalc r = not $- Git.repoIsLocal r || Git.repoIsLocalUnknown r+availabilityCalc :: Git.Repo -> Availability+availabilityCalc r+ | (Git.repoIsLocal r || Git.repoIsLocalUnknown r) = LocallyAvailable+ | otherwise = GloballyAvailable {- Avoids performing an action on a local repository that's not usable. - Does not check that the repository is still available on disk. -}
Remote/Hook.hs view
@@ -9,7 +9,6 @@ import qualified Data.ByteString.Lazy as L import qualified Data.Map as M-import System.Environment import Common.Annex import Types.Remote@@ -23,6 +22,7 @@ import Remote.Helper.Encryptable import Crypto import Utility.Metered+import Utility.Env type Action = String type HookName = String@@ -59,7 +59,7 @@ repo = r, gitconfig = gc, readonly = False,- globallyAvailable = False,+ availability = GloballyAvailable, remotetype = remote } where@@ -77,8 +77,7 @@ hookEnv :: Action -> Key -> Maybe FilePath -> IO (Maybe [(String, String)]) hookEnv action k f = Just <$> mergeenv (fileenv f ++ keyenv) where- mergeenv l = M.toList . M.union (M.fromList l) - <$> M.fromList <$> getEnvironment+ mergeenv l = addEntries l <$> getEnvironment env s v = ("ANNEX_" ++ s, v) keyenv = catMaybes [ Just $ env "KEY" (key2file k)
Remote/List.hs view
@@ -34,6 +34,9 @@ #ifdef WITH_WEBDAV import qualified Remote.WebDAV #endif+#ifdef WITH_TAHOE+import qualified Remote.Tahoe+#endif import qualified Remote.Glacier import qualified Remote.Hook import qualified Remote.External@@ -51,6 +54,9 @@ , Remote.Web.remote #ifdef WITH_WEBDAV , Remote.WebDAV.remote+#endif+#ifdef WITH_TAHOE+ , Remote.Tahoe.remote #endif , Remote.Glacier.remote , Remote.Hook.remote
Remote/Rsync.hs view
@@ -88,7 +88,7 @@ then Just $ rsyncUrl o else Nothing , readonly = False- , globallyAvailable = not islocal+ , availability = if islocal then LocallyAvailable else GloballyAvailable , remotetype = remote }
Remote/S3.hs view
@@ -69,7 +69,7 @@ gitconfig = gc, localpath = Nothing, readonly = False,- globallyAvailable = True,+ availability = GloballyAvailable, remotetype = remote }
+ Remote/Tahoe.hs view
@@ -0,0 +1,255 @@+{- Tahoe-LAFS special remotes.+ -+ - Tahoe capabilities for accessing objects stored in the remote+ - are preserved in the remote state log.+ -+ - In order to allow multiple clones of a repository to access the same+ - tahoe repository, git-annex needs to store the introducer furl,+ - and the shared-convergence-secret. These are stored in the remote+ - configuration, when embedcreds is enabled.+ -+ - Using those creds, git-annex sets up a tahoe configuration directory in+ - ~/.tahoe/git-annex/UUID/+ -+ - Tahoe has its own encryption, so git-annex's encryption is not used.+ -+ - Copyright 2014 Joey Hess <joey@kitenet.net>+ -+ - Licensed under the GNU GPL version 3 or higher.+ -}++{-# LANGUAGE OverloadedStrings #-}++module Remote.Tahoe (remote) where++import qualified Data.Map as M+import Data.Aeson+import Data.ByteString.Lazy.UTF8 (fromString)+import Control.Concurrent.STM++import Common.Annex+import Types.Remote+import qualified Git+import Config+import Config.Cost+import Remote.Helper.Special+import Annex.UUID+import Annex.Content+import Logs.RemoteState+import Utility.UserInfo+import Utility.Metered+import Utility.Env+import Utility.ThreadScheduler++{- The TMVar is left empty until tahoe has been verified to be running. -}+data TahoeHandle = TahoeHandle TahoeConfigDir (TMVar ())++type TahoeConfigDir = FilePath+type SharedConvergenceSecret = String+type IntroducerFurl = String+type Capability = String++remote :: RemoteType+remote = RemoteType {+ typename = "tahoe",+ enumerate = findSpecialRemotes "tahoe",+ generate = gen,+ setup = tahoeSetup+}++gen :: Git.Repo -> UUID -> RemoteConfig -> RemoteGitConfig -> Annex (Maybe Remote)+gen r u c gc = do+ cst <- remoteCost gc expensiveRemoteCost+ hdl <- liftIO $ TahoeHandle+ <$> maybe (defaultTahoeConfigDir u) return (remoteAnnexTahoe gc)+ <*> newEmptyTMVarIO+ return $ Just $ Remote {+ uuid = u,+ cost = cst,+ name = Git.repoDescribe r,+ storeKey = store u hdl,+ retrieveKeyFile = retrieve u hdl,+ retrieveKeyFileCheap = \_ _ -> return False,+ removeKey = remove,+ hasKey = checkPresent u hdl,+ hasKeyCheap = False,+ whereisKey = Nothing,+ remoteFsck = Nothing,+ repairRepo = Nothing,+ config = c,+ repo = r,+ gitconfig = gc,+ localpath = Nothing,+ readonly = False,+ availability = GloballyAvailable,+ remotetype = remote+ }++tahoeSetup :: Maybe UUID -> RemoteConfig -> Annex (RemoteConfig, UUID)+tahoeSetup mu c = do+ furl <- fromMaybe (fromMaybe missingfurl $ M.lookup furlk c)+ <$> liftIO (getEnv "TAHOE_FURL")+ u <- maybe (liftIO genUUID) return mu+ configdir <- liftIO $ defaultTahoeConfigDir u+ scs <- liftIO $ tahoeConfigure configdir furl (M.lookup scsk c)+ let c' = if M.lookup "embedcreds" c == Just "yes"+ then flip M.union c $ M.fromList+ [ (furlk, furl)+ , (scsk, scs)+ ]+ else c+ gitConfigSpecialRemote u c' "tahoe" configdir+ return (c', u)+ where+ scsk = "shared-convergence-secret"+ furlk = "introducer-furl"+ missingfurl = error "Set TAHOE_FURL to the introducer furl to use."++store :: UUID -> TahoeHandle -> Key -> AssociatedFile -> MeterUpdate -> Annex Bool+store u hdl k _f _p = sendAnnex k noop $ \src ->+ parsePut <$> liftIO (readTahoe hdl "put" [File src]) >>= maybe+ (return False)+ (\cap -> storeCapability u k cap >> return True)++retrieve :: UUID -> TahoeHandle -> Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex Bool+retrieve u hdl k _f d _p = go =<< getCapability u k+ where+ go Nothing = return False+ go (Just cap) = liftIO $ requestTahoe hdl "get" [Param cap, File d]++remove :: Key -> Annex Bool+remove _k = do+ warning "content cannot be removed from tahoe remote"+ return False++checkPresent :: UUID -> TahoeHandle -> Key -> Annex (Either String Bool)+checkPresent u hdl k = go =<< getCapability u k+ where+ go Nothing = return (Right False)+ go (Just cap) = liftIO $ parseCheck <$> readTahoe hdl "check"+ [ Param "--raw"+ , Param cap+ ]++defaultTahoeConfigDir :: UUID -> IO TahoeConfigDir+defaultTahoeConfigDir u = do+ h <- myHomeDir + return $ h </> ".tahoe" </> "git-annex" </> fromUUID u++tahoeConfigure :: TahoeConfigDir -> IntroducerFurl -> Maybe SharedConvergenceSecret -> IO SharedConvergenceSecret+tahoeConfigure configdir furl mscs = do+ unlessM (createClient configdir furl) $+ error "tahoe create-client failed"+ maybe noop (writeSharedConvergenceSecret configdir) mscs+ startTahoeDaemon configdir+ getSharedConvergenceSecret configdir++createClient :: TahoeConfigDir -> IntroducerFurl -> IO Bool+createClient configdir furl = do+ createDirectoryIfMissing True (parentDir configdir)+ boolTahoe configdir "create-client"+ [ Param "--nickname", Param "git-annex"+ , Param "--introducer", Param furl+ ]++writeSharedConvergenceSecret :: TahoeConfigDir -> SharedConvergenceSecret -> IO ()+writeSharedConvergenceSecret configdir scs = + writeFile (convergenceFile configdir) (unlines [scs])++{- The tahoe daemon writes the convergenceFile shortly after it starts+ - (it does not need to connect to the network). So, try repeatedly to read+ - the file, for up to 1 minute. To avoid reading a partially written+ - file, look for the newline after the value. -}+getSharedConvergenceSecret :: TahoeConfigDir -> IO SharedConvergenceSecret+getSharedConvergenceSecret configdir = go (60 :: Int)+ where+ f = convergenceFile configdir+ go n+ | n == 0 = error $ "tahoe did not write " ++ f ++ " after 1 minute. Perhaps the daemon failed to start?"+ | otherwise = do+ v <- catchMaybeIO (readFile f)+ case v of+ Just s | "\n" `isSuffixOf` s || "\r" `isSuffixOf` s ->+ return $ takeWhile (`notElem` "\n\r") s+ _ -> do+ threadDelaySeconds (Seconds 1)+ go (n - 1)++convergenceFile :: TahoeConfigDir -> FilePath+convergenceFile configdir = configdir </> "private" </> "convergence"++startTahoeDaemon :: TahoeConfigDir -> IO ()+startTahoeDaemon configdir = void $ boolTahoe configdir "start" []++{- Ensures that tahoe has been started, before running an action+ - that uses it. -}+withTahoeConfigDir :: TahoeHandle -> (TahoeConfigDir -> IO a) -> IO a+withTahoeConfigDir (TahoeHandle configdir v) a = go =<< atomically needsstart+ where+ go True = do+ startTahoeDaemon configdir+ a configdir+ go False = a configdir+ needsstart = ifM (isEmptyTMVar v)+ ( do+ putTMVar v ()+ return True+ , return False+ )++boolTahoe :: TahoeConfigDir -> String -> [CommandParam] -> IO Bool+boolTahoe configdir command params = boolSystem "tahoe" $+ tahoeParams configdir command params++{- Runs a tahoe command that requests the daemon do something. -}+requestTahoe :: TahoeHandle -> String -> [CommandParam] -> IO Bool+requestTahoe hdl command params = withTahoeConfigDir hdl $ \configdir ->+ boolTahoe configdir command params ++{- Runs a tahoe command that requests the daemon output something. -}+readTahoe :: TahoeHandle -> String -> [CommandParam] -> IO String+readTahoe hdl command params = withTahoeConfigDir hdl $ \configdir ->+ catchDefaultIO "" $+ readProcess "tahoe" $ toCommand $+ tahoeParams configdir command params++tahoeParams :: TahoeConfigDir -> String -> [CommandParam] -> [CommandParam]+tahoeParams configdir command params = + Param command : Param "-d" : File configdir : params++storeCapability :: UUID -> Key -> Capability -> Annex ()+storeCapability u k cap = setRemoteState u k cap++getCapability :: UUID -> Key -> Annex (Maybe Capability)+getCapability u k = getRemoteState u k++{- tahoe put outputs a single line, containing the capability. -}+parsePut :: String -> Maybe Capability+parsePut s = case lines s of+ [cap] | "URI" `isPrefixOf` cap -> Just cap+ _ -> Nothing++{- tahoe check --raw outputs a json document.+ - Its contents will vary (for LIT capabilities, it lacks most info),+ - but should always contain a results object with a healthy value+ - that's true or false.+ -}+parseCheck :: String -> Either String Bool+parseCheck s = maybe parseerror (Right . healthy . results) (decode $ fromString s)+ where+ parseerror+ | null s = Left "tahoe check failed to run"+ | otherwise = Left "unable to parse tahoe check output"++data CheckRet = CheckRet { results :: Results }+data Results = Results { healthy :: Bool }++instance FromJSON CheckRet where+ parseJSON (Object v) = CheckRet+ <$> v .: "results"+ parseJSON _ = mzero++instance FromJSON Results where+ parseJSON (Object v) = Results+ <$> v .: "healthy"+ parseJSON _ = mzero
Remote/Web.hs view
@@ -61,7 +61,7 @@ localpath = Nothing, repo = r, readonly = True,- globallyAvailable = True,+ availability = GloballyAvailable, remotetype = remote }
Remote/WebDAV.hs view
@@ -72,7 +72,7 @@ gitconfig = gc, localpath = Nothing, readonly = False,- globallyAvailable = True,+ availability = GloballyAvailable, remotetype = remote }
+ Types/Availability.hs view
@@ -0,0 +1,11 @@+{- git-annex remote availability+ -+ - Copyright 2014 Joey Hess <joey@kitenet.net>+ -+ - Licensed under the GNU GPL version 3 or higher.+ -}++module Types.Availability where++data Availability = GloballyAvailable | LocallyAvailable+ deriving (Eq, Show, Read)
Types/GitConfig.hs view
@@ -18,6 +18,7 @@ import Utility.DataUnits import Config.Cost import Types.Distribution+import Types.Availability {- Main git-annex settings. Each setting corresponds to a git-config key - such as annex.foo -}@@ -101,6 +102,7 @@ , remoteAnnexTrustLevel :: Maybe String , remoteAnnexStartCommand :: Maybe String , remoteAnnexStopCommand :: Maybe String+ , remoteAnnexAvailability :: Maybe Availability {- These settings are specific to particular types of remotes - including special remotes. -}@@ -110,6 +112,7 @@ , remoteAnnexGnupgOptions :: [String] , remoteAnnexRsyncUrl :: Maybe String , remoteAnnexBupRepo :: Maybe String+ , remoteAnnexTahoe :: Maybe FilePath , remoteAnnexBupSplitOptions :: [String] , remoteAnnexDirectory :: Maybe FilePath , remoteAnnexGCrypt :: Maybe String@@ -129,6 +132,7 @@ , remoteAnnexTrustLevel = notempty $ getmaybe "trustlevel" , remoteAnnexStartCommand = notempty $ getmaybe "start-command" , remoteAnnexStopCommand = notempty $ getmaybe "stop-command"+ , remoteAnnexAvailability = getmayberead "availability" , remoteAnnexSshOptions = getoptions "ssh-options" , remoteAnnexRsyncOptions = getoptions "rsync-options"@@ -136,6 +140,7 @@ , remoteAnnexGnupgOptions = getoptions "gnupg-options" , remoteAnnexRsyncUrl = notempty $ getmaybe "rsyncurl" , remoteAnnexBupRepo = getmaybe "buprepo"+ , remoteAnnexTahoe = getmaybe "tahoe" , remoteAnnexBupSplitOptions = getoptions "bup-split-options" , remoteAnnexDirectory = notempty $ getmaybe "directory" , remoteAnnexGCrypt = notempty $ getmaybe "gcrypt"
Types/Remote.hs view
@@ -2,12 +2,19 @@ - - Most things should not need this, using Types instead -- - Copyright 2011 Joey Hess <joey@kitenet.net>+ - Copyright 2011-2014 Joey Hess <joey@kitenet.net> - - Licensed under the GNU GPL version 3 or higher. -} -module Types.Remote where+module Types.Remote+ ( RemoteConfigKey+ , RemoteConfig+ , RemoteTypeA(..)+ , RemoteA(..)+ , Availability(..)+ )+ where import Data.Map as M import Data.Ord@@ -16,6 +23,7 @@ import Types.Key import Types.UUID import Types.GitConfig+import Types.Availability import Config.Cost import Utility.Metered import Git.Types@@ -82,7 +90,7 @@ -- a Remote can be known to be readonly readonly :: Bool, -- a Remote can be globally available. (Ie, "in the cloud".)- globallyAvailable :: Bool,+ availability :: Availability, -- the type of the remote remotetype :: RemoteTypeA a }
Utility/Env.hs view
@@ -61,3 +61,21 @@ #else unsetEnv _ = return False #endif++{- Adds the environment variable to the input environment. If already+ - present in the list, removes the old value.+ -+ - This does not really belong here, but Data.AssocList is for some reason+ - buried inside hxt.+ -}+addEntry :: Eq k => k -> v -> [(k, v)] -> [(k, v)]+addEntry k v l = ( (k,v) : ) $! delEntry k l++addEntries :: Eq k => [(k, v)] -> [(k, v)] -> [(k, v)]+addEntries = foldr (.) id . map (uncurry addEntry) . reverse++delEntry :: Eq k => k -> [(k, v)] -> [(k, v)]+delEntry _ [] = []+delEntry k (x@(k1,_) : rest)+ | k == k1 = rest+ | otherwise = ( x : ) $! delEntry k rest
Utility/Url.hs view
@@ -125,7 +125,15 @@ _ -> return False where headerparams = map (\h -> Param $ "--header=" ++ h) headers- wget = go "wget" $ headerparams ++ quietopt "-q" ++ [Params "--clobber -c -O"]+ wget = go "wget" $ headerparams ++ quietopt "-q" ++ wgetparams+ {- Regular wget needs --clobber to continue downloading an existing+ - file. On Android, busybox wget is used, which does not+ - support, or need that option. -}+#ifndef __ANDROID__+ wgetparams = [Params "--clobber -c -O"]+#else+ wgetparams = [Params "-c -O"]+#endif {- Uses the -# progress display, because the normal - one is very confusing when resuming, showing - the remainder to download as the whole file,
debian/changelog view
@@ -1,3 +1,27 @@+git-annex (5.20140116) unstable; urgency=medium++ * Added tahoe special remote.+ * external special remote protocol: Added GETGITDIR, and GETAVAILABILITY.+ * Refuse to build with git older than 1.7.1.1, which is needed for+ git checkout -B+ * map: Fix display of v5 direct mode repos.+ * repair: Support old git versions from before git fsck --no-dangling was+ implemented.+ * Fix a long-standing bug that could cause the wrong index file to be used+ when committing to the git-annex branch, if GIT_INDEX_FILE is set in the+ environment. This typically resulted in git-annex branch log files being+ committed to the master branch and later showing up in the work tree.+ (These log files can be safely removed.)+ * assistant: Detect if .git/annex/index is corrupt at startup, and+ recover.+ * repair: Fix bug in packed refs file exploding code that caused a .gitrefs+ directory to be created instead of .git/refs+ * Fix FTBFS on mipsel and sparc due to test suite not being available+ on those architectures.+ * Android: Avoid passing --clobber to busybox wget.++ -- Joey Hess <joeyh@debian.org> Thu, 16 Jan 2014 11:34:54 -0400+ git-annex (5.20140107) unstable; urgency=medium * mirror: Support --all (and --unused).
debian/control view
@@ -63,7 +63,7 @@ curl, openssh-client, Maintainer: Joey Hess <joeyh@debian.org>-Standards-Version: 3.9.4+Standards-Version: 3.9.5 Vcs-Git: git://git.kitenet.net/git-annex Homepage: http://git-annex.branchable.com/ XS-Testsuite: autopkgtest@@ -84,8 +84,12 @@ ssh-askpass, quvi, git-remote-gcrypt (>= 0.20130908-4),- nocache-Suggests: graphviz, bup, libnss-mdns+ nocache,+Suggests:+ graphviz,+ bup,+ tahoe-lafs,+ libnss-mdns, Description: manage files with git, without checking their contents into git git-annex allows managing files with git, without checking the file contents into git. While that may seem paradoxical, it is useful when
debian/copyright view
@@ -2,11 +2,11 @@ Source: native package Files: *-Copyright: © 2010-2013 Joey Hess <joey@kitenet.net>+Copyright: © 2010-2014 Joey Hess <joey@kitenet.net> License: GPL-3+ Files: Assistant/WebApp.hs Assistant/WebApp/* templates/* static/*-Copyright: © 2012-2013 Joey Hess <joey@kitenet.net>+Copyright: © 2012-2014 Joey Hess <joey@kitenet.net> License: AGPL-3+ Files: Utility/ThreadScheduler.hs
doc/assistant.mdwn view
@@ -33,9 +33,7 @@ The git-annex assistant was [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. 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/).+[[/Thanks]] to all my backers. I blog about my work on git-annex and the assistant on a daily basis in [[this_blog|/devblog]]. Follow along!
doc/assistant/thanks.mdwn view
@@ -1,243 +1,1 @@-The development of the git-annex assistant was made possible by the-generous donations of many people. I want to say "Thank You!" to each of-you individually, but until I meet all 951 of you, this page will have to-do. You have my most sincere thanks. --[[Joey]]--(If I got your name wrong, or you don't want it publically posted here,-email <joey@kitenet.net>.)--## Major Backers--These people are just inspiring in their enthusiasm and generosity to this-project.--* Jason Scott-* strager--## Beta Testers--Whole weeks of my time were made possible thanks to each of these-people, and their testing is invaluable to the development of-the git-annex assistant.--* Jimmy Tang-* David Pollak-* Pater-* Francois Marier-* Paul Sherwood-* Fred Epma-* Robert Ristroph-* Josh Triplett-* David Haslem-* AJ Ashton-* Svenne Krap-* Drew Hess-* Peter van Westen--## Prioritizers--These forward-thinking people contributed generously just to help-set my priorities in which parts of the git-annex assistant were most-important to develop.--Paul C. Bryan, Paul Tötterman, Don Marti, Dean Thompson, Djoume, David Johnston-Asokan Pichai, Anders Østhus, Dominik Wagenknecht, Charlie Fox, Yazz D. Atlas,-fenchel, Erik Penninga, Richard Hartmann, Graham, Stan Yamane, Ben Skelton,-Ian McEwen, asc, Paul Tagliamonte, Sherif Abouseda, Igor Támara, Anne Wind,-Mesar Hameed, Brandur K. Holm Petersen, Takahiro Inoue, Kai Hendry,-Stephen Youndt, Lee Roberson, Ben Strawbridge, Andrew Greenberg, Alfred Adams-Andrew, Aaron De Vries, Monti Knazze, Jorge Canseco, Hamish, Mark Eichin,-Sherif Abouseda, Ben Strawbridge, chee rabbits, Pedro Côrte-Real--And special thanks to Kevin McKenzie, who also gave me a login to a Mac OSX-machine, which has proven invaluable, Jimmy Tang who has helped-with Mac OSX autobuilding and packaging, and Yury V. Zaytsev who-provides the Windows autobuilder.--## Other Backers--Most of the success of the Kickstarter is thanks to these folks. Some of-them spent significant amounts of money in the guise of getting some-swag. For others, being listed here, and being crucial to making the -git-annex assistant happen was reward enough. Large or small, these-contributions are, literally, my bread and butter this year.--Amitai Schlair, mvime, Romain Lenglet, James Petts, Jouni Uuksulainen,-Wichert Akkerman, Robert Bellus, Kasper Souren, rob, Michiel Buddingh',-Kevin, Rob Avina, Alon Levy, Vikash, Michael Alan Dorman, Harley Pig,-Andreas Olsson, Pietpiet, Christine Spang, Liz Young, Oleg Kosorukov,-Allard Hoeve, Valentin Haenel, Joost Baaij, Nathan Yergler, Nathan Howell,-Frédéric Schütz, Matti Eskelinen, Neil McGovern, Lane Lillquist, db48x,-Stuart Prescott, Mark Matienzo, KarlTheGood, leonm, Drew Slininger, -Andreas Fuchs, Conrad Parker, Johannes Engelke, Battlegarden, Justin Kelly,-Robin Wagner, Thad Ward, crenquis, Trudy Goold, Mike Cochrane, Adam Venturella,-Russell Foo, furankupan, Giorgio Occhioni, andy, mind, Mike Linksvayer,-Stefan Strahl, Jelmer Vernooij, Markus Fix, David Hicks, Justin Azoff,-Iain Nicol, Bob Ippolito, Thomas Lundstrøm, Jason Mandel, federico2,-Edd Cochran, Jose Ortega, Emmett Agnew, Rudy Garcia, Kodi, Nick Rusnov,-Michael Rubin, Tom de Grunt, Richard Murray, Peter, Suzanne Pierce, Jared-Marcotte, folk, Eamon, Jeff Richards, Leo Sutedja, dann frazier, Mikkel-kristiansen, Matt Thomas, Kilian Evang, Gergely Risko, Kristian Rumberg,-Peter Kropf, Mark Hepburn, greymont, D. Joe Anderson, Jeremy Zunker, ctebo,-Manuel Roumain, Jason Walsh, np, Shawn, Johan Tibell, Branden Tyree, Dinyar-Rabady, Andrew Mason, damond armstead, Ethan Aubin, TomTom Tommie, Jimmy-Kaplowitz, Steven Zakulec, mike smith, Jacob Kirkwood, Mark Hymers, Nathan-Collins, Asbjørn Sloth Tønnesen, Misty De Meo, James Shubin,-Jim Paris, Adam Sjøgren, miniBill, Taneli, Kumar Appaiah, Greg Grossmeier,-Sten Turpin, Otavio Salvador, Teemu Hukkanen, Brian Stengaard, bob walker,-bibeneus, andrelo, Yaroslav Halchenko, hesfalling, Tommy L, jlargentaye,-Serafeim Zanikolas, Don Armstrong, Chris Cormack, shayne.oneill, Radu-Raduta, Josh S, Robin Sheat, Henrik Mygind, kodx, Christian, Geoff-Crompton, Brian May, Olivier Berger, Filippo Gadotti, Daniel Curto-Millet,-Eskild Hustvedt, Douglas Soares de Andrade, Tom L, Michael Nacos, Michaël-P., William Roe, Joshua Honeycutt, Brian Kelly, Nathan Rasch, jorge, Martin-Galese, alex cox, Avery Brooks, David Whittington, Dan Martinez, Forrest-Sutton, Jouni K. Seppänen, Arnold Cano, Robert Beaty, Daniel, Kevin Savetz,-Randy, Ernie Braganza, Aaron Haviland, Brian Brunswick, asmw, sean, Michael-Williams, Alexander, Dougal Campbell, Robert Bacchas, Michael Lewis, Collin-Price, Wes Frazier, Matt Wall, Brandon Barclay, Derek van Vliet, Martin-DeMello, kitt hodsden, Stephen Kitt, Leif Bergman, Simon Lilburn, Michael-Prokop, Christiaan Conover, Nick Coombe, Tim Dysinger, Brandon Robinson,-Philip Newborough, keith, Mike Fullerton, Kyle, Phil Windley, Tyler Head,-George V. Reilly, Matthew, Ali Gündüz, Vasyl Diakonov, Paolo Capriotti,-allanfranta, Martin Haeberli, msingle, Vincent Sanders, Steven King, Dmitry-Gribanov, Brandon High, Ben Hughes, Mike Dank, JohnE, Diggory Hardy,-Michael Hanke, valhalla, Samuli Tuomola, Jeff Rau, Benjamin Lebsanft, John-Drago, James, Aidan Cooper, rondie, Paul Kohler, Matthew Knights, Aaron-Junod, Patrick R McDonald, Christopher Browne, Daniel Engel, John SJ-Anderson, Peter Sarossy, Mike Prasad, Christoph Ender, Jan Dittberner,-Zohar, Alexander Jelinek, stefan, Danny O'Brien, Matthew Thode, Nicole-Aptekar, maurice gaston, Chris Adams, Mike Klemencic, Reedy, Subito, Tobias-Gruetzmacher, Ole-Morten Duesund, André Koot, mp, gdop, Cole Scott, Blaker,-Matt Sottile, W. Craig Trader, Louis-Philippe Dubrule, Brian Boucheron,-Duncan Smith, Brenton Buchbach, Kyle Stevenson, Eliot Lash, Egon Elbre,-Praveen, williamji, Thomas Schreiber, Neil Ford, Ryan Pratt, Joshua Brand,-Peter Cox, Markus Engstrom, John Sutherland, Dean Bailey, Ed Summers,-Hillel Arnold, David Fiander, Kurt Yoder, Trevor Muñoz, keri, Ivan-Sergeyenko, Shad Bolling, Tal Kelrich, Steve Presley, gerald ocker, Essex-Taylor, Josh Thomson, Trevor Bramble, Lance Higgins, Frank Motta, Dirk-Kraft, soundray, Joe Haskins, nmjk, Apurva Desai, Colin Dean, docwhat,-Joseph Costello, Jst, flamsmark, Alex Lang, Bill Traynor, Anthony David,-Marc-André Lureau, AlNapp, Giovanni Moretti, John Lawrence, João Paulo-Pizani Flor, Jim Ray, Gregory Thrush, Alistair McGann, Andrew Wied,-Koutarou Furukawa, Xiscu Ignacio, Aaron Sachs, Matt, Quirijn, Chet-Williams, Chris Gray, Bruce Segal, Tom Conder, Louis Tovar, Alex Duryee,-booltox, d8uv, Decklin Foster, Rafael Cervantes, Micah R Ledbetter, Kevin-Sjöberg, Johan Strombom, Zachary Cohen, Jason Lewis, Yves Bilgeri, Ville-Aine, Mark Hurley, Marco Bonetti, Maximilian Haack, Hynek Schlawack,-Michael Leinartas, Andreas Liebschner, Duotrig, Nat Fairbanks, David-Deutsch, Colin Hayhurst, calca, Kyle Goodrick, Marc Bobillier, Robert-Snook, James Kim, Olivier Serres, Jon Redfern, Itai Tavor, Michael-Fladischer, Rob, Jan Schmid, Thomas H., Anders Söderbäck, Abhishek-Dasgupta, Jeff Goeke-Smith, Tommy Thorn, bonuswavepilot, Philipp Edelmann,-Nick, Alejandro Navarro Fulleda, Yann Lallemant, andrew brennan, -Dave Allen Barker Jr, Fabian, Lukas Anzinger, Carl Witty, Andy Taylor,-Andre Klärner, Andrew Chilton, Adam Gibbins, Alexander Wauck, Shane O'Dea,-Paul Waite, Iain McLaren, Maggie Ellen Robin Hess, Willard Korfhage,-Nicolas, Eric Nikolaisen, Magnus Enger, Philipp Kern, Andrew Alderwick,-Raphael Wimmer, Benjamin Schötz, Ana Guerrero, Pete, Pieter van der Eems,-Aaron Suggs, Fred Benenson, Cedric Howe, Lance Ivy, Tieg Zaharia, Kevin-Cooney, Jon Williams, Anton Kudris, Roman Komarov, Brad Hilton, Rick Dakan,-Adam Whitcomb, Paul Casagrande, Evgueni Baldin, Robert Sanders, Kagan-Kayal, Dean Gardiner, micah altman, Cameron Banga, Ross Mcnairn, Oscar-Vilaplana, Robin Graham, Dan Gervais, Jon Åslund, Ragan Webber, Noble Hays,-stephen brown, Sean True, Maciek Swiech, faser, eikenberry, Kai Laborenz,-Sergey Fedoseev, Chris Fournier, Svend Sorensen, Greg K, wojtek, Johan-Ribenfors, Anton, Benjamin, Oleg Tsarev, PsychoHazard, John Cochrane,-Kasper Lauritzen, Patrick Naish, Rob, Keith Nasman, zenmaster, David Royer,-Max Woolf, Dan Gabber, martin rhoads, Martin Schmidinger, Paul-Scott-Wilson, Tom Gromak, Andy Webster, Dale Webb, Jim Watson, Stephen-Hansen, Mircea, Dan Goodenberger, Matthias Fink, Andy Gott, Daniel, Jai-Nelson, Shrayas Rajagopal, Vladimir Rutsky, Alexander, Thorben Westerhuys,-hiruki, Tao Neuendorffer Flaherty, Elline, Marco Hegenberg, robert, Balda,-Brennen Bearnes, Richard Parkins, David Gwilliam, Mark Johnson, Jeff Eaton,-Reddawn90, Heather Pusey, Chris Heinz, Colin, Phatsaphong Thadabusapa,-valunthar, Michael Martinez, redlukas, Yury V. Zaytsev, Blake, Tobias-"betabrain" A., Leon, sopyer, Steve Burnett, bessarabov, sarble, krsch.com,-Jack Self, Jeff Welch, Sam Pettiford, Jimmy Stridh, Diego Barberá, David-Steele, Oscar Ciudad, John Braman, Jacob, Nick Jenkins, Ben Sullivan, Brian-Cleary, James Brosnahan, Darryn Ten, Alex Brem, Jonathan Hitchcock, Jan-Schmidle, Wolfrzx99, Steve Pomeroy, Matthew Sitton, Finkregh, Derek Reeve,-GDR!, Cory Chapman, Marc Olivier Chouinard, Andreas Ryland, Justin, Andreas-Persenius, Games That Teach, Walter Somerville, Bill Haecker, Brandon-Phenix, Justin Shultz, Colin Scroggins, Tim Goddard, Ben Margolin, Michael-Martinez, David Hobbs, Andre Le, Jason Roberts, Bob Lopez, Gert Van Gool,-Robert Carnel, Anders Lundqvist, Aniruddha Sathaye, Marco Gillies, Basti-von Bejga, Esko Arajärvi, Dominik Deobald, Pavel Yudaev, Fionn Behrens,-Davide Favargiotti, Perttu Luukko, Silvan Jegen, Marcelo Bittencourt,-Leonard Peris, smercer, Alexandre Dupas, Solomon Matthews, Peter Hogg,-Richard E. Varian, Ian Oswald, James W. Sarvey, Ed Grether, Frederic-Savard, Sebastian Nerz, Hans-Chr. Jehg, Matija Nalis, Josh DiMauro, Jason-Harris, Adam Byrtek, Tellef, Magnus, Bart Schuurmans, Giel van Schijndel,-Ryan, kiodos, Richard 'maddog' Collins, PawZubr, Jason Gassel, Alex-Boisvert, Richard Thompson, maddi bolton, csights, Aaron Bryson, Jason Chu,-Maxime Côté, Kineteka Systems, Joe Cabezas, Mike Czepiel, Rami Nasra,-Christian Simonsen, Wouter Beugelsdijk, Adam Gibson, Gal Buki, James-Marble, Alan Chambers, Bernd Wiehle, Simon Korzun, Daniel Glassey, Eero af-Heurlin, Mikael, Timo Engelhardt, Wesley Faulkner, Jay Wo, Mike Belle,-David Fowlkes Jr., Karl-Heinz Strass, Ed Mullins, Sam Flint,-Hendrica, Mark Emer Anderson, Joshua Cole, Jan Gondol, Henrik Lindhe,-Albert Delgado, Patrick, Alexa Avellar, Chris, sebsn1349, Maxim Kachur,-Andrew Marshall, Navjot Narula, Alwin Mathew, Christian Mangelsdorf, Avi-Shevin, Kevin S., Guillermo Sanchez Estrada, Alex Krieger, Luca Meier, Will-Jessop, Nick Ruest, Lani Aung, Ulf Benjaminsson, Rudi Engelbrecht, Miles-Matton, Cpt_Threepwood, Adam Kuyper, reacocard, David Kilsheimer, Peter-Olson, Bill Fischofer, Prashant Shah, Simon Bonnick, Alexander Grudtsov,-Antoine Boegli, Richard Warren, Sebastian Rust, AlmostHuman, Timmy-Crawford, PC, Marek Belski, pontus, Douglas S Butts, Eric Wallmander, Joe-Pelar, VIjay, Trahloc, Vernon Vantucci, Matthew baya, Viktor Štujber,-Stephen Akiki, Daniil Zamoldinov, Atley, Chris Thomson, Jacob Briggs, Falko-Richter, Andy Schmitz, Sergi Sagas, Peder Refsnes, Jonatan, Ben, Bill-Niblock, Agustin Acuna, Jeff Curl, Tim Humphrey, bib, James Zarbock,-Lachlan Devantier, Michal Berg, Jeff Lucas, Sid Irish, Franklyn, Jared-Dickson, Olli Jarva, Adam Gibson, Lukas Loesche, Jukka Määttä, Alexander-Lin, Dao Tran, Kirk, briankb, Ryan Villasenor, Daniel Wong, barista, Tomas-Jungwirth, Jesper Hansen, Nivin Singh, Alessandro Tieghi, Billy Roessler,-Peter Fetterer, Pallav Laskar, jcherney, Tyler Wang, Steve, Gigahost, Beat-Wolf, Hannibal Skorepa, aktiveradio, Mark Nunnikhoven, Bret Comnes, Alan-Ruttenberg, Anthony DiSanti, Adam Warkiewicz, Brian Bowman, Jonathan, Mark-Filley, Tobias Mohr, Christian St. Cyr, j. faceless user, Karl Miller,-Thomas Taimre, Vikram, Jason Mountcastle, Jason, Paul Elliott, Alexander,-Stephen Farmer, rayslava, Peter Leurs, Sky Kruse, JP Reeves, John J Schatz,-Martin Sandmair, Will Thompson, John Hergenroeder, Thomas, Christophe-Ponsart, Wolfdog, Eagertolearn, LukasM, Federico Hernandez, Vincent Bernat,-Christian Schmidt, Cameron Colby Thomson, Josh Duff, James Brown, Theron-Trowbridge, Falke, Don Meares, tauu, Greg Cornford, Max Fenton, Kenneth-Reitz, Bruce Bensetler, Mark Booth, Herb Mann, Sindre Sorhus, Chris-Knadler, Daniel Digerås, Derek, Sin Valentine, Ben Gamari, david-lampenscherf, fardles, Richard Burdeniuk, Tobias Kienzler, Dawid Humbla,-Bruno Barbaroxa, D Malt, krivar, James Valleroy, Peter, Tim Geddings,-Matthias Holzinger, Hanen, Petr Vacek, Raymond, Griff Maloney, Andreas-Helveg Rudolph, Nelson Blaha, Colonel Fubar, Skyjacker Captain Gavin-Phoenix, shaun, Michael, Kari Salminen, Rodrigo Miranda, Alan Chan, Justin-Eugene Evans, Isaac, Ben Staffin, Matthew Loar, Magos, Roderik, Eugenio-Piasini, Nico B, Scott Walter, Lior Amsalem, Thongrop Rodsavas, Alberto de-Paola, Shawn Poulen, John Swiderski, lluks, Waelen, Mark Slosarek, Jim-Cristol, mikesol, Bilal Quadri, LuP, Allan Nicolson, Kevin Washington,-Isaac Wedin, Paul Anguiano, ldacruz, Jason Manheim, Sawyer, Jason-Woofenden, Joe Danziger, Declan Morahan, KaptainUfolog, Vladron, bart, Jeff-McNeill, Christian Schlotter, Ben McQuillan, Anthony, Julian, Martin O,-altruism, Eric Solheim, MarkS, ndrwc, Matthew, David Lehn, Matthew-Cisneros, Mike Skoglund, Kristy Carey, fmotta, Tom Lowenthal, Branden-Tyree, Aaron Whitehouse--## Also thanks to--* The Kickstarter team, who have unleashed much good on the world.-* The Haskell developers, who toiled for 20 years in obscurity- before most of us noticed them, and on whose giant shoulders I now stand,- in awe of the view.-* The Git developers, for obvious reasons.-* All of git-annex's early adopters, who turned it from a personal- toy project into something much more, and showed me the interest was there.-* Rsync.net, for providing me a free account so I can make sure git-annex- works well with it.-* LeastAuthority.com, for providing me a free Tahoe-LAFS grid account,- so I can test git-annex with that, and back up the git-annex assistant- screencasts.-* Anna and Mark, for the loan of the video camera; as well as the rest of- my family, for your support. Even when I couldn't explain what I was- working on.-* The Hodges, for providing such a congenial place for me to live and work- on these first world problems, while you're off helping people in the- third world.+[[!meta redir="/thanks#kickstarter"]]
+ doc/bugs/Check_for_minimum_Git_version.mdwn view
@@ -0,0 +1,41 @@+### Please describe the problem.++git-annex does not check for the minimum version of Git that it requires, and therefore it sometimes uses flags which my installed Git does not recognize.+This happens when converting some indirect repositories to direct ones on an older server.++### What steps will reproduce the problem?++git annex direct+++### What version of git-annex are you using? On what operating system?++git-annex version: 5.20131130++### 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++direct iTunes/iTunes Media/iTunes U/Statistics 110_ Probability/Strategic Practice and Homework 9.pdf ok+direct iTunes/iTunes Media/iTunes U/Statistics 110_ Probability/Syllabus.pdf ok+direct error: unknown switch `B'+usage: git checkout [options] <branch>+ or: git checkout [options] [<branch>] -- <file>...++# End of transcript or log.+"""]]++> git-annex checks the git version at compile time and arranges to use+> commands that will work with that version of git at run time.+> +> Adding a runtime check for a minimum git version would slow every git-annex+> command down and so I don't want to do it. It's up to the user to not+> built git-annex with a new version of git and then try to use it with an+> old version of git.+> +> `git checkout -B` seems to have been added to git quite a long time ago+> (2010), in version 1.7.1.1. I've made git-annex check at compile+> time if being built with such an old version and refuse to build.+> [[done]]. --[[Joey]]
+ doc/bugs/Git_annex_add_._dies_when_you_add_too_much.mdwn view
@@ -0,0 +1,56 @@+### Please describe the problem.++I was playing around thinking to try out git-annex, and bup ++I sucessfully added 6GB of images in subdirectories in ~/Pictures, so decided to push over another dir full - ++more than 30GB more...++sven@quad:~/Pictures$ git annex add .+....+add 2012/01/10/20120110-024457/IMG_1830.JPG +git-annex: <file descriptor: 7>: hFlush: resource vanished (Broken pipe)+failed+add 2012/01/10/20120110-024457/IMG_1831.JPG +git-annex: <file descriptor: 7>: hFlush: resource vanis+sven@quad:~/Pictures$ +sven@quad:~/Pictures$ git annex add .+Stack space overflow: current size 8388608 bytes.+Use `+RTS -Ksize -RTS' to increase it.+sven@quad:~/Pictures$ git git commit -a -m added+git: 'git' is not a git command. See 'git --help'.++Did you mean this?+ init+sven@quad:~/Pictures$ git commit -a -m added+Bus error (core dumped)++++### What steps will reproduce the problem?+see above++### What version of git-annex are you using? On what operating system?+sven@quad:~/Pictures$ git annex version+git-annex version: 3.20120406+local repository version: 3+default repository version: 3+supported repository versions: 3+upgrade supported from repository versions: 0 1 2+sven@quad:~/Pictures$ uname -a+Linux quad 3.8.0-34-generic #49~precise1-Ubuntu SMP Wed Nov 13 18:05:00 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux+++### 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.+"""]]++> Ancient git-annex version. Doubt it affects current version. [[!tag moreinfo]] --[[Joey]]
@@ -0,0 +1,368 @@+### Please describe the problem.+Logging into Jabber (specifically with a google account) crashes on the OSX build of git-annex with a Illegal Instruction 4 error. ++### What steps will reproduce the problem?+The only things I have done to trigger the below crash is start the webapp up, navigate to the jabber login, and login with my gmail account. ++### What version of git-annex are you using? On what operating system?+Version: 5.20140107-g281cde8 OSX++### Please provide any additional information below.++There isn't much on the command line to go from:+ + Launching web browser on file:///Volumes/Data/Annex/.git/annex/webapp.html+ Illegal instruction: 4+ +And the log file isn't any better.++[[!format sh """+[2014-01-13 20:40:43 EST] main: starting assistant version 5.20140107-g281cde8+(scanning...) [2014-01-13 20:40:43 EST] Watcher: Performing startup scan+(started...) +"""]]+ +Here is the crash report osx creates+[[!format sh """+ Process: git-annex [11316]+ Path: /Applications/git-annex.app/Contents/MacOS/bundle/git-annex+ Identifier: git-annex+ Version: 0+ Code Type: X86-64 (Native)+ Parent Process: bash [10866]+ Responsible: Terminal [212]+ User ID: 501+ + Date/Time: 2014-01-13 20:12:59.807 -0500+ OS Version: Mac OS X 10.9.1 (13B42)+ Report Version: 11+ Anonymous UUID: 43148BA1-3CAA-4C73-2971-CAC673D60B2B+ + + Crashed Thread: 5+ + Exception Type: EXC_BAD_INSTRUCTION (SIGILL)+ Exception Codes: 0x0000000000000001, 0x0000000000000000+ + Thread 0:: Dispatch queue: com.apple.main-thread+ 0 libsystem_kernel.dylib 0x00007fff9796d716 __psynch_cvwait + 10+ 1 libsystem_pthread.dylib 0x00007fff9a0cdc3b _pthread_cond_wait + 727+ 2 git-annex 0x0000000103ae2c59 0x100e4f000 + 46742617+ 3 git-annex 0x0000000103abfe7b 0x100e4f000 + 46599803+ 4 git-annex 0x0000000103ace8c2 0x100e4f000 + 46659778+ 5 git-annex 0x0000000103acf334 0x100e4f000 + 46662452+ 6 git-annex 0x0000000103ac9cce 0x100e4f000 + 46640334+ 7 git-annex 0x0000000103ac9dd6 0x100e4f000 + 46640598+ 8 git-annex 0x0000000101701708 0x100e4f000 + 9119496+ 9 libdyld.dylib 0x00007fff9a5695fd start + 1+ + Thread 1:+ 0 libsystem_kernel.dylib 0x00007fff9796e662 kevent64 + 10+ 1 git-annex 0x0000000103a6e78a 0x100e4f000 + 46266250+ 2 git-annex 0x0000000103a6e828 0x100e4f000 + 46266408+ + Thread 2:+ 0 libsystem_kernel.dylib 0x00007fff9796d716 __psynch_cvwait + 10+ 1 libsystem_pthread.dylib 0x00007fff9a0cdc3b _pthread_cond_wait + 727+ 2 git-annex 0x0000000103ae2c59 0x100e4f000 + 46742617+ 3 git-annex 0x0000000103abfe7b 0x100e4f000 + 46599803+ 4 git-annex 0x0000000103ace8c2 0x100e4f000 + 46659778+ 5 git-annex 0x0000000103acf20b 0x100e4f000 + 46662155+ 6 libsystem_pthread.dylib 0x00007fff9a0cb899 _pthread_body + 138+ 7 libsystem_pthread.dylib 0x00007fff9a0cb72a _pthread_start + 137+ 8 libsystem_pthread.dylib 0x00007fff9a0cffc9 thread_start + 13+ + Thread 3:+ 0 libsystem_kernel.dylib 0x00007fff9796d716 __psynch_cvwait + 10+ 1 libsystem_pthread.dylib 0x00007fff9a0cdc3b _pthread_cond_wait + 727+ 2 git-annex 0x0000000103ae2c59 0x100e4f000 + 46742617+ 3 git-annex 0x0000000103abfe7b 0x100e4f000 + 46599803+ 4 git-annex 0x0000000103ace8c2 0x100e4f000 + 46659778+ 5 git-annex 0x0000000103acf20b 0x100e4f000 + 46662155+ 6 libsystem_pthread.dylib 0x00007fff9a0cb899 _pthread_body + 138+ 7 libsystem_pthread.dylib 0x00007fff9a0cb72a _pthread_start + 137+ 8 libsystem_pthread.dylib 0x00007fff9a0cffc9 thread_start + 13+ + Thread 4:+ 0 libsystem_kernel.dylib 0x00007fff9796d716 __psynch_cvwait + 10+ 1 libsystem_pthread.dylib 0x00007fff9a0cdc3b _pthread_cond_wait + 727+ 2 git-annex 0x0000000103ae2c59 0x100e4f000 + 46742617+ 3 git-annex 0x0000000103abfe7b 0x100e4f000 + 46599803+ 4 git-annex 0x0000000103ace8c2 0x100e4f000 + 46659778+ 5 git-annex 0x0000000103acf20b 0x100e4f000 + 46662155+ 6 libsystem_pthread.dylib 0x00007fff9a0cb899 _pthread_body + 138+ 7 libsystem_pthread.dylib 0x00007fff9a0cb72a _pthread_start + 137+ 8 libsystem_pthread.dylib 0x00007fff9a0cffc9 thread_start + 13+ + Thread 5 Crashed:+ 0 E 0x00000001045b10f3 xmlAllocParserInputBuffer + 32+ 1 E 0x000000010459f451 xmlCreatePushParserCtxt + 65+ 2 git-annex 0x00000001022369ca 0x100e4f000 + 20871626+ 3 git-annex 0x000000010222c9fd 0x100e4f000 + 20830717+ + Thread 6:: Dispatch queue: com.apple.libdispatch-manager+ 0 libsystem_kernel.dylib 0x00007fff9796e662 kevent64 + 10+ 1 libdispatch.dylib 0x00007fff92f5243d _dispatch_mgr_invoke + 239+ 2 libdispatch.dylib 0x00007fff92f52152 _dispatch_mgr_thread + 52+ + Thread 7:+ 0 libsystem_kernel.dylib 0x00007fff97969a1a mach_msg_trap + 10+ 1 libsystem_kernel.dylib 0x00007fff97968d18 mach_msg + 64+ 2 com.apple.CoreFoundation 0x00007fff95160315 __CFRunLoopServiceMachPort + 181+ 3 com.apple.CoreFoundation 0x00007fff9515f939 __CFRunLoopRun + 1161+ 4 com.apple.CoreFoundation 0x00007fff9515f275 CFRunLoopRunSpecific + 309+ 5 com.apple.CoreFoundation 0x00007fff952149d1 CFRunLoopRun + 97+ 6 git-annex 0x000000010229dbe8 0x100e4f000 + 21294056+ 7 libsystem_pthread.dylib 0x00007fff9a0cb899 _pthread_body + 138+ 8 libsystem_pthread.dylib 0x00007fff9a0cb72a _pthread_start + 137+ 9 libsystem_pthread.dylib 0x00007fff9a0cffc9 thread_start + 13+ + Thread 8:+ 0 libsystem_kernel.dylib 0x00007fff97969a1a mach_msg_trap + 10+ 1 libsystem_kernel.dylib 0x00007fff97968d18 mach_msg + 64+ 2 com.apple.CoreFoundation 0x00007fff95160315 __CFRunLoopServiceMachPort + 181+ 3 com.apple.CoreFoundation 0x00007fff9515f939 __CFRunLoopRun + 1161+ 4 com.apple.CoreFoundation 0x00007fff9515f275 CFRunLoopRunSpecific + 309+ 5 com.apple.CoreFoundation 0x00007fff952149d1 CFRunLoopRun + 97+ 6 git-annex 0x000000010229dbe8 0x100e4f000 + 21294056+ 7 libsystem_pthread.dylib 0x00007fff9a0cb899 _pthread_body + 138+ 8 libsystem_pthread.dylib 0x00007fff9a0cb72a _pthread_start + 137+ 9 libsystem_pthread.dylib 0x00007fff9a0cffc9 thread_start + 13+ + Thread 9:+ 0 libsystem_kernel.dylib 0x00007fff97969a1a mach_msg_trap + 10+ 1 libsystem_kernel.dylib 0x00007fff97968d18 mach_msg + 64+ 2 com.apple.CoreFoundation 0x00007fff95160315 __CFRunLoopServiceMachPort + 181+ 3 com.apple.CoreFoundation 0x00007fff9515f939 __CFRunLoopRun + 1161+ 4 com.apple.CoreFoundation 0x00007fff9515f275 CFRunLoopRunSpecific + 309+ 5 com.apple.CoreFoundation 0x00007fff952149d1 CFRunLoopRun + 97+ 6 git-annex 0x000000010229dbe8 0x100e4f000 + 21294056+ 7 libsystem_pthread.dylib 0x00007fff9a0cb899 _pthread_body + 138+ 8 libsystem_pthread.dylib 0x00007fff9a0cb72a _pthread_start + 137+ 9 libsystem_pthread.dylib 0x00007fff9a0cffc9 thread_start + 13+ + Thread 10:+ 0 libsystem_kernel.dylib 0x00007fff97969a1a mach_msg_trap + 10+ 1 libsystem_kernel.dylib 0x00007fff97968d18 mach_msg + 64+ 2 com.apple.CoreFoundation 0x00007fff95160315 __CFRunLoopServiceMachPort + 181+ 3 com.apple.CoreFoundation 0x00007fff9515f939 __CFRunLoopRun + 1161+ 4 com.apple.CoreFoundation 0x00007fff9515f275 CFRunLoopRunSpecific + 309+ 5 com.apple.CoreFoundation 0x00007fff952149d1 CFRunLoopRun + 97+ 6 git-annex 0x000000010229dbe8 0x100e4f000 + 21294056+ 7 libsystem_pthread.dylib 0x00007fff9a0cb899 _pthread_body + 138+ 8 libsystem_pthread.dylib 0x00007fff9a0cb72a _pthread_start + 137+ 9 libsystem_pthread.dylib 0x00007fff9a0cffc9 thread_start + 13++ Thread 5 crashed with X86 Thread State (64-bit):+ rax: 0x00007fc563c0f6a0 rbx: 0x00007fc563c0f6a0 rcx: 0x0000000000000001 rdx: 0x0000000000000000+ rdi: 0x0000000104a01400 rsi: 0x00000000ffffc7ff rbp: 0x0000000104f7ccb0 rsp: 0x0000000104f7cca0+ r8: 0x0000000000000003 r9: 0x00007fc563c00000 r10: 0x000000010467f9f8 r11: 0x000000010459f410+ r12: 0x0000000104f7cd20 r13: 0x0000000000000000 r14: 0x0000000000000000 r15: 0x0000000104b840c0+ rip: 0x00000001045b10f3 rfl: 0x0000000000010206 cr2: 0x00000001045b10d3+ + Logical CPU: 1+ Error Code: 0x00000000+ Trap Number: 6+ + + Binary Images:+ 0x100e4f000 - 0x103c68fef +git-annex (0) <05D25108-337E-3F98-837F-33A4E68BA8A4> /Applications/git-annex.app/Contents/MacOs/bundle/git-annex+ 0x104582000 - 0x10466bff7 +E (0) <602E5717-D4D7-314D-A1E9-02AFBFBB7966> /Applications/git-annex.app/Contents/MacOs/bundle/E+ 0x10469f000 - 0x1046b3fff +F (0) <FA90B1B1-A866-3A6C-BB97-06955F4C8C0B> /Applications/git-annex.app/Contents/MacOs/bundle/F+ 0x1046ba000 - 0x1046e7fff +G (0) <9FFF37C3-8153-345F-9B71-913B95B07511> /Applications/git-annex.app/Contents/MacOs/bundle/G+ 0x1046ee000 - 0x1047a7fdf +H (0) <49EC1EB8-F352-303D-8E68-C95171D096CF> /Applications/git-annex.app/Contents/MacOs/bundle/H+ 0x1047de000 - 0x1047efff7 +B (53) <42E0C8C6-CA38-3CA4-8619-D24ED5DD492E> /Applications/git-annex.app/Contents/MacOs/bundle/B+ 0x1047f6000 - 0x1048e7ff9 +D (41) <BB44B115-AC32-3877-A0ED-AEC6232A4563> /Applications/git-annex.app/Contents/MacOs/bundle/D+ 0x1048fe000 - 0x104918ff7 +O (0) <18FCF32F-BAB0-323A-BCAC-D4CE4272B754> /Applications/git-annex.app/Contents/MacOs/bundle/O+ 0x10491f000 - 0x104930fff +P (0) <E483648A-97E2-3214-B602-73F6445AAD69> /Applications/git-annex.app/Contents/MacOs/bundle/P+ 0x10493f000 - 0x10494cff7 +Q (0) <CFA94087-CD1F-3355-BFC1-2D338F6358C4> /Applications/git-annex.app/Contents/MacOs/bundle/Q+ 0x104957000 - 0x104978fff +R (0) <C6EE5DD0-0910-3605-A149-D7F67C2F8C10> /Applications/git-annex.app/Contents/MacOs/bundle/R+ 0x104985000 - 0x104991fff +S (0) <9082AF89-3370-3858-B015-CB919CB3EBB0> /Applications/git-annex.app/Contents/MacOs/bundle/S+ 0x104998000 - 0x1049f1fcf +T (0) <3AADCBFB-48C4-320D-8CF1-1E8FDAC30276> /Applications/git-annex.app/Contents/MacOs/bundle/T+ 0x7fff69dff000 - 0x7fff69e32817 dyld (239.3) <D1DFCF3F-0B0C-332A-BCC0-87A851B570FF> /usr/lib/dyld+ 0x7fff8d3b0000 - 0x7fff8d43cff7 com.apple.ink.framework (10.9 - 207) <8A50B893-AD03-3826-8555-A54FEAF08F47> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink+ 0x7fff8d44b000 - 0x7fff8d4a3ff7 com.apple.Symbolication (1.4 - 129) <16D42516-7B5E-357C-898A-FAA9EE7642B3> /System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication+ 0x7fff8d515000 - 0x7fff8d516fff libunc.dylib (28) <62682455-1862-36FE-8A04-7A6B91256438> /usr/lib/system/libunc.dylib+ 0x7fff8d51c000 - 0x7fff8d522ff7 libsystem_platform.dylib (24.1.4) <331BA4A5-55CE-3B95-99EB-44E0C89D7FB8> /usr/lib/system/libsystem_platform.dylib+ 0x7fff8d523000 - 0x7fff8d904ffe libLAPACK.dylib (1094.5) <7E7A9B8D-1638-3914-BAE0-663B69865986> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib+ 0x7fff8d952000 - 0x7fff8d959fff com.apple.NetFS (6.0 - 4.0) <8E26C099-CE9D-3819-91A2-64EA929C6137> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS+ 0x7fff8d98a000 - 0x7fff8d9c8ff7 libGLImage.dylib (9.0.83) <C08048A7-03CC-3E40-BCDC-7791D87AC8E4> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib+ 0x7fff8da8d000 - 0x7fff8dd8cfff com.apple.Foundation (6.9 - 1056) <D608EDFD-9634-3573-9B7E-081C7D085F7A> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation+ 0x7fff8dfac000 - 0x7fff8dfb0ff7 libheimdal-asn1.dylib (323.12) <063A01C2-E547-39D9-BB42-4CC8E64ADE70> /usr/lib/libheimdal-asn1.dylib+ 0x7fff8dfb1000 - 0x7fff8dfb6fff libmacho.dylib (845) <1D2910DF-C036-3A82-A3FD-44FF73B5FF9B> /usr/lib/system/libmacho.dylib+ 0x7fff8e022000 - 0x7fff8e024ff3 libsystem_configuration.dylib (596.12) <C4F633D9-94C8-35D9-BB2D-84C5122533C7> /usr/lib/system/libsystem_configuration.dylib+ 0x7fff8e35c000 - 0x7fff8e4afff7 com.apple.audio.toolbox.AudioToolbox (1.9 - 1.9) <A0B7B007-9BD8-30E2-B644-47856DA29FEE> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox+ 0x7fff8e4ee000 - 0x7fff8f062ff7 com.apple.AppKit (6.9 - 1265) <0E9FC8BF-DA3C-34C5-91CC-12BC922B5F01> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit+ 0x7fff8f063000 - 0x7fff8f067ff7 libcache.dylib (62) <BDC1E65B-72A1-3DA3-A57C-B23159CAAD0B> /usr/lib/system/libcache.dylib+ 0x7fff8f068000 - 0x7fff8f0a1ff7 com.apple.QD (3.50 - 298) <C1F20764-DEF0-34CF-B3AB-AB5480D64E66> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD+ 0x7fff8f0a2000 - 0x7fff8f0adfff libGL.dylib (9.0.83) <984A960A-C159-3AE5-8B40-E2B451F6C712> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib+ 0x7fff8f0d7000 - 0x7fff8f0d8ff7 libDiagnosticMessagesClient.dylib (100) <4CDB0F7B-C0AF-3424-BC39-495696F0DB1E> /usr/lib/libDiagnosticMessagesClient.dylib+ 0x7fff8f120000 - 0x7fff8f121fff liblangid.dylib (117) <9546E641-F730-3AB0-B3CD-E0E2FDD173D9> /usr/lib/liblangid.dylib+ 0x7fff8f122000 - 0x7fff8f169ff7 libcups.2.dylib (372) <348EED62-6C20-35D6-8EFB-E80943965100> /usr/lib/libcups.2.dylib+ 0x7fff8f551000 - 0x7fff8f5e0fff com.apple.Metadata (10.7.0 - 800.12.2) <A9F5D471-8732-3F95-A4A2-33864B92A181> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata+ 0x7fff8f843000 - 0x7fff8f850ff0 libbz2.1.0.dylib (29) <0B98AC35-B138-349C-8063-2B987A75D24C> /usr/lib/libbz2.1.0.dylib+ 0x7fff8fa7e000 - 0x7fff8fa86ffc libGFXShared.dylib (9.0.83) <11A621C3-37A0-39CE-A69B-8739021BD79D> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib+ 0x7fff8fab1000 - 0x7fff8fc5ef27 libobjc.A.dylib (551.1) <AD7FD984-271E-30F4-A361-6B20319EC73B> /usr/lib/libobjc.A.dylib+ 0x7fff8fc5f000 - 0x7fff8fc68fff com.apple.speech.synthesis.framework (4.6.2 - 4.6.2) <0AAE45F0-FC6E-36B6-A6A7-73E6950A74AC> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis+ 0x7fff90002000 - 0x7fff9000ffff com.apple.Sharing (132.2 - 132.2) <F983394A-226D-3244-B511-FA51FDB6ADDA> /System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing+ 0x7fff90042000 - 0x7fff90071ff5 com.apple.GSS (4.0 - 2.0) <ED98D992-CC14-39F3-9ABC-8D7F986487CC> /System/Library/Frameworks/GSS.framework/Versions/A/GSS+ 0x7fff90072000 - 0x7fff90072fff com.apple.CoreServices (59 - 59) <7A697B5E-F179-30DF-93F2-8B503CEEEFD5> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices+ 0x7fff90073000 - 0x7fff900c5fff libc++.1.dylib (120) <4F68DFC5-2077-39A8-A449-CAC5FDEE7BDE> /usr/lib/libc++.1.dylib+ 0x7fff90646000 - 0x7fff90646fff com.apple.Cocoa (6.8 - 20) <E90E99D7-A425-3301-A025-D9E0CD11918E> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa+ 0x7fff90647000 - 0x7fff90710fff com.apple.LaunchServices (572.23 - 572.23) <8D955BDE-2C4C-3DD4-B4D7-2D916174FE1D> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices+ 0x7fff90711000 - 0x7fff90762ff3 com.apple.audio.CoreAudio (4.2.0 - 4.2.0) <BF4C2FE3-8BC8-30D1-8347-2A7221268794> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio+ 0x7fff90795000 - 0x7fff90858ff7 com.apple.backup.framework (1.5.1 - 1.5.1) <FC4E949B-B41A-3F21-8AF8-AEDB13146FEA> /System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup+ 0x7fff9085f000 - 0x7fff9117b05f com.apple.CoreGraphics (1.600.0 - 599.7) <7D0FD5A7-A061-39BA-8E00-723825D2C4DD> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics+ 0x7fff9117c000 - 0x7fff911bbfff libGLU.dylib (9.0.83) <8B457205-513B-3477-AE9C-3AD979D5FE11> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib+ 0x7fff91291000 - 0x7fff912acff7 libPng.dylib (1038) <EF781AF8-C2E6-3179-B8A1-A584783070F1> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib+ 0x7fff912b0000 - 0x7fff912bbff7 com.apple.NetAuth (5.0 - 5.0) <C811E662-9EC3-3B74-808A-A75D624F326B> /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth+ 0x7fff912bc000 - 0x7fff912e3ff7 libsystem_network.dylib (241.3) <8B1E1F1D-A5CC-3BAE-8B1E-ABC84337A364> /usr/lib/system/libsystem_network.dylib+ 0x7fff912e4000 - 0x7fff912e4ffd libOpenScriptingUtil.dylib (157) <19F0E769-0989-3062-9AFB-8976E90E9759> /usr/lib/libOpenScriptingUtil.dylib+ 0x7fff91426000 - 0x7fff9144aff7 libJPEG.dylib (1038) <86F349A8-882D-3326-A0B0-63257F68B1A7> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib+ 0x7fff916fe000 - 0x7fff91700fff libCVMSPluginSupport.dylib (9.0.83) <E2AED858-6EEB-36C6-8C06-C3CF649A3CD5> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib+ 0x7fff91701000 - 0x7fff91701fff com.apple.Accelerate.vecLib (3.9 - vecLib 3.9) <F8D0CC77-98AC-3B58-9FE6-0C25421827B6> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib+ 0x7fff9172a000 - 0x7fff9172fff7 libunwind.dylib (35.3) <78DCC358-2FC1-302E-B395-0155B47CB547> /usr/lib/system/libunwind.dylib+ 0x7fff91ff7000 - 0x7fff9201effb libsystem_info.dylib (449.1.3) <7D41A156-D285-3849-A2C3-C04ADE797D98> /usr/lib/system/libsystem_info.dylib+ 0x7fff920c3000 - 0x7fff92130fff com.apple.SearchKit (1.4.0 - 1.4.0) <B9B8D510-A27E-36B0-93E9-17146D9E9045> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit+ 0x7fff92131000 - 0x7fff92389ff1 com.apple.security (7.0 - 55471) <233831C5-C457-3AD5-AFE7-E3E2DE6929C9> /System/Library/Frameworks/Security.framework/Versions/A/Security+ 0x7fff92397000 - 0x7fff9266bfc7 com.apple.vImage (7.0 - 7.0) <D241DBFA-AC49-31E2-893D-EAAC31890C90> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage+ 0x7fff92f4f000 - 0x7fff92f69fff libdispatch.dylib (339.1.9) <46878A5B-4248-3057-962C-6D4A235EEF31> /usr/lib/system/libdispatch.dylib+ 0x7fff92f6a000 - 0x7fff92f92ffb libxslt.1.dylib (13) <C9794936-633C-3F0C-9E71-30190B9B41C1> /usr/lib/libxslt.1.dylib+ 0x7fff93591000 - 0x7fff935d3ff7 libauto.dylib (185.5) <F45C36E8-B606-3886-B5B1-B6745E757CA8> /usr/lib/libauto.dylib+ 0x7fff935d4000 - 0x7fff93604fff com.apple.IconServices (25 - 25.17) <4751127E-FBD5-3ED5-8510-08D4E4166EFE> /System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices+ 0x7fff937e6000 - 0x7fff93820ff3 com.apple.bom (12.0 - 192) <989690DB-B9CC-3DB5-89AE-B5D33EDC474E> /System/Library/PrivateFrameworks/Bom.framework/Versions/A/Bom+ 0x7fff9397e000 - 0x7fff93aecff7 libBLAS.dylib (1094.5) <DE93A590-5FA5-32A2-A16C-5D7D7361769F> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib+ 0x7fff93b18000 - 0x7fff93b1bfff com.apple.TCC (1.0 - 1) <32A075D9-47FD-3E71-95BC-BFB0D583F41C> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC+ 0x7fff93b1c000 - 0x7fff93b20fff libpam.2.dylib (20) <B93CE8F5-DAA8-30A1-B1F6-F890509513CB> /usr/lib/libpam.2.dylib+ 0x7fff93c44000 - 0x7fff94077ffb com.apple.vision.FaceCore (3.0.0 - 3.0.0) <F42BFC9C-0B16-35EF-9A07-91B7FDAB7FC5> /System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore+ 0x7fff94101000 - 0x7fff94174ffb com.apple.securityfoundation (6.0 - 55122) <119D1C53-B292-3378-AEE1-A3B1FB02F43F> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation+ 0x7fff94180000 - 0x7fff9418dff7 libxar.1.dylib (202) <5572AA71-E98D-3FE1-9402-BB4A84E0E71E> /usr/lib/libxar.1.dylib+ 0x7fff941a2000 - 0x7fff941a4fff libRadiance.dylib (1038) <55F99274-5074-3C73-BAC5-AF234E71CF38> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib+ 0x7fff9420c000 - 0x7fff94259ff2 com.apple.print.framework.PrintCore (9.0 - 428) <8D8253E3-302F-3DB2-9C5C-572CB974E8B3> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore+ 0x7fff9425a000 - 0x7fff9425ffff com.apple.DiskArbitration (2.6 - 2.6) <F8A47F61-83D1-3F92-B7A8-A169E0D187C0> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration+ 0x7fff94260000 - 0x7fff94270fff libbsm.0.dylib (33) <2CAC00A2-1352-302A-88FA-C567D4D69179> /usr/lib/libbsm.0.dylib+ 0x7fff942c5000 - 0x7fff942cfff7 com.apple.bsd.ServiceManagement (2.0 - 2.0) <2D27B498-BB9C-3D88-B05A-76908A8A26F3> /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement+ 0x7fff942d0000 - 0x7fff942f5ff7 com.apple.CoreVideo (1.8 - 117.2) <4674339E-26D0-35FA-9958-422832B39B12> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo+ 0x7fff942f8000 - 0x7fff94346fff libcorecrypto.dylib (161.1) <F3973C28-14B6-3006-BB2B-00DD7F09ABC7> /usr/lib/system/libcorecrypto.dylib+ 0x7fff94347000 - 0x7fff9434affc com.apple.IOSurface (91 - 91) <07CA8A59-1E32-3FB6-B506-18DAF58A8CE0> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface+ 0x7fff9434b000 - 0x7fff94354ff3 libsystem_notify.dylib (121) <52571EC3-6894-37E4-946E-064B021ED44E> /usr/lib/system/libsystem_notify.dylib+ 0x7fff943ae000 - 0x7fff943c0ff7 com.apple.MultitouchSupport.framework (245.13 - 245.13) <D5E7416D-45AB-3690-86C6-CC4B5FCEA2D2> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport+ 0x7fff943c1000 - 0x7fff9455dff7 com.apple.QuartzCore (1.8 - 332.0) <994D1E0A-64B6-398C-B9A2-C362F02DE943> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore+ 0x7fff94953000 - 0x7fff94a42fff libFontParser.dylib (111.1) <835A8253-6AB9-3AAB-9CBF-171440DEC486> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib+ 0x7fff94a44000 - 0x7fff94a68fff libxpc.dylib (300.1.17) <4554927A-9467-365C-91F1-5A116989DD7F> /usr/lib/system/libxpc.dylib+ 0x7fff94a69000 - 0x7fff94ab0fff libFontRegistry.dylib (127) <A77A0480-AA5D-3CC8-8B68-69985CD546DC> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib+ 0x7fff94b00000 - 0x7fff94b53fff com.apple.ScalableUserInterface (1.0 - 1) <CF745298-7373-38D2-B3B1-727D5A569E48> /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/ScalableUserInterface.framework/Versions/A/ScalableUserInterface+ 0x7fff94b5e000 - 0x7fff94b6cfff com.apple.opengl (9.0.83 - 9.0.83) <AF467644-7B1D-327A-AC47-CECFCAF61990> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL+ 0x7fff94b8a000 - 0x7fff94b91ff7 liblaunch.dylib (842.1.4) <FCBF0A02-0B06-3F97-9248-5062A9DEB32C> /usr/lib/system/liblaunch.dylib+ 0x7fff94b92000 - 0x7fff94b9dfff libkxld.dylib (2422.1.72) <C88EF3E6-B31F-3E12-BE9B-562D912BA733> /usr/lib/system/libkxld.dylib+ 0x7fff94ec9000 - 0x7fff94ec9ff7 libkeymgr.dylib (28) <3AA8D85D-CF00-3BD3-A5A0-E28E1A32A6D8> /usr/lib/system/libkeymgr.dylib+ 0x7fff94eca000 - 0x7fff94f23fff libTIFF.dylib (1038) <5CBFE0C2-9DD8-340B-BA63-A94CE2E476F2> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib+ 0x7fff94f24000 - 0x7fff94f3fff7 libsystem_malloc.dylib (23.1.10) <FFE5C472-B23A-318A-85BF-77CDE61900D1> /usr/lib/system/libsystem_malloc.dylib+ 0x7fff950ab000 - 0x7fff950dafd2 libsystem_m.dylib (3047.16) <B7F0E2E4-2777-33FC-A787-D6430B630D54> /usr/lib/system/libsystem_m.dylib+ 0x7fff950db000 - 0x7fff950e3ff7 com.apple.speech.recognition.framework (4.2.4 - 4.2.4) <98BBB3E4-6239-3EF1-90B2-84EA0D3B8D61> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition+ 0x7fff950e6000 - 0x7fff950e7ff7 libsystem_blocks.dylib (63) <FB856CD1-2AEA-3907-8E9B-1E54B6827F82> /usr/lib/system/libsystem_blocks.dylib+ 0x7fff950ef000 - 0x7fff952d4ff7 com.apple.CoreFoundation (6.9 - 855.11) <E22C6A1F-8996-349C-905E-96C3BBE07C2F> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation+ 0x7fff952d5000 - 0x7fff952ecfff com.apple.CFOpenDirectory (10.9 - 173.1.1) <3FB4D5FE-860B-3BDE-BAE2-3531D919EF10> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory+ 0x7fff953a1000 - 0x7fff953a5ff7 libGIF.dylib (1038) <C29B4323-1B9E-36B9-96C2-7CEDBAA124F0> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib+ 0x7fff958d8000 - 0x7fff958e2ff7 com.apple.CrashReporterSupport (10.9 - 538) <B487466B-3AA1-3854-A808-A61F049FA794> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport+ 0x7fff958e3000 - 0x7fff95bb1ff4 com.apple.CoreImage (9.0.54) <74BB8685-69A9-3A45-8DED-EA26BD39D710> /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/CoreImage.framework/Versions/A/CoreImage+ 0x7fff95e9a000 - 0x7fff95e9bfff com.apple.TrustEvaluationAgent (2.0 - 25) <334A82F4-4AE4-3719-A511-86D0B0723E2B> /System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent+ 0x7fff95e9c000 - 0x7fff95f4cff7 libvMisc.dylib (423.32) <049C0735-1808-39B9-943F-76CB8021744F> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib+ 0x7fff95fa5000 - 0x7fff95faefff com.apple.CommonAuth (4.0 - 2.0) <1D263127-5F27-3128-996D-7397660D0C6E> /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth+ 0x7fff95fd9000 - 0x7fff96283ffd com.apple.HIToolbox (2.1 - 696) <1CFFF37B-C392-3088-B0A4-C08C55B2AF8F> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox+ 0x7fff962bc000 - 0x7fff962fdfff com.apple.PerformanceAnalysis (1.47 - 47) <784ED7B8-FAE4-36CE-8C76-B7D300316C9F> /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis+ 0x7fff96478000 - 0x7fff96482fff libcommonCrypto.dylib (60049) <8C4F0CA0-389C-3EDC-B155-E62DD2187E1D> /usr/lib/system/libcommonCrypto.dylib+ 0x7fff96483000 - 0x7fff9648afff libcompiler_rt.dylib (35) <4CD916B2-1B17-362A-B403-EF24A1DAC141> /usr/lib/system/libcompiler_rt.dylib+ 0x7fff965c3000 - 0x7fff965c4ff7 libsystem_sandbox.dylib (278.10) <A47E7E11-3C76-318E-B67D-98972B86F094> /usr/lib/system/libsystem_sandbox.dylib+ 0x7fff9752f000 - 0x7fff97777fff com.apple.CoreData (107 - 481) <E5AFBA07-F73E-3B3F-9099-F51224EE8EAD> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData+ 0x7fff97849000 - 0x7fff97930ff7 libxml2.2.dylib (26) <A1DADD11-89E5-3DE4-8802-07186225967F> /usr/lib/libxml2.2.dylib+ 0x7fff97958000 - 0x7fff97974ff7 libsystem_kernel.dylib (2422.1.72) <D14913DB-47F1-3591-8DAF-D4B4EF5F8818> /usr/lib/system/libsystem_kernel.dylib+ 0x7fff97a67000 - 0x7fff97ae7fff com.apple.CoreSymbolication (3.0 - 141) <B018335C-698B-3F87-AF1C-6115C4FA8954> /System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication+ 0x7fff97ae8000 - 0x7fff97bedfff com.apple.ImageIO.framework (3.3.0 - 1038) <2C058216-C6D8-3380-A7EA-92A3F04520C1> /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO+ 0x7fff97ca5000 - 0x7fff97d2eff7 libsystem_c.dylib (997.1.1) <61833FAA-7281-3FF9-937F-686B6F20427C> /usr/lib/system/libsystem_c.dylib+ 0x7fff97d45000 - 0x7fff97d5eff7 com.apple.Ubiquity (1.3 - 289) <C7F1B734-CE81-334D-BE41-8B20D95A1F9B> /System/Library/PrivateFrameworks/Ubiquity.framework/Versions/A/Ubiquity+ 0x7fff97d64000 - 0x7fff97e94ff7 com.apple.desktopservices (1.8 - 1.8) <09DC9BB8-432F-3C7A-BB08-956A2DDFC2DE> /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv+ 0x7fff97f05000 - 0x7fff98075ff6 com.apple.CFNetwork (673.0.3 - 673.0.3) <42CFC3DB-35C8-3652-AF37-4BCC73D8BDEF> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork+ 0x7fff98076000 - 0x7fff980e0ff7 com.apple.framework.IOKit (2.0.1 - 907.1.13) <C1E95F5C-B79B-31BE-9F2A-1B25163C1F16> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit+ 0x7fff9877f000 - 0x7fff987e2ff7 com.apple.SystemConfiguration (1.13 - 1.13) <F05F4149-981B-380B-8F50-51CE804BBB89> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration+ 0x7fff988e8000 - 0x7fff9894cff9 com.apple.Heimdal (4.0 - 2.0) <E7D20A4D-4674-37E1-A949-635FFF7C439A> /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal+ 0x7fff9894d000 - 0x7fff98a18fff libvDSP.dylib (423.32) <3BF732BE-DDE0-38EB-8C54-E4E3C64F77A7> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib+ 0x7fff98ba3000 - 0x7fff98babfff libsystem_dnssd.dylib (522.1.11) <270DCF6C-502D-389A-AA9F-DE4624A36FF7> /usr/lib/system/libsystem_dnssd.dylib+ 0x7fff98bac000 - 0x7fff98baffff libCoreVMClient.dylib (58.1) <EBC36C69-C896-3C3D-8589-3E9023E7E56F> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib+ 0x7fff98bb0000 - 0x7fff98c72ff1 com.apple.CoreText (352.0 - 367.15) <E5C70FC8-C861-39B8-A491-595E5B55CFC8> /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText+ 0x7fff98c73000 - 0x7fff98c7fff7 com.apple.OpenDirectory (10.9 - 173.1.1) <6B78BD7B-5622-38E6-8FC6-86A117E3ACCA> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory+ 0x7fff98c80000 - 0x7fff98caffff com.apple.DebugSymbols (106 - 106) <E1BDED08-523A-36F4-B2DA-9D5C712F0AC7> /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols+ 0x7fff98cb0000 - 0x7fff98d9efff libJP2.dylib (1038) <6C8179F5-8063-3ED6-A7C2-D5603DECDF28> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib+ 0x7fff98e1f000 - 0x7fff98f03fff com.apple.coreui (2.1 - 231) <432DB40C-6B7E-39C8-9FB5-B95917930056> /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI+ 0x7fff98f6f000 - 0x7fff98f73fff libsystem_stats.dylib (93.1.26) <B9E26A9E-FBBC-3938-B8B7-6CF7CA8C99AD> /usr/lib/system/libsystem_stats.dylib+ 0x7fff98f74000 - 0x7fff98ffdfff com.apple.ColorSync (4.9.0 - 4.9.0) <B756B908-9AD1-3F5D-83F9-7A0B068387D2> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync+ 0x7fff99029000 - 0x7fff9908dff3 com.apple.datadetectorscore (5.0 - 354.0) <9ACF24B8-3268-3134-A5BC-D72C9371A195> /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore+ 0x7fff993e4000 - 0x7fff993ebff3 libcopyfile.dylib (103) <5A881779-D0D6-3029-B371-E3021C2DDA5E> /usr/lib/system/libcopyfile.dylib+ 0x7fff994a3000 - 0x7fff99512ff1 com.apple.ApplicationServices.ATS (360 - 363.1) <88976B22-A9B8-3E7B-9AE6-0B8E09A968FC> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS+ 0x7fff99513000 - 0x7fff9952ffff libresolv.9.dylib (54) <11C2C826-F1C6-39C6-B4E8-6E0C41D4FA95> /usr/lib/libresolv.9.dylib+ 0x7fff99530000 - 0x7fff9953fff8 com.apple.LangAnalysis (1.7.0 - 1.7.0) <8FE131B6-1180-3892-98F5-C9C9B79072D4> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis+ 0x7fff99656000 - 0x7fff9966fff7 com.apple.Kerberos (3.0 - 1) <F108AFEB-198A-3BAF-BCA5-9DFCE55EFF92> /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos+ 0x7fff99673000 - 0x7fff99674ffb libremovefile.dylib (33) <3543F917-928E-3DB2-A2F4-7AB73B4970EF> /usr/lib/system/libremovefile.dylib+ 0x7fff99675000 - 0x7fff99676ff7 libSystem.B.dylib (1197.1.1) <BFC0DC97-46C6-3BE0-9983-54A98734897A> /usr/lib/libSystem.B.dylib+ 0x7fff99c76000 - 0x7fff99c87ff7 libsystem_asl.dylib (217.1.4) <655FB343-52CF-3E2F-B14D-BEBF5AAEF94D> /usr/lib/system/libsystem_asl.dylib+ 0x7fff99c88000 - 0x7fff99f72fff com.apple.CoreServices.CarbonCore (1077.14 - 1077.14) <B00BEB34-A9F5-381F-99FD-11E405768A9A> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore+ 0x7fff99f73000 - 0x7fff99feafff com.apple.CoreServices.OSServices (600.4 - 600.4) <36B2B009-C35E-3F21-824E-E0D00E7808C7> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices+ 0x7fff99feb000 - 0x7fff9a014ff7 libc++abi.dylib (48) <8C16158F-CBF8-3BD7-BEF4-022704B2A326> /usr/lib/libc++abi.dylib+ 0x7fff9a076000 - 0x7fff9a0aeff7 com.apple.RemoteViewServices (2.0 - 94) <3F34D630-3DDB-3411-BC28-A56A9B55EBDA> /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices+ 0x7fff9a0ca000 - 0x7fff9a0d1ff7 libsystem_pthread.dylib (53.1.4) <AB498556-B555-310E-9041-F67EC9E00E2C> /usr/lib/system/libsystem_pthread.dylib+ 0x7fff9a0d2000 - 0x7fff9a0d2fff com.apple.Accelerate (1.9 - Accelerate 1.9) <509BB27A-AE62-366D-86D8-0B06D217CF56> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate+ 0x7fff9a0d3000 - 0x7fff9a1bdfff libsqlite3.dylib (158) <00269BF9-43BE-39E0-9C85-24585B9923C8> /usr/lib/libsqlite3.dylib+ 0x7fff9a248000 - 0x7fff9a2a3ffb com.apple.AE (665.5 - 665.5) <BBA230F9-144C-3CAB-A77A-0621719244CD> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE+ 0x7fff9a517000 - 0x7fff9a565fff com.apple.opencl (2.3.57 - 2.3.57) <FC03A80D-543A-3448-83FF-D399C3A240D9> /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL+ 0x7fff9a566000 - 0x7fff9a569ff7 libdyld.dylib (239.3) <62F4D752-4089-31A8-8B73-B95A68893B3C> /usr/lib/system/libdyld.dylib+ 0x7fff9a571000 - 0x7fff9a729ff3 libicucore.A.dylib (511.27) <003B6C21-CBD1-3486-9A1D-030ADF5FA061> /usr/lib/libicucore.A.dylib+ 0x7fff9a72a000 - 0x7fff9a753fff com.apple.DictionaryServices (1.2 - 208) <A539A058-BA57-35EE-AA08-D0B0E835127D> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices+ 0x7fff9a75a000 - 0x7fff9a766ff3 com.apple.AppleFSCompression (56 - 1.0) <5652B0D0-EB08-381F-B23A-6DCF96991FB5> /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression+ 0x7fff9a8f5000 - 0x7fff9a90dff7 com.apple.GenerationalStorage (2.0 - 160.2) <79629AC7-896F-3302-8AC1-4939020F08C3> /System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/GenerationalStorage+ 0x7fff9a939000 - 0x7fff9a954ff7 libCRFSuite.dylib (34) <FFAE75FA-C54E-398B-AA97-18164CD9789D> /usr/lib/libCRFSuite.dylib+ 0x7fff9ab57000 - 0x7fff9ab59ff7 libquarantine.dylib (71) <7A1A2BCB-C03D-3A25-BFA4-3E569B2D2C38> /usr/lib/system/libquarantine.dylib+ 0x7fff9ab5a000 - 0x7fff9ab5affd com.apple.audio.units.AudioUnit (1.9 - 1.9) <6E89F3CB-CC41-3728-9F9A-FDFC151E8261> /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit+ 0x7fff9ac14000 - 0x7fff9ac59ff6 com.apple.HIServices (1.22 - 466) <21807AF8-3BC7-32BB-AB96-7C35CB59D7F6> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices+ 0x7fff9ac5a000 - 0x7fff9ac5afff com.apple.ApplicationServices (48 - 48) <3E3F01A8-314D-378F-835E-9CC4F8820031> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices+ 0x7fff9adc0000 - 0x7fff9ade5ff7 com.apple.ChunkingLibrary (2.0 - 155.1) <B845DC7A-D1EA-31E2-967C-D1FE0C628036> /System/Library/PrivateFrameworks/ChunkingLibrary.framework/Versions/A/ChunkingLibrary+ + External Modification Summary:+ Calls made by other processes targeting this process:+ task_for_pid: 1+ thread_create: 0+ thread_set_state: 0+ Calls made by this process:+ task_for_pid: 0+ thread_create: 0+ thread_set_state: 0+ Calls made by all processes on this machine:+ task_for_pid: 210855+ thread_create: 1+ thread_set_state: 0+ + VM Region Summary:+ ReadOnly portion of Libraries: Total=206.9M resident=76.3M(37%) swapped_out_or_unallocated=130.6M(63%)+ Writable regions: Total=51.2M written=15.3M(30%) resident=16.2M(32%) swapped_out=0K(0%) unallocated=35.0M(68%)+ + REGION TYPE VIRTUAL+ =========== =======+ Dispatch continuations 4096K+ Kernel Alloc Once 4K+ MALLOC 18.3M+ MALLOC (admin) 32K+ STACK GUARD 56.0M+ Stack 12.6M+ VM_ALLOCATE 12.3M+ VM_ALLOCATE (reserved) 12K reserved VM address space (unallocated)+ __DATA 22.9M+ __IMAGE 528K+ __LINKEDIT 71.2M+ __TEXT 135.6M+ __UNICODE 544K+ shared memory 4K+ =========== =======+ TOTAL 334.2M+ TOTAL, minus reserved VM space 334.2M++# End of transcript or log.+"""]]
doc/bugs/USB_drive_not_syncing.mdwn view
@@ -105,8 +105,8 @@ add conf/The Essence of Compiling with Continuations.pdf (checksum...) ok add conf/The Essence of Compiling with Continuations.pdf (checksum...) [2014-01-05 21:28:09 CST] Committer: Committing changes to git [2014-01-05 21:28:49 CST] Committer: Committing changes to git-gpg: new configuration file `/home/tyc20/.gnupg/gpg.conf' created-gpg: WARNING: options in `/home/tyc20/.gnupg/gpg.conf' are not yet active during this run+gpg: new configuration file \`/home/tyc20/.gnupg/gpg.conf\' created+gpg: WARNING: options in \`/home/tyc20/.gnupg/gpg.conf\' are not yet active during this run ok (Recording state in git...) (Recording state in git...)
+ doc/bugs/Weird_directories_appearing.mdwn view
@@ -0,0 +1,82 @@+Hello!++Can someone explain this behavior to me? System is ArchLinux with the newest prebuilt tarballs as of Jan 12th.++ ~ % mkdir GA1+ ~ % cd GA1+ ~/GA1 % git init + Initialized empty Git repository in /home/florian/GA1/.git/+ ~/GA1 (git)-[master] % git annex init+ init ok+ (Recording state in git...)+ ~/GA1 (git)-[master] % echo "GA1" > testfile+ ~/GA1 (git)-[master] % git annex add .+ add testfile ok+ (Recording state in git...)+ ~/GA1 (git)-[master] % git annex sync+ commit ok+ ~/GA1 (git)-[master] % cd ..++ ~ % git clone GA1 GA2+ Cloning into 'GA2'...+ done.+ ~ % cd GA2+ ~/GA2 (git)-[master] % git annex init+ init ok+ (Recording state in git...)+ ~/GA2 (git)-[master] % git annex get .+ get testfile (merging origin/git-annex into git-annex...)+ (Recording state in git...)+ (from origin...) ok+ (Recording state in git...)+ ~/GA2 (git)-[master] % git annex unlock testfile + unlock testfile (copying...) ok+ ~/GA2 (git)-[master] % echo "GA2" > testfile + commit ok+ pull origin + ok+ push origin + Counting objects: 27, done.+ Delta compression using up to 4 threads.+ Compressing objects: 100% (16/16), done.+ Writing objects: 100% (20/20), 1.88 KiB | 0 bytes/s, done.+ Total 20 (delta 2), reused 0 (delta 0)+ To /home/florian/GA1+ f0654aa..8d0bdf9 master -> synced/master+ * [new branch] git-annex -> synced/git-annex+ ok+ ~/GA2 (git)-[master] % cd ../GA1++ ~/GA1 (git)-[master] % git annex sync+ (merging synced/git-annex into git-annex...)+ commit ok+ merge synced/master + Updating f0654aa..8d0bdf9+ Fast-forward+ e6a/e57/SHA256E-s4--241dca52164d30bee7a0be8c097f02e382acff765a9d4136718a37abd437a57c.log | 1 ++ testfile | 2 +-+ 2 files changed, 2 insertions(+), 1 deletion(-)+ create mode 100644 e6a/e57/SHA256E-s4--241dca52164d30bee7a0be8c097f02e382acff765a9d4136718a37abd437a57c.log+ ok++ ~/GA1 (git)-[master] % ll+ total 4+ drwxr-x--- 1 florian florian 6 Jan 12 13:59 e6a/+ lrwxrwxrwx 1 florian florian 178 Jan 12 13:59 testfile -> .git/annex/objects/V6/ZM/SHA256E-s4--241dca52164d30bee7a0be8c097f02e382acff765a9d4136718a37abd437a57c/SHA256E-s4--241dca52164d30bee7a0be8c097f02e382acff765a9d4136718a37abd437a57c++ ~/GA1 (git)-[master] % cat e6a/e57/SHA256E-s4--241dca52164d30bee7a0be8c097f02e382acff765a9d4136718a37abd437a57c.log+ 1389531554.951523s 1 dedf9799-0131-4773-8939-8f76294fa8e9++Where does the e6a directory comes from? I don't suspect a bug there, but in my conception of git-annex.++Thanks!+Florian++> [[fixed|done]]+> +> I know someone reported this a looong time ago (years), and I cannot find+> that bug report. Probably I closed it because I was unable to find a way+> to reproduce it.+> +> The spurious log files can be safely removed from your working tree.+> --[[Joey]]
+ doc/bugs/broken_git_annex_map_on_direct_mode.mdwn view
@@ -0,0 +1,58 @@+### Please describe the problem.++`git annex map` shows broken graph when direct mode is used++### What steps will reproduce the problem?++See transcript++### What version of git-annex are you using? On what operating system?++[[!format sh """+$ git annex version+git-annex version: 5.20140107+build flags: Assistant Webapp Pairing Testsuite S3 WebDAV Inotify DBus XMPP DNS Feeds Quvi TDFA CryptoHash+key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SKEIN256E SKEIN512E SHA256 SHA1 SHA512 SHA224 SHA384 SKEIN256 SKEIN512 WORM URL+remote types: git gcrypt S3 bup directory rsync web webdav glacier hook external++$ LANG=C apt-cache policy git-annex+git-annex:+ Installed: 5.20140107+ Candidate: 5.20140107+ Version table:+ *** 5.20140107 0+ 50 http://http.debian.net/debian/ sid/main amd64 Packages+ 100 /var/lib/dpkg/status+"""]]+++### 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 init a+cd a+git annex init++cd ..+git clone a b+cd b+git annex init+++# OK+git annex map++cd ../a+git annex direct+cd ../b++# NOT OK+git annex map++# End of transcript or log.+"""]]++> [[fixed|done]]; thanks for a good test case. --[[Joey]]
+ doc/bugs/index_file_smaller_than_expected.mdwn view
@@ -0,0 +1,53 @@+### Please describe the problem.++I get an error in one of my repositories. ++### What steps will reproduce the problem?++I paired my macbook repository with an repository on my desktop. The repository on the desktop contains many smaller files, because it is my documents folder.++Pairing this repository with smaller files never worked for me. I posted to the forum about it:+[[forum/ssh__95__exchange__95__identification:_read:_Connection_reset_by_peer/]]++I am a little confused because I paired three other repositories between these computers sucessfully. They contain pictures, videos and music.++### What version of git-annex are you using? On what operating system?++Version: 5.20140106-gcb3351b+Build flags: Assistant Webapp Pairing Testsuite S3 WebDAV FsEvents XMPP DNS Feeds Quvi TDFA CryptoHash ++Mac OS X Mavericks++### 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++Please make sure you have the correct access rights+and the repository exists.+fatal: index file smaller than expected+TransferScanner crashed: user error (git ["--git-dir=/Users/juh/Share/.git","--work-tree=/Users/juh/Share","-c","core.bare=false","update-index","-z","--index-info"] exited 128)+[2014-01-10 16:26:00 CET] TransferScanner: warning TransferScanner crashed: user error (git ["--git-dir=/Users/juh/Share/.git","--work-tree=/Users/juh/Share","-c","core.bare=false","update-index","-z","--index-info"] exited 128)+ssh_exchange_identification: read: Connection reset by peer+ssh_exchange_identification: read: Connection reset by peer+fatal: Could not read from remote repository.++Please make sure you have the correct access rights+and the repository exists.+[2014-01-10 16:56:09 CET] NetWatcherFallback: Syncing with sokrates.local_Dokumente +ssh_exchange_identification: read: Connection reset by peer+fatal: Could not read from remote repository.++Please make sure you have the correct access rights+and the repository exists.+fatal: index file smaller than expected+NetWatcherFallback crashed: user error (git ["--git-dir=/Users/juh/Share/.git","--work-tree=/Users/juh/Share","-c","core.bare=false","update-index","-z","--index-info"] exited 128)+[2014-01-10 17:01:09 CET] NetWatcherFallback: warning NetWatcherFallback crashed: user error (git ["--git-dir=/Users/juh/Share/.git","--work-tree=/Users/juh/Share","-c","core.bare=false","update-index","-z","--index-info"] exited 128)+++# End of transcript or log.+"""]]++> Made assistant detect corrupted .git/annex/index on startup and correct+> it. [[fixed|done]] --[[Joey]]
+ doc/bugs/wget_and_android_4.4.mdwn view
@@ -0,0 +1,27 @@+### Please describe the problem.+audio file won't download when it's sole source is the internet++### What steps will reproduce the problem?+on my laptop git annex addurl --fast http://path/to/file.mp3 in folder phone/+sync to homeserver+sync to phone+phone is set to prefer phone/* and present+after the phone receives the sync from homeserver, it looks to start the download and fails.+https://www.dropbox.com/s/ozcwub2mzo40z4y/2014-01-12%2012.36.01.png -> says wget doesn't recognize option --clobber++https://www.dropbox.com/s/x1jhb6rcp17c7t8/2014-01-12%2013.13.56.png -> git annex get . -d output++### What version of git-annex are you using? On what operating system?+android is version 5.20131230-g4aa88d8 for android 4.3+++### 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|done]] --[[Joey]]
+ doc/design/assistant/telehash.mdwn view
@@ -0,0 +1,60 @@+[Telehash](http://telehash.org/) for secure P2P communication between+git-annex (assistant) repositories.++## telehash implementation status++* node.js version seems almost complete+* C version currently lacks channel support and seems buggy (13 Jan 2014)+* No pure haskell implementation of telehash v2. There was one of+ telehash v1 (even that seems incomplete). I have pinged its author+ to see if he anticipates updating it.+* Rapid development, situation may change in a month or 2.++## implementation basics++* Add a telehash.log that maps between uuid and telehash address.+* On startup, assistant creates a new telehash keypair if not already+ present; stores this locally and generates a telehash address from it,+ stored in telehash.log.+* Use telehash for notifications of changes to the repository+* Do git push over telehash. (Pretty easy, may need rate limiting in+ situations involving relays.)+* Remove git push over XMPP (which has several problems including+ XMPP being an unreliable transport, requiring a separate XMPP account per+ repo, and XMPP not being end-to-end encrypted)++## telehash address discovery++* Easy way is any set of repos that are already connected can communicate+ them via telehash.log.+* Local pairing can be used for telehash address discovery. Could be made+ to work without ssh (with content transfer over telehash discussed+ below).+* XMPP pairing can also be used for telehash address discovery. (Note that+ MITM attacks are possible.) Is it worth keeping XMPP in git-annex just+ for this?+* Telehash addresses of repoitories can be communicated out of band (eg,+ via an OTR session or gpg signed mail), and pasted into the webapp to+ initiate a repository pairing that then proceeds entirely over telehash.+ Once both sides do this, the pairing can proceed automatically.++## content transfer over telehash++* In some circumstances, it would be ok to do annexed content transfer+ over telehash. + Need to check if there are MTU problems with large data bodies in+ telehash messages. + Probably not when a bridge is being used, due to required rate+ limiting in bridging over telehash. Cloud transfer remotes still needed for+ those situations.+* On a LAN, telehash can be used to determine the current local IP address+ of another computer on the LAN. The 2 could then determine if either uses+ ssh and if so use regular git-annex-shell for transfers. Or could do+ annexed content transfer directly over telehash.++## generic git-remote-telehash++This might turn out to be easy to split off from git-annex, so `git pull`+and `git push` can be used at the command line to access telehash remotes.+Allows using general git entirely decentralized and with end-to-end+encryption.
doc/design/assistant/xmpp_security.mdwn view
@@ -24,3 +24,6 @@ * Rely on the user's gpg key, and do gpg key verification during XMPP pairing. Problimatic because who wants to put their gpg key on their phone? Also, require the users be in the WOT and be gpg literate.++Update: This seems unlikely to be worth doing. [[Telehash]] is better.+--[[Joey]]
doc/design/external_special_remote_protocol.mdwn view
@@ -118,6 +118,11 @@ * `GETCOST` Requests the remote return a use cost. Higher costs are more expensive. (See Config/Cost.hs for some standard costs.)+* `GETAVAILABILITY`+ Requests the remote send back an `AVAILABILITY` reply.+ If the remote replies with `UNSUPPORTED-REQUEST`, its availability+ is asssumed to be global. So, only remotes that are only reachable+ locally need to worry about implementing this. More optional requests may be added, without changing the protocol version, so if an unknown request is seen, reply with `UNSUPPORTED-REQUEST`.@@ -153,6 +158,9 @@ Indicates that the key was unable to be removed from the remote. * `COST Int` Indicates the cost of the remote.+* `AVAILABILITY GLOBAL|LOCAL`+ Indicates if the remote is globally or only locally available.+ (Ie stored in the cloud vs on a local disk.) * `INITREMOTE-SUCCESS` Indicates the INITREMOTE succeeded and the remote is ready to use. * `INITREMOTE-FAILURE ErrorMsg` @@ -212,6 +220,10 @@ * `GETUUID` Queries for the UUID of the special remote being used. (git-annex replies with VALUE followed by the UUID.)+* `GETGITDIR` + Queries for the path to the git directory of the repository that+ is using the external special remote.+ (git-annex replies with VALUE followed by the path.) * `SETWANTED PreferredContentExpression` Can be used to set the preferred content of a repository. Normally this is not configured by a special remote, but it may make sense
doc/design/roadmap.mdwn view
@@ -9,10 +9,10 @@ * Month 3 user-driven features and polishing [[todo/direct_mode_guard]] [[assistant/upgrading]] * Month 4 [[Windows_webapp|assistant/Windows]], Linux arm, [[todo/support_for_writing_external_special_remotes]] * **Month 5 user-driven features and polishing**-* Month 6 [[!traillink assistant/xmpp_security]]+* Month 6 get [[assistant/Android]] and Windows out of beta * Month 7 user-driven features and polishing-* Month 8 [[!traillink assistant/gpgkeys]] [[!traillink assistant/sshpassword]]-* Month 9 get [[assistant/Android]] and Windows out of beta+* Month 8 [[!traillink assistant/telehash]]+* Month 9 [[!traillink assistant/gpgkeys]] [[!traillink assistant/sshpassword]] * Month 10 user-driven features and polishing * Month 11 [[!traillink assistant/chunks]] [[!traillink assistant/deltas]] * Month 12 user-driven features and polishing
+ doc/devblog/day_96__catching_up.mdwn view
@@ -0,0 +1,7 @@+Been on reduced activity the past several days. I did spend a full day+somewhere in there building the Tahoe LAFS special remote. Also, Tobias has+finished updating his full suite of external special remotes to use the new+interface!++Worked on closing up the fundraising campaign today (long overdue).+This included adding a new wall-o-names to [[/thanks]].
+ doc/devblog/day_97__exciting_telehash_possiblities.mdwn view
@@ -0,0 +1,20 @@+If you've been keeping an eye on the [[design/roadmap]], you'll have seen that+[[design/assistant/xmpp_security]] keeps being pushed back. This was because+it's a hard and annoying problem requiring custom crypto and with an+ugly key validation problem built into it too. I've now removed it from the+roadmap entirely, replacing it with a [[design/assistant/telehash]] design.++I'm excited by the possibilities of using telehash with git-annex. It seems+it would be quite easy to make it significantly more peer-to-peer and+flexible. The only issue is that telehash is still under heavy+development and the C implementation is not even usable yet..+(I'll probably end up writing Haskell bindings to that.)+So I've pushed it down the roadmap to at least March.++Spent the rest of the day making some minor improvements to external special+remote protocol and doing some other minor bug fixes and backlog catch up.+My backlog has exploded to nearly 50 messages remaining.++----++Today's work was sponsored by Chad Horohoe.
+ doc/devblog/day_98__old_bug.mdwn view
@@ -0,0 +1,17 @@+Fixed a bug that one or two people had mentioned years ago, but I was never+able to reproduce myself or get anyone to reproduce in a useful way. It+caused log files that were supposed to be committed to the git-annex branch+to end up in master. Turned out to involve weird stuff when the environment+contains two different settings for a single variable. So was easily fixed+at last. (I'm pretty sure the code would have never had this bug if+Data.AssocList was not buried inside an xml library, which rather+discourages using it when dealing with the environment.)++Also worked on, and hopefully fixed, another OSX cpu optimisations problem.+This one involving shared libraries that git-annex uses for XMPP.++Also made the assistant detect corrupt .git/annex/index files on startup+and remove them. It was already able to recover from corrupt .git/index+files.++Today's work was sponsored by David Wagner.
+ doc/forum/Advice_needed:_git-annex_slows_down_my_macbook.mdwn view
@@ -0,0 +1,21 @@+I need some advice from more experienced users. ++I've created four repositories on my macbook and paired them with repos on my ubuntu desktop. They are all created with the webapp so they might have some configurations that are not optimal for me.++In fact, when I start my macbook it is unusual for more than an hour because git-annex is reading and writing to and from the disk in the background. ++I don't change much in three of the four repos, only one repo contains my daily work. ++What configuration would enhance my situation?++The four repos are called:++- movies+- pictures+- music+- documents (many changes each day)++I have also problems to switch to the documents repo in the webapp.++TIA+juh
+ doc/forum/Can__39__t_get_jabber_working.mdwn view
@@ -0,0 +1,7 @@+I've been running circles around the "jabber account setup" in assistant. I tried using jabber.org (isode) and jabber.de (openfire), but whatever I do I get thrown back to an Error page++"Firefox can't establish a connection to the server at 127.0.0.1:61967." ++Assistant definetly tries to connect to the server (LittleSnitch is giving me a hint) and the connections are unblocked. Even after turning LittleSnitch off completely it won't work. On the other hand, I can connect to the servers using Jitsi without any problems. I'd be really thankful for any help.++David
doc/forum/Feature_request:_Multiple_concurrent_transfers.mdwn view
@@ -9,7 +9,7 @@ For now i've made a shell script that i call: -# for j in `seq -w 0 10`; do echo DOING $j; for i in `curl "http://127.0.0.1:$1/?auth=$2" | grep "continue" | gawk -F\" ' { print $8 } '`; do curl "http://127.0.0.1:$1$i"; sleep 0; done; done+ # for j in `seq -w 0 10`; do echo DOING $j; for i in `curl "http://127.0.0.1:$1/?auth=$2" | grep "continue" | gawk -F\" ' { print $8 } '`; do curl "http://127.0.0.1:$1$i"; sleep 0; done; done But it is very rough, and basically just starts all transfers on the page. Which means i currently have 315 active transfers running. whoops.
+ doc/forum/Limit_file_revision_history.mdwn view
@@ -0,0 +1,22 @@+Hi, I am assuming to use git-annex-assistant for two usecases, but I would like to ask about the options or planed roadmap for dropped/removed files from the repository.++Usecases:++1. sync working directory between laptop, home computer, work komputer+2. archive functionality for my photograps++Both usecases have one common factor. Some files might become obsolate and in long time frame nobody is interested to keep their revisions. Let's assume photographs. Usuall workflow I take is to import all photograps to filesystem, then assess (select) the good ones I want to keep and then process them what ever way.++Problem with git-annex(-assistant) I have is that it start to revision all of the files at the time they are added to directory. This is welcome at first but might be an issue if you are used to put 80% of the size of your imported files to trash.++I am aware of what git-annex is not. I have been reading documentation for "git-annex drop" and "unused" options including forums. I do understand that I am actually able to delete all revisions of the file if I will drop it, remove it and if I will run git annex unused 1..###. (on all synced repositories).++I actually miss the option to have above process automated/replicated to the other synced repositories.++I would formulate the 'use case' requirements for git-annex as:++* command to drop an file including revisions from all annex repositories? (for example like moving a file to /trash folder) that will schedulle it's deletition)+* option to keep like max. 10 last revisions of the file?+* option to keep only previous revisions if younger than 6 months from now?++Finally, how to specify a feature request for git-annex?
@@ -0,0 +1,19 @@++So much time gone by after the kickstarter and now I wanted to give it a kick finally.+I set up everything on my linux desktop with no problems at all.++I configured a ssh remote with shared encryption key.++Then I tried to use this to share files with a windows Desktop. This is where problems started.++1. Since there is no jabber sync I need to exchange keys manually. But although I read and googled for hours I just found that it would be there in the git repo somewhere in plain text. I didnt find a command to actually display it on the command line.+2. I need to setup the (existing) ssh remote on windows manually, because I could not make the webapp recognize the ssh-keys from pageant. Also, unfortunately, all examples refer to s3. I didnt even find out which type I had to specify. There seems to be no comprehensive list of repository types for the cmdline and their required arguments respectively at all. The man page says "type=..." for the three-line description of shared encryption setups which appeared like a mockery to me. Since the remote does not have git metadata I also can not use git clone.+3. The docs say initremote would only be used on fresh remotes, not existing ones. But enableremote only enables remotes that are already configured. So what am I to do here?++Could someone tell me please++1. How to find the shared key+2. How to add the ssh remote properly+3. Where 1 and 2 are documented++Thank you!
+ doc/forum/btsync_equivalent__63__.mdwn view
@@ -0,0 +1,8 @@+I am using bit torrent sync to sync folders and files between my server, my laptop and my smartphone.+How similar, or different, is git-annex?++Btsync allows me to sync files with no centralized server, encrypted, with some revision history (but I believe it is basic).++++/glattering
+ doc/forum/do_not_use_git-annex_inside_your_Dropbox.mdwn view
@@ -0,0 +1,5 @@+Do not place git-annex enabled git repository inside your Dropbox folder! ++You will encounter broken symlinks and git-annex complaining about lost files. Dropbox [doesn't preserve case of file names](https://www.dropbox.com/help/145/en) and this breaks storage of annexed files (.git/annex/objects/). For possible recovery see <http://git-annex.branchable.com/bugs/interference_with_Dropbox_results_in_data_loss>.++
doc/git-annex.mdwn view
@@ -1297,6 +1297,11 @@ configured by the trust and untrust commands. The value can be any of "trusted", "semitrusted" or "untrusted". +* `remote.<name>.availability`++ Can be used to tell git-annex whether a remote is LocallyAvailable+ or GloballyAvailable. Normally, git-annex determines this automatically.+ * `remote.<name>.annex-ssh-options` Options to use when using ssh to talk to this remote.@@ -1400,6 +1405,11 @@ Used to identify webdav special remotes. Normally this is automatically set up by `git annex initremote`.++* `remote.<name>.tahoe`++ Used to identify tahoe special remotes.+ Points to the configuration directory for tahoe. * `remote.<name>.annex-xmppaddress`
doc/links/other_stuff.mdwn view
@@ -5,4 +5,5 @@ * [[what git annex is not|not]] * [[related_software]] * [[public git-annex repos|publicrepos]]+* [[thanks]] * [[sitemap]]
doc/preferred_content.mdwn view
@@ -125,6 +125,9 @@ `(not (inallgroup=client and copies=client:2) and ($client)` +(Where $client is a copy of the preferred content expression used for+clients.)+ The "copies=client:2" part of the above handles the case where there is only one client repository. It makes a transfer repository speculatively prefer content in this case, even though it as of yet@@ -187,6 +190,9 @@ reached an archive repository. `present and ($client)`++(Where $client is a copy of the preferred content expression used for+clients.) ### public
doc/privacy.mdwn view
@@ -22,7 +22,7 @@ store files in the cloud without exposing their file names, or their contents. See [[design/encryption]] for details. -When using the shared enctyption method, the encryption key gets stored+When using the shared encryption method, the encryption key gets stored in git, and so anyone who has a clone of your repository can decrypt files from the encrypted special remote. @@ -41,7 +41,7 @@ Note that the git-annex assistant *does* sanitize XMPP protocol information logged when debugging is enabled. -If you prefer not to post information publically, you can send a GPG+If you prefer not to post information publicaly, you can send a GPG encrypted mail to Joey Hess <id@joeyh.name> (gpg key ID 2512E3C7). Or you can post a public bug report, and send a followup email with private details.
doc/sidebar.mdwn view
@@ -9,7 +9,4 @@ * [[forum]] * [[comments]] * [[contact]]--[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> -->+* [Flattr this](http://flattr.com/thing/84843/git-annex)
doc/special_remotes.mdwn view
@@ -14,6 +14,7 @@ * [[directory]] * [[rsync]] * [[webdav]]+* [[tahoe]] * [[web]] * [[xmpp]] * [[hook]]@@ -27,7 +28,6 @@ * [[Amazon_S3|tips/using_Amazon_S3]] * [[Amazon_Glacier|tips/using_Amazon_Glacier]] * [[tips/Internet_Archive_via_S3]]-* [[tahoe-lafs|forum/tips:_special__95__remotes__47__hook_with_tahoe-lafs]] * [[Box.com|tips/using_box.com_as_a_special_remote]] * [[Google drive|tips/googledriveannex]] * [[Google Cloud Storage|tips/using_Google_Cloud_Storage]]
+ doc/special_remotes/tahoe.mdwn view
@@ -0,0 +1,43 @@+This special remote stores file contents using+[Tahoe-LAFS](http://tahoe-lafs.org/). There are a number of commercial+providers, or you can build your own tahoe storage grid.++Since Tahoe-LAFS encrypts all data stored in it, git-annex does not do any+additional encryption of its own.++Note that data stored in a tahoe remote cannot be dropped from it, as +Tahoe-LAFS does not support removing data once it is stored in the Tahoe grid.+This, along with Tahoe's ability to recover data when some nodes fail,+makes a tahoe special remote an excellent choice for storing backups.++Typically you will have an account on a Tahoe-LAFS storage grid, which+is represented by an "introducer furl". You need to supply this to+git-annex in the `TAHOE_FURL` environment variable when initializing the+remote. git-annex will then generate a tahoe configuration directory for+the remote under `~/.tahoe/git-annex/`, and automatically start the tahoe+daemon as needed.++## configuration++These parameters can be passed to `git annex initremote` to configure+the tahoe remote.++* `embedcreds` - Optional. Set to "yes" embed the tahoe credentials + (specifically the introducer furl and shared-convergence-secret)+ inside the git repository, which allows other clones to also use them+ in order to access the tahoe grid.++ Think carefully about who can access your git repository, and+ whether you want to give them access to your tahoe system before+ using embedcreds!++Setup example:++ # TAHOE_FURL=... git annex initremote tahoe type=tahoe embedcreds=yes++## old version of tahoe special remote++An older implementation of tahoe for git-annex used+the hook special remote. It is not compatible with this newer+implementation. See+[[tahoe-lafs|forum/tips:_special__95__remotes__47__hook_with_tahoe-lafs]].
+ doc/thanks.mdwn view
@@ -0,0 +1,370 @@+The development of git-annex was made possible by the generous+donations of many people. I want to say "Thank You!" to each of+you individually, but until I meet all 1500 of you, this page will have to+do. You have my most sincere thanks. --[[Joey]]++(If I got your name wrong, or you don't want it publically posted here,+email <joey@kitenet.net>.)++## 2013-2014++Continued git-annex development was [crowd funded](https://campaign.joeyh.name/)+by these excellent people. *Hug*++Eric Hanchrow, Michael Barabanov, Douglas Butts, Cody Woodard, Anna Hess,+Maggie Hess, Francois Marier, Michael Linksvayer, Alexander Brem, Yaroslav+Halchenko, Otavio Real Salvador, Giovanni Moretti, Mark Hepburn, Jim+Cheetham, Ali Gündüz, Chia Shee Liang, Vincent Arel-Bundock, Mark R Jones,+Willard Korfhage, Faidon Liambotis, Daniel Callahan, Sheila Miguez,+Christopher Webber, Daniel Patterson, Charity Hanif, Blair Mckenzie, Romain+Lenglet, Joseph Liu, Robert Beaty, Remy van Elst, Juho Snellman, Jason+Davidson, Dane Larsen, Kuno Woudt, Navishkar Rao, Ryan Sorensen, Jonathan+Castello, Nimrod Mesika, Amitai Schlair, Zellyn Hunter, Jan Pieper, Boyd+Smith, Brett Eisenberg, Péter Károly Juhász, Allan Franta, Aaron De Vries,+Donald Plummer, Joona Lehtomäki, Evan Anderson, Pedro Côrte-Real, Bradley+Unterrheiner, Wietse van Buitenen, James Shubin, Daniel de Kok, Michael+Zehrer, Peter deHaan, David Schmitt, Ian Downes, Gioele Barabucci, Gergely+Nagy, Diego Ongaro, Jonas Wiklund, Strakhov Artem, £ukasz Szczęsny, Peter+Olson, Thomas Berker, Greg Young, narf, Michael Jakl, Andrea Rota, Tobias+Nix, Andreas Olsson, Tobias Ussing, Pere Quintana Segui, Pierre Gambarotto,+Yuriy Zaytsev, Thomas Djärv, Thomas Hochstein, Simon Lundmark, Damien+Diederen, Arthur Lutz, Gert Van Gool, Jed Brown, Sören Brunk, Thorsten+Bormer, Vincent Sanders, Thomas Lundstrøm, Robert Connolly, Marc Seeger,+Per Andreas Buer, Thomas Andersen, Hendrik Müller Hofstede, Dominik+Wagenknecht, Robert Walker, Nicholas Weigand, Maximilian Weigand, Thomas+Jost, John, Angel Ramboi, Thomas Bartels, Fernando Jimenez, Tobias+Mersmann, András Veres-Szentkirályi, Richard Hartmann, John Hedges,+Nedialko Andreev, Roderik Koenders, Sławomir Gwizdowski, Aapo Laitinen,+Jonathan Harrington, Dirk Kraft, Fabian Bartschke, Philip Frank, Patrick+Steegstra, Roberto Zedda, Leon Major, Torbjørn Thorsen, Lukas Anzinger,+Pollan Ruben, Daniel Hofer, Johannes Krampf, Jörn Gersdorf, Kristoffer Egil+Bonarjee, David Iwanowitsch, Daniel Egger, Titus Stahl, Robin Sheat, Thomas+Nicolaisen, Karsten Heymann, Askings & Medina Business Services, Pieter+Mulder, Geoffrey Huntley, Wouter Mooij, Kari Oikarinen, sven dowideit,+Ethan Aubin, Nathan Rickerby, Tobias Brunner, Stian Haukaas Eikeland, Jan+Dittberner, Jeffrey Goeke-Smith, Joseph Cullen, James Orr, Markus Plangg,+Glendon Solsberry, Georg Bauer, Andreas Leha, Ian Kozhurin, Boris Hupkens+van der Elst, Daniel Brockman, Scott Robinson, Olaf Lorenzen, Øyvind+Andersen Holm, Logan Owen, Christopher Douglass, Nicolas Pouillard, Florian+Schlegel, Hans-Christian Jehg, Thomas Mechtler, Joshua McKinney, Tom+Atkins, Paul Scott-Wilson, Rafal Czlonka, Benjamin Williams, Ulises Vitulli, Mesar+Hameed, Vishakh Vishakh, Daniel Washburn, Maximilian Haack, Jan Gondol,+Carlo Matteo Capocasa, Jevgenijs Zolotarskis, John Cooper, Matthew Gregg,+Peter Jarosak, Edward Heil, Kyle Kurtenbach, David Kaminski, Joonathan+Mägi, Piotr Ożarowski, Ernest Braganza, Adam Sjøgren, Simon Michael,+Protonet, Valentin Churavy, Trenton Cronholm, Ellis Whitehead, Maarten+Everts, Paul Tötterman, Julien Lefrique, Robert F Donnelly,+LeastAuthority.com, Floris Bruynooghe, Kevin Krouse, Bernhard Schmidt,+Jason Woofenden, Jacek Nykis, Benjamin Carrillo, Teemu Hukkanen, William+Heinbockel, Kristofer Bergstrom, Richard Gibson, Julian Andres Klode,+Jeffrey Guenthner, Jochen Kupperschmidt, Andrew Eskridge, Eric Wallmander,+Aaron Haviland, Evan Deaubl, Felix Crux, Matthew Marshall, Hamish Coleman,+xymostech, Matthew Mercer, Ben Challenor, András Csáki, Stelian Iancu,+Dmitri Popov, Anthony DiSanti, Perttu Luukko, Daniel Glassey, Aurélien+Pinceaux, Svenne Krap, Sven Hartge, Frank Blendinger, Lisa Feilen, Kyle+Kujala-Korpela, Walter Somerville, Filippo Giunchedi, Tyler Willingham,+Gernot Schulz, Daniel Gervais, Denver Gingerich, Nicolas Joseph, tommy,+bak, Grejdi G, Gabriel de Perthuis, Mayank Jain, Radu Raduta, Gregory+Grossmeier, Errol Hess, Janin Kolenc, Sean Whitton, Philippe Gauthier,+Ananda Widyadharma, Jochen Bartl, Fredrik Hammar, THM Schoemaker, Marek+Jawurek, Johan Herland, Gian-Maria Daffre, Justine Lam, Ori Livneh, Arnaud+Berthomier, Chad Horohoe, Lois DeFiore, Lieven Baes, Patrick Wheeler, James+Kim, Carlos Trijueque Albarran, Ritesh Nadhani, chesty, Andre Pereira,+Eskild Hustvedt, David Wagner, Maximiliano Curia, András Széll, Allan+Holman, Thomas Langewouters, Anonymous, Yannick Leyendecker, Peter+Daengeli, Josh Taylor, Abhishek Dasgupta, Maarten Aertsen, Mark Sheppard,+Markus Engström, Samuel Tardieu, Geog Wechslberger, Abdó Roig, Dmitry+Markushevich, Sergio Rubio, Jim Paris, Vivek Gani, Brock Spratlen, Nathan+Howell, Alan Chan, Alexandre Dupas, Daniel Atlas, Patrick Hallen, Matthew+Forrester, Binyamin Cherniavsky, Florent Fourcot, Nathan Yergler, Hannibal+Skorepa, Cedric Staub, Melissa Binde, Marc Bobillier, Zoran Zaric, Ralph+Mayer, Jay Pozo, Walter Somerville, Remy Honig, Bernhard Urban, Nurullah+Akkaya, Ari Pollak, Kalle Svensson, Stephan Schulz, Joshua Honeycutt,+Justin Keyes, Filias Heidt, Manish Sharma, Benoît Zugmeyer, Andrew Kraut,+Markus Breitenberger, Dominik Deobald, Aren Olson, Tobias Ammann, Peter+Lloyd, Pierre Chambart, Michael Alan Dorman, Kyle Meyer, Kristoffer+Gronlund, Jay Dugger, Jeff McNeill, Oskari Timperi, Mathias Linden,+Ole-Morten Duesund, Tom Lowenthal, Anders Lannerback, Tony Cantor,+Stephanie Eikenberry, Vanja Cvelbar, Fabrice Rossi, Franz Pletz, Karl+Wiberg, Sam Kleinman, Vincent Demeester, Tristan Helmich, Zero Art Radio,+Bruno Bigras, Ævar Arnfjörð Bjarmason, Stanley Yamane, Christopher Browne,+David Whittington, Fredrik Gustafsson, Peter Hogg, Tom Francart, Wouter+Verhelst, Christian Savard, wundersolutions, Andreas Fuchs, Eric Kidd,+Georg Lehner, Berin Martini, Stewart Wright, Bence Albertini, Stefan+Schmitt, Antoine Boegli, jscit, Christopher Kernahan, A Marshall, Jürgen+Peters, Aaron Whitehouse, Jouni K Seppanen, Michael Albertson, Andreas+Laas, Thomas Herok, Aurelien Gazagne, Bryan W Stitt, anonymous, Chris+Kastorff, Henning Hasemann, Leonardo Taglialegne, Frank Thomas, Frédéric+Schütz, Riad Wahby, Maxwell Swadling, Bram Senders, Péter Párkányi, Tom+Dimiduk, Christian Kellermann, Kilian Evang, Christian Studer, Tim+Humphrey, Jürgen, Richard Collins, Renaud Casenave-Péré, Patrick Lynn,+Gregor Gramlich, Hugo Mougard, Arun Srinivasan, Paul Tagliamonte, Don+Armstrong, Adam DeWitt, Timothy Hobbs, Jacob Briggs, Mark Eichin, Matthew+Raso-Barnett, Damien Raude-Morvan, Mark Lopez, Mattias Olsson, Marco A L+Barbosa, Thomas de Ruiter, Anders Claesson, Philipp Meier, Henrik Ahlgren,+Michael Hofmann, Audric SCHILTKNECHT, Wojtek Burakiewicz, Christian+Dietrich, Jacob Kirkwood, Fabian Jansen, gregor herrmann, Martin Werner,+Adam Baxter, Sören Köpping, Pierce Lopez, David Lehn, Michal Politowski,+John Lawrence, Nicholas Golder, Adam Spiers, Pär Mattsson, Matt Lee,+Timo Heister, Asbjørn Sloth Tønnesen, James Valleroy, Felix Gruber, Björn+Pettersson, Nicola Chiapolini, Christer Stenbrenden, Hannes Maier-Flaig,+Paul Walker, Cary Kempston, Andrew Cant, Albert Drengg,+Martin Pollow, Karl-Georg Sommer, Francois Cocquemas, Daniel Bross, Martin+Florian, Grigorios Prasinos, Olivier Berger, Andreas Herten, Kyle MacLea,+Sozykin Mikhail, André Klärner, Pascal VITOUX, Gunilla Johansson, Dara+Adib, Nicolas Bonifas, Glen Ogilvie, TasLUG, Shaun Westmacott, Georgi+Valkov, Nicolas Dietrich, Auroch, Rasmus Pank Roulund, Michael Niewiera,+Benjamin Koch, Joe Bogner, Christoph Varga, Florian Eitel, Tobias Braun,+Jochen Schulz, Diggory Hardy, Stephane Barland, Sebastian Bober, Arash+Rouhani-Kalleh, Geoffrey Irving, Hans Tzou, Mark Booth, Christoph Neckel,+Aleksandar Iliev, Baldur Kristinsson, Adam Colton, KAWACHI TAKASHI, Michal+Sojka, Alexander Brandstedt, Jarno Elonen, Rob Sharp, John Pybus, Antonino+Mazzurco, Damon Haley, Jason Locklin, ULRICH KORTENKAMP, Karthik+Poobalasubramanian, Alexandre Garel, David Clark, Jeff Johnson,+Mica Semrick, Paul Staab, Rémi Vanicat, Martin Holtschneider, Jan Ivar+Beddari, Peter Simons, Thomas Koch, Justin Geibel, Guillaume DELVIT, Shanti+Bouchez, Oliver Brandt, François Deppierraz, Chad Walstrom, Tim Mattison,+Jakub Antoni Tyszko, and 30 anonymous bitcoin users++With an especial thanks to the WikiMedia foundation.++## 2012-2013++<a name="kickstarter">+The git-annex assistant was [crowd funded on Kickstarter](http://www.kickstarter.com/projects/joeyh/git-annex-assistant-like-dropbox-but-with-your-own/).++### Major Backers++These people are just inspiring in their enthusiasm and generosity to this+project.++* Jason Scott+* strager++### Beta Testers++Whole weeks of my time were made possible thanks to each of these+people, and their testing is invaluable to the development of+the git-annex assistant.++* Jimmy Tang+* David Pollak+* Pater+* Francois Marier+* Paul Sherwood+* Fred Epma+* Robert Ristroph+* Josh Triplett+* David Haslem+* AJ Ashton+* Svenne Krap+* Drew Hess+* Peter van Westen++### Prioritizers++These forward-thinking people contributed generously just to help+set my priorities in which parts of the git-annex assistant were most+important to develop.++Paul C. Bryan, Paul Tötterman, Don Marti, Dean Thompson, Djoume, David Johnston+Asokan Pichai, Anders Østhus, Dominik Wagenknecht, Charlie Fox, Yazz D. Atlas,+fenchel, Erik Penninga, Richard Hartmann, Graham, Stan Yamane, Ben Skelton,+Ian McEwen, asc, Paul Tagliamonte, Sherif Abouseda, Igor Támara, Anne Wind,+Mesar Hameed, Brandur K. Holm Petersen, Takahiro Inoue, Kai Hendry,+Stephen Youndt, Lee Roberson, Ben Strawbridge, Andrew Greenberg, Alfred Adams+Andrew, Aaron De Vries, Monti Knazze, Jorge Canseco, Hamish, Mark Eichin,+Sherif Abouseda, Ben Strawbridge, chee rabbits, Pedro Côrte-Real++And special thanks to Kevin McKenzie, who also gave me a login to a Mac OSX+machine, which has proven invaluable, Jimmy Tang who has helped+with Mac OSX autobuilding and packaging, and Yury V. Zaytsev who+provides the Windows autobuilder.++### Other Backers++Most of the success of the Kickstarter is thanks to these folks. Some of+them spent significant amounts of money in the guise of getting some+swag. For others, being listed here, and being crucial to making the +git-annex assistant happen was reward enough. Large or small, these+contributions were, literally, my bread and butter this year.++Amitai Schlair, mvime, Romain Lenglet, James Petts, Jouni Uuksulainen,+Wichert Akkerman, Robert Bellus, Kasper Souren, rob, Michiel Buddingh',+Kevin, Rob Avina, Alon Levy, Vikash, Michael Alan Dorman, Harley Pig,+Andreas Olsson, Pietpiet, Christine Spang, Liz Young, Oleg Kosorukov,+Allard Hoeve, Valentin Haenel, Joost Baaij, Nathan Yergler, Nathan Howell,+Frédéric Schütz, Matti Eskelinen, Neil McGovern, Lane Lillquist, db48x,+Stuart Prescott, Mark Matienzo, KarlTheGood, leonm, Drew Slininger, +Andreas Fuchs, Conrad Parker, Johannes Engelke, Battlegarden, Justin Kelly,+Robin Wagner, Thad Ward, crenquis, Trudy Goold, Mike Cochrane, Adam Venturella,+Russell Foo, furankupan, Giorgio Occhioni, andy, mind, Mike Linksvayer,+Stefan Strahl, Jelmer Vernooij, Markus Fix, David Hicks, Justin Azoff,+Iain Nicol, Bob Ippolito, Thomas Lundstrøm, Jason Mandel, federico2,+Edd Cochran, Jose Ortega, Emmett Agnew, Rudy Garcia, Kodi, Nick Rusnov,+Michael Rubin, Tom de Grunt, Richard Murray, Peter, Suzanne Pierce, Jared+Marcotte, folk, Eamon, Jeff Richards, Leo Sutedja, dann frazier, Mikkel+kristiansen, Matt Thomas, Kilian Evang, Gergely Risko, Kristian Rumberg,+Peter Kropf, Mark Hepburn, greymont, D. Joe Anderson, Jeremy Zunker, ctebo,+Manuel Roumain, Jason Walsh, np, Shawn, Johan Tibell, Branden Tyree, Dinyar+Rabady, Andrew Mason, damond armstead, Ethan Aubin, TomTom Tommie, Jimmy+Kaplowitz, Steven Zakulec, mike smith, Jacob Kirkwood, Mark Hymers, Nathan+Collins, Asbjørn Sloth Tønnesen, Misty De Meo, James Shubin,+Jim Paris, Adam Sjøgren, miniBill, Taneli, Kumar Appaiah, Greg Grossmeier,+Sten Turpin, Otavio Salvador, Teemu Hukkanen, Brian Stengaard, bob walker,+bibeneus, andrelo, Yaroslav Halchenko, hesfalling, Tommy L, jlargentaye,+Serafeim Zanikolas, Don Armstrong, Chris Cormack, shayne.oneill, Radu+Raduta, Josh S, Robin Sheat, Henrik Mygind, kodx, Christian, Geoff+Crompton, Brian May, Olivier Berger, Filippo Gadotti, Daniel Curto-Millet,+Eskild Hustvedt, Douglas Soares de Andrade, Tom L, Michael Nacos, Michaël+P., William Roe, Joshua Honeycutt, Brian Kelly, Nathan Rasch, jorge, Martin+Galese, alex cox, Avery Brooks, David Whittington, Dan Martinez, Forrest+Sutton, Jouni K. Seppänen, Arnold Cano, Robert Beaty, Daniel, Kevin Savetz,+Randy, Ernie Braganza, Aaron Haviland, Brian Brunswick, asmw, sean, Michael+Williams, Alexander, Dougal Campbell, Robert Bacchas, Michael Lewis, Collin+Price, Wes Frazier, Matt Wall, Brandon Barclay, Derek van Vliet, Martin+DeMello, kitt hodsden, Stephen Kitt, Leif Bergman, Simon Lilburn, Michael+Prokop, Christiaan Conover, Nick Coombe, Tim Dysinger, Brandon Robinson,+Philip Newborough, keith, Mike Fullerton, Kyle, Phil Windley, Tyler Head,+George V. Reilly, Matthew, Ali Gündüz, Vasyl Diakonov, Paolo Capriotti,+allanfranta, Martin Haeberli, msingle, Vincent Sanders, Steven King, Dmitry+Gribanov, Brandon High, Ben Hughes, Mike Dank, JohnE, Diggory Hardy,+Michael Hanke, valhalla, Samuli Tuomola, Jeff Rau, Benjamin Lebsanft, John+Drago, James, Aidan Cooper, rondie, Paul Kohler, Matthew Knights, Aaron+Junod, Patrick R McDonald, Christopher Browne, Daniel Engel, John SJ+Anderson, Peter Sarossy, Mike Prasad, Christoph Ender, Jan Dittberner,+Zohar, Alexander Jelinek, stefan, Danny O'Brien, Matthew Thode, Nicole+Aptekar, maurice gaston, Chris Adams, Mike Klemencic, Reedy, Subito, Tobias+Gruetzmacher, Ole-Morten Duesund, André Koot, mp, gdop, Cole Scott, Blaker,+Matt Sottile, W. Craig Trader, Louis-Philippe Dubrule, Brian Boucheron,+Duncan Smith, Brenton Buchbach, Kyle Stevenson, Eliot Lash, Egon Elbre,+Praveen, williamji, Thomas Schreiber, Neil Ford, Ryan Pratt, Joshua Brand,+Peter Cox, Markus Engstrom, John Sutherland, Dean Bailey, Ed Summers,+Hillel Arnold, David Fiander, Kurt Yoder, Trevor Muñoz, keri, Ivan+Sergeyenko, Shad Bolling, Tal Kelrich, Steve Presley, gerald ocker, Essex+Taylor, Josh Thomson, Trevor Bramble, Lance Higgins, Frank Motta, Dirk+Kraft, soundray, Joe Haskins, nmjk, Apurva Desai, Colin Dean, docwhat,+Joseph Costello, Jst, flamsmark, Alex Lang, Bill Traynor, Anthony David,+Marc-André Lureau, AlNapp, Giovanni Moretti, John Lawrence, João Paulo+Pizani Flor, Jim Ray, Gregory Thrush, Alistair McGann, Andrew Wied,+Koutarou Furukawa, Xiscu Ignacio, Aaron Sachs, Matt, Quirijn, Chet+Williams, Chris Gray, Bruce Segal, Tom Conder, Louis Tovar, Alex Duryee,+booltox, d8uv, Decklin Foster, Rafael Cervantes, Micah R Ledbetter, Kevin+Sjöberg, Johan Strombom, Zachary Cohen, Jason Lewis, Yves Bilgeri, Ville+Aine, Mark Hurley, Marco Bonetti, Maximilian Haack, Hynek Schlawack,+Michael Leinartas, Andreas Liebschner, Duotrig, Nat Fairbanks, David+Deutsch, Colin Hayhurst, calca, Kyle Goodrick, Marc Bobillier, Robert+Snook, James Kim, Olivier Serres, Jon Redfern, Itai Tavor, Michael+Fladischer, Rob, Jan Schmid, Thomas H., Anders Söderbäck, Abhishek+Dasgupta, Jeff Goeke-Smith, Tommy Thorn, bonuswavepilot, Philipp Edelmann,+Nick, Alejandro Navarro Fulleda, Yann Lallemant, andrew brennan, +Dave Allen Barker Jr, Fabian, Lukas Anzinger, Carl Witty, Andy Taylor,+Andre Klärner, Andrew Chilton, Adam Gibbins, Alexander Wauck, Shane O'Dea,+Paul Waite, Iain McLaren, Maggie Ellen Robin Hess, Willard Korfhage,+Nicolas, Eric Nikolaisen, Magnus Enger, Philipp Kern, Andrew Alderwick,+Raphael Wimmer, Benjamin Schötz, Ana Guerrero, Pete, Pieter van der Eems,+Aaron Suggs, Fred Benenson, Cedric Howe, Lance Ivy, Tieg Zaharia, Kevin+Cooney, Jon Williams, Anton Kudris, Roman Komarov, Brad Hilton, Rick Dakan,+Adam Whitcomb, Paul Casagrande, Evgueni Baldin, Robert Sanders, Kagan+Kayal, Dean Gardiner, micah altman, Cameron Banga, Ross Mcnairn, Oscar+Vilaplana, Robin Graham, Dan Gervais, Jon Åslund, Ragan Webber, Noble Hays,+stephen brown, Sean True, Maciek Swiech, faser, eikenberry, Kai Laborenz,+Sergey Fedoseev, Chris Fournier, Svend Sorensen, Greg K, wojtek, Johan+Ribenfors, Anton, Benjamin, Oleg Tsarev, PsychoHazard, John Cochrane,+Kasper Lauritzen, Patrick Naish, Rob, Keith Nasman, zenmaster, David Royer,+Max Woolf, Dan Gabber, martin rhoads, Martin Schmidinger, Paul+Scott-Wilson, Tom Gromak, Andy Webster, Dale Webb, Jim Watson, Stephen+Hansen, Mircea, Dan Goodenberger, Matthias Fink, Andy Gott, Daniel, Jai+Nelson, Shrayas Rajagopal, Vladimir Rutsky, Alexander, Thorben Westerhuys,+hiruki, Tao Neuendorffer Flaherty, Elline, Marco Hegenberg, robert, Balda,+Brennen Bearnes, Richard Parkins, David Gwilliam, Mark Johnson, Jeff Eaton,+Reddawn90, Heather Pusey, Chris Heinz, Colin, Phatsaphong Thadabusapa,+valunthar, Michael Martinez, redlukas, Yury V. Zaytsev, Blake, Tobias+"betabrain" A., Leon, sopyer, Steve Burnett, bessarabov, sarble, krsch.com,+Jack Self, Jeff Welch, Sam Pettiford, Jimmy Stridh, Diego Barberá, David+Steele, Oscar Ciudad, John Braman, Jacob, Nick Jenkins, Ben Sullivan, Brian+Cleary, James Brosnahan, Darryn Ten, Alex Brem, Jonathan Hitchcock, Jan+Schmidle, Wolfrzx99, Steve Pomeroy, Matthew Sitton, Finkregh, Derek Reeve,+GDR!, Cory Chapman, Marc Olivier Chouinard, Andreas Ryland, Justin, Andreas+Persenius, Games That Teach, Walter Somerville, Bill Haecker, Brandon+Phenix, Justin Shultz, Colin Scroggins, Tim Goddard, Ben Margolin, Michael+Martinez, David Hobbs, Andre Le, Jason Roberts, Bob Lopez, Gert Van Gool,+Robert Carnel, Anders Lundqvist, Aniruddha Sathaye, Marco Gillies, Basti+von Bejga, Esko Arajärvi, Dominik Deobald, Pavel Yudaev, Fionn Behrens,+Davide Favargiotti, Perttu Luukko, Silvan Jegen, Marcelo Bittencourt,+Leonard Peris, smercer, Alexandre Dupas, Solomon Matthews, Peter Hogg,+Richard E. Varian, Ian Oswald, James W. Sarvey, Ed Grether, Frederic+Savard, Sebastian Nerz, Hans-Chr. Jehg, Matija Nalis, Josh DiMauro, Jason+Harris, Adam Byrtek, Tellef, Magnus, Bart Schuurmans, Giel van Schijndel,+Ryan, kiodos, Richard 'maddog' Collins, PawZubr, Jason Gassel, Alex+Boisvert, Richard Thompson, maddi bolton, csights, Aaron Bryson, Jason Chu,+Maxime Côté, Kineteka Systems, Joe Cabezas, Mike Czepiel, Rami Nasra,+Christian Simonsen, Wouter Beugelsdijk, Adam Gibson, Gal Buki, James+Marble, Alan Chambers, Bernd Wiehle, Simon Korzun, Daniel Glassey, Eero af+Heurlin, Mikael, Timo Engelhardt, Wesley Faulkner, Jay Wo, Mike Belle,+David Fowlkes Jr., Karl-Heinz Strass, Ed Mullins, Sam Flint,+Hendrica, Mark Emer Anderson, Joshua Cole, Jan Gondol, Henrik Lindhe,+Albert Delgado, Patrick, Alexa Avellar, Chris, sebsn1349, Maxim Kachur,+Andrew Marshall, Navjot Narula, Alwin Mathew, Christian Mangelsdorf, Avi+Shevin, Kevin S., Guillermo Sanchez Estrada, Alex Krieger, Luca Meier, Will+Jessop, Nick Ruest, Lani Aung, Ulf Benjaminsson, Rudi Engelbrecht, Miles+Matton, Cpt_Threepwood, Adam Kuyper, reacocard, David Kilsheimer, Peter+Olson, Bill Fischofer, Prashant Shah, Simon Bonnick, Alexander Grudtsov,+Antoine Boegli, Richard Warren, Sebastian Rust, AlmostHuman, Timmy+Crawford, PC, Marek Belski, pontus, Douglas S Butts, Eric Wallmander, Joe+Pelar, VIjay, Trahloc, Vernon Vantucci, Matthew baya, Viktor Štujber,+Stephen Akiki, Daniil Zamoldinov, Atley, Chris Thomson, Jacob Briggs, Falko+Richter, Andy Schmitz, Sergi Sagas, Peder Refsnes, Jonatan, Ben, Bill+Niblock, Agustin Acuna, Jeff Curl, Tim Humphrey, bib, James Zarbock,+Lachlan Devantier, Michal Berg, Jeff Lucas, Sid Irish, Franklyn, Jared+Dickson, Olli Jarva, Adam Gibson, Lukas Loesche, Jukka Määttä, Alexander+Lin, Dao Tran, Kirk, briankb, Ryan Villasenor, Daniel Wong, barista, Tomas+Jungwirth, Jesper Hansen, Nivin Singh, Alessandro Tieghi, Billy Roessler,+Peter Fetterer, Pallav Laskar, jcherney, Tyler Wang, Steve, Gigahost, Beat+Wolf, Hannibal Skorepa, aktiveradio, Mark Nunnikhoven, Bret Comnes, Alan+Ruttenberg, Anthony DiSanti, Adam Warkiewicz, Brian Bowman, Jonathan, Mark+Filley, Tobias Mohr, Christian St. Cyr, j. faceless user, Karl Miller,+Thomas Taimre, Vikram, Jason Mountcastle, Jason, Paul Elliott, Alexander,+Stephen Farmer, rayslava, Peter Leurs, Sky Kruse, JP Reeves, John J Schatz,+Martin Sandmair, Will Thompson, John Hergenroeder, Thomas, Christophe+Ponsart, Wolfdog, Eagertolearn, LukasM, Federico Hernandez, Vincent Bernat,+Christian Schmidt, Cameron Colby Thomson, Josh Duff, James Brown, Theron+Trowbridge, Falke, Don Meares, tauu, Greg Cornford, Max Fenton, Kenneth+Reitz, Bruce Bensetler, Mark Booth, Herb Mann, Sindre Sorhus, Chris+Knadler, Daniel Digerås, Derek, Sin Valentine, Ben Gamari, david+lampenscherf, fardles, Richard Burdeniuk, Tobias Kienzler, Dawid Humbla,+Bruno Barbaroxa, D Malt, krivar, James Valleroy, Peter, Tim Geddings,+Matthias Holzinger, Hanen, Petr Vacek, Raymond, Griff Maloney, Andreas+Helveg Rudolph, Nelson Blaha, Colonel Fubar, Skyjacker Captain Gavin+Phoenix, shaun, Michael, Kari Salminen, Rodrigo Miranda, Alan Chan, Justin+Eugene Evans, Isaac, Ben Staffin, Matthew Loar, Magos, Roderik, Eugenio+Piasini, Nico B, Scott Walter, Lior Amsalem, Thongrop Rodsavas, Alberto de+Paola, Shawn Poulen, John Swiderski, lluks, Waelen, Mark Slosarek, Jim+Cristol, mikesol, Bilal Quadri, LuP, Allan Nicolson, Kevin Washington,+Isaac Wedin, Paul Anguiano, ldacruz, Jason Manheim, Sawyer, Jason+Woofenden, Joe Danziger, Declan Morahan, KaptainUfolog, Vladron, bart, Jeff+McNeill, Christian Schlotter, Ben McQuillan, Anthony, Julian, Martin O,+altruism, Eric Solheim, MarkS, ndrwc, Matthew, David Lehn, Matthew+Cisneros, Mike Skoglund, Kristy Carey, fmotta, Tom Lowenthal, Branden+Tyree, Aaron Whitehouse++### Also thanks to++* The Kickstarter team, who have unleashed much good on the world.+* The Haskell developers, who toiled for 20 years in obscurity+ before most of us noticed them, and on whose giant shoulders I now stand,+ in awe of the view.+* The Git developers, for obvious reasons.+* All of git-annex's early adopters, who turned it from a personal+ toy project into something much more, and showed me the interest was there.+* Rsync.net, for providing me a free account so I can make sure git-annex+ works well with it.+* LeastAuthority.com, for providing me a free Tahoe-LAFS grid account,+ so I can test git-annex with that, and back up the git-annex assistant+ screencasts.+* Anna and Mark, for the loan of the video camera; as well as the rest of+ my family, for your support. Even when I couldn't explain what I was+ working on.+* The Hodges, for providing such a congenial place for me to live and work+ on these first world problems, while you're off helping people in the+ third world.
doc/tips/dropboxannex.mdwn view
@@ -1,4 +1,4 @@-dropboxannex+dropboxannex 0.2.0 ========= Hook program for gitannex to use dropbox as backend@@ -6,6 +6,7 @@ # Requirements: python2+ python-pkg-resources Credit for the Dropbox api interface goes to Dropbox. @@ -17,12 +18,12 @@ This should make a ~/dropboxannex folder # Setup-Run the program once to set it up.+Make the file executable, and link it into PATH - cd ~/dropboxannex; python2 dropboxannex.py+ cd ~/dropboxannex; chmod +x git-annex-remote-dropbox; sudo ln -sf `pwd`/git-annex-remote-dropbox /usr/local/bin/git-annex-remote-dropbox # Commands for gitannex: - git config annex.dropbox-hook '/usr/bin/python2 ~/dropboxannex/dropboxannex.py'- git annex initremote dropbox type=hook hooktype=dropbox encryption=shared+ git annex initremote dropbox type=external externaltype=dropbox encryption=shared folder=gitannex git annex describe dropbox "the dropbox library"+
doc/tips/emacs_integration.mdwn view
@@ -17,4 +17,9 @@ He has also added support to org-attach; if `org-attach-git-annex-cutoff' is non-nil and smaller than the size of the file you're attaching then org-attach will `git annex add the-file`; otherwise it will "git add" it. +file`; otherwise it will "git add" it.++----++[magit-annex](https://github.com/kyleam/magit-annex) adds magit support+for a few features, including adding files and syncing.
doc/tips/flickrannex.mdwn view
@@ -1,18 +1,17 @@-# Latest version 0.1.10-Hook program for gitannex to use flickr as backend.+flickrannex+========= -This allows storing any type of file on flickr, not only images and movies.+Hook program for gitannex to use flickr as backend # Requirements: python2 -Credit for the flickr api interface goes to: <http://stuvel.eu/flickrapi> -Credit for the png library goes to: <https://github.com/drj11/pypng> -Credit for the png tEXt patch goes to: <https://code.google.com/p/pypng/issues/detail?id=65>+Credit for the flickr api interface goes to: http://stuvel.eu/flickrapi+Credit for the png library goes to: https://github.com/drj11/pypng+Credit for the png tEXt patch goes to: https://code.google.com/p/pypng/issues/detail?id=65 # Install- Clone the git repository in your home folder. git clone git://github.com/TobiasTheViking/flickrannex.git @@ -20,39 +19,28 @@ This should make a ~/flickrannex folder # Setup+Make the file executable, and link it into PATH -Run the program once to set it up. + cd ~/flickrannex; chmod +x git-annex-remote-flickr; sudo ln -sf `pwd`/git-annex-remote-flickr /usr/local/bin/git-annex-remote-flickr - cd ~/flickrannex; python2 flickrannex.py+# Commands for gitannex: -After the setup has finished, it will print the git-annex configure lines.+ USERNAME="username@provider.com" git annex initremote flickr type=external externaltype=flickr encryption=shared folder=gitannex -# Configuring git-annex+An oauth authentication link should now be launched in the default browser. The hook will wait for 30s for you to login and authenticate. - git config annex.flickr-hook '/usr/bin/python2 ~/flickrannex/flickrannex.py'- git annex initremote flickr type=hook hooktype=flickr encryption=shared- git annex describe flickr "the flickr library"+ git annex describe dropbox "the flickr library" # Notes ## Unencrypted mode The photo name on flickr is currently the GPGHMACSHA1 version. -Run the following command in your annex directory- git annex wanted flickr uuid include=*.jpg or include=*.jpeg or include=*.gif or include=*.png- ## Encrypted mode The current version base64 encodes all the data, which results in ~35% larger filesize. -I might look into yyenc instead. I'm not sure if it will work in the tEXt field.--Run the following command in your annex directory- git annex wanted flickr exclude=largerthan=30mb- ## Including directories as tags-Get get each of the directories below the top level git directory added as tags to uploads:-- git config annex.flickr-hook 'GIT_TOP_LEVEL=`git rev-parse --show-toplevel` /usr/bin/python2 %s/flickrannex.py'+This feature is currently disabled, if it gets implemented again it will most likely not require user action to enable it. In this case the image: /home/me/annex-photos/holidays/2013/Greenland/img001.jpg
doc/tips/googledriveannex.mdwn view
@@ -1,4 +1,4 @@-googledriveannex+googledriveannex 0.2.0 ========= Hook program for gitannex to use Google Drive as backend@@ -6,23 +6,27 @@ # Requirements: python2+ python-httplib2 Credit for the googledrive api interface goes to google -## Install+# Install Clone the git repository in your home folder. git clone git://github.com/TobiasTheViking/googledriveannex.git This should make a ~/googledriveannex folder -## Setup-Run the program once to make an empty config file+# Setup+Make the file executable, and link it into PATH - cd ~/googledriveannex; python2 googledriveannex.py+ cd ~/googledriveannex; chmod +x git-annex-remote-googledrive; sudo ln -sf `pwd`/git-annex-remote-googledrive /usr/local/bin/git-annex-remote-googledrive -## Commands for gitannex:+# Commands for gitannex: - git config annex.googledrive-hook '/usr/bin/python2 ~/googledriveannex/googledriveannex.py'- git annex initremote googledrive type=hook hooktype=googledrive encryption=shared+ git annex initremote googledrive type=external externaltype=googledrive encryption=shared folder=gitannex++An oauth authentication link should now be launched in the default browser. Authenticate and you will be proved with a code.++ OAUTH='authentication code' git annex initremote googledrive type=external externaltype=googledrive encryption=shared folder=gitannex git annex describe googledrive "the googledrive library"
doc/tips/imapannex.mdwn view
@@ -1,4 +1,4 @@-imapannex+imapannex 0.2.0 ========= Hook program for gitannex to use imap as backend@@ -15,13 +15,11 @@ This should make a ~/imapannex folder # Setup-Run the program once to set it up.+Make the file executable, and link it into PATH - cd ~/imapannex; python2 imapannex.py+ cd ~/imapannex; chmod +x git-annex-remote-imap; sudo ln -sf `pwd`/git-annex-remote-imap /usr/local/bin/git-annex-remote-imap # Commands for gitannex: - git config annex.imap-hook '/usr/bin/python2 ~/imapannex/imapannex.py'- git annex initremote imap type=hook hooktype=imap encryption=shared+ USERNAME="username@provider.com" PASSWORD="password" git annex initremote imap type=external externaltype=imap encryption=shared folder=gitannex method="Normal password" ssl="SSL/TLS" host="imap.host.com" port="993" git annex describe imap "the imap library"- git annex wanted imap exclude=largerthan=30mb
doc/tips/megaannex.mdwn view
@@ -1,41 +1,29 @@-[Megaannex](https://github.com/TobiasTheViking/megaannex)-is a hook program for git-annex to use mega.co.nz as backend+megaannex 0.2.0+========= +Hook program for gitannex to use mega.co.nz as backend+ # Requirements: python2 requests>=0.10 pycrypto -Credit for the mega api interface goes to:-<https://github.com/richardasaurus/mega.py>--## Install+Credit for the mega api interface goes to: https://github.com/richardasaurus/mega.py +# Install Clone the git repository in your home folder. git clone git://github.com/TobiasTheViking/megaannex.git -This should make a ~/megannex folder--## Setup--Run the program once to make an empty config file.-- cd ~/megaannex; python2 megaannex.py--Edit the megaannex.conf file. Add your mega.co.nz username, password, and folder name.--## Configuring git-annex-- git config annex.mega-hook '/usr/bin/python2 ~/megaannex/megaannex.py'+This should make a ~/megaannex folder - git annex initremote mega type=hook hooktype=mega encryption=shared- git annex describe mega "the mega.co.nz library"+# Setup+Make the file executable, and link it into PATH -## Notes+ cd ~/megaannex; chmod +x git-annex-remote-mega; sudo ln -sf `pwd`/git-annex-remote-mega /usr/local/bin/git-annex-remote-mega -You may need to use a different command than "python2", depending-on your python installation.+# Commands for gitannex: --- Tobias+ USERNAME="user" PASSWORD="pword" git annex initremote mega type=external externaltype=mega encryption=shared folder=gitannex+ git annex describe mega "the mega.co.nz library"
doc/tips/owncloudannex.mdwn view
@@ -1,4 +1,4 @@-owncloudannex+owncloudannex 0.2.0 ========= Hook program for gitannex to use owncloud as backend@@ -6,8 +6,9 @@ # Requirements: python2+ python-requests -Credit for the Owncloud api interface goes to me.+Credit for the webdav api interface goes to https://launchpad.net/python-webdav-lib # Install Clone the git repository in your home folder.@@ -17,12 +18,11 @@ This should make a ~/owncloudannex folder # Setup-Run the program once to set it up.+Make the file executable, and link it into PATH - cd ~/owncloudannex; python2 owncloudannex.py+ cd ~/owncloudannex; chmod +x git-annex-remote-owncloud; sudo ln -sf `pwd`/git-annex-remote-owncloud /usr/local/bin/git-annex-remote-owncloud # Commands for gitannex: - git config annex.owncloud-hook '/usr/bin/python2 ~/owncloudannex/owncloudannex.py'- git annex initremote owncloud type=hook hooktype=owncloud encryption=shared- git annex describe owncloud "the owncloud library"+ USERNAME="login" PASSWORD="password" git annex initremote owncloud type=external externaltype=owncloud encryption=shared folder=gitannex url="https://host/remote.php/webdav/"+ git annex describe dropbox "the owncloud library"
doc/tips/skydriveannex.mdwn view
@@ -1,4 +1,4 @@-skydriveannex+skydriveannex 0.2.1 ========= Hook program for gitannex to use [skydrive](http://en.wikipedia.org/wiki/SkyDrive) (previously *Windows Live SkyDrive* and *Windows Live Folders*) as backend@@ -18,12 +18,15 @@ This should make a ~/skydriveannex folder # Setup-Run the program once to set it up.+Make the file executable, and link it into PATH - cd ~/skydriveannex; python2 skydriveannex.py+ cd ~/skydriveannex; chmod +x git-annex-remote-skydrive; sudo ln -sf `pwd`/git-annex-remote-skydrive /usr/local/bin/git-annex-remote-skydrive # Commands for gitannex: - git config annex.skydrive-hook '/usr/bin/python2 ~/skydriveannex/skydriveannex.py'- git annex initremote skydrive type=hook hooktype=skydrive encryption=shared+ git annex initremote skydrive type=external externaltype=skydrive encryption=shared folder=gitannex+ +An oauth authentication link should now be launched in the default browser. Authenticate, and use the last url as OAUTH key.++ OAUTH='URL after last redirect' git annex initremote skydrive type=external externaltype=skydrive encryption=shared folder=gitannex git annex describe skydrive "the skydrive library"
doc/todo/makefile:_respect___36__PREFIX.mdwn view
@@ -22,4 +22,4 @@ > [[done]] --[[Joey]] -> > [[thanks]]! ;) --[[anarcat]]+> > thanks! ;) --[[anarcat]]
doc/todo/tahoe_lfs_for_reals.mdwn view
@@ -10,12 +10,12 @@ but a tahoe-lafs special remote would be more flexible. To support a special remote, a mapping is needed from git-annex keys to-Tahoe keys.--The best place to store this mapping is perhaps as a new field in the-location log:-- date present repo-uuid newfields+Tahoe keys, stored in the git-annex branch. -This way, each remote can store its own key-specfic data in the same place-as other key-specific data, with minimal overhead.+> This is now done, however, there are 2 known+> problems: +> +> * tahoe start run unncessarily <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2149>+> * web.port can conflict <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2147>+> +> --[[Joey]]
+ doc/todo/wishlist:_more_info_in_commit_messages_in_general.mdwn view
@@ -0,0 +1,8 @@+This is probably an extension of [[wishlist: more info in the standard commit message of `sync`]]:++It would also help debugging if the default commit messages listed, e.g., the name of all the files modified by that commit (or merge).++> No, it would not help debugging to put redundant info in commit+> messages. It will only make your repository take up more disk space.+> git log --stat will already show you the files changes by+> any commit. [[wontfix|done]] --[[Joey]]
git-annex.1 view
@@ -1163,6 +1163,10 @@ configured by the trust and untrust commands. The value can be any of "trusted", "semitrusted" or "untrusted". .IP+.IP "\fBremote.<name>.availability\fP"+Can be used to tell git\-annex whether a remote is LocallyAvailable+or GloballyAvailable. Normally, git\-annex determines this automatically.+.IP .IP "\fBremote.<name>.annex\-ssh\-options\fP" Options to use when using ssh to talk to this remote. .IP@@ -1250,6 +1254,10 @@ .IP "\fBremote.<name>.webdav\fP" Used to identify webdav special remotes. Normally this is automatically set up by \fBgit annex initremote\fP.+.IP+.IP "\fBremote.<name>.tahoe\fP"+Used to identify tahoe special remotes.+Points to the configuration directory for tahoe. .IP .IP "\fBremote.<name>.annex\-xmppaddress\fP" Used to identify the XMPP address of a Jabber buddy.
git-annex.cabal view
@@ -1,11 +1,11 @@ Name: git-annex-Version: 5.20140108+Version: 5.20140116 Cabal-Version: >= 1.8 License: GPL-3 Maintainer: Joey Hess <joey@kitenet.net> Author: Joey Hess Stability: Stable-Copyright: 2010-2013 Joey Hess+Copyright: 2010-2014 Joey Hess License-File: COPYRIGHT Homepage: http://git-annex.branchable.com/ Build-type: Custom@@ -75,6 +75,9 @@ Flag Quvi Description: Enable use of quvi to download videos +Flag Tahoe+ Description: Enable the tahoe special remote+ Flag CryptoHash Description: Enable use of cryptohash for checksumming @@ -192,6 +195,10 @@ if flag(Quvi) Build-Depends: aeson CPP-Options: -DWITH_QUVI+ + if flag(Tahoe)+ Build-Depends: aeson+ CPP-Options: -DWITH_TAHOE if flag(EKG) Build-Depends: ekg