git-annex 5.20141024 → 5.20141125
raw patch · 51 files changed
+931/−186 lines, 51 files
Files
- Annex/Environment.hs +1/−1
- Annex/Init.hs +1/−57
- Assistant/DeleteRemote.hs +2/−2
- Assistant/WebApp/Configurators/XMPP.hs +2/−2
- Assistant/WebApp/Gpg.hs +2/−2
- CHANGELOG +11/−0
- Command/Info.hs +2/−1
- Command/Status.hs +1/−1
- Git/Remote.hs +0/−13
- Git/Remote/Remove.hs +27/−0
- INSTALL +6/−6
- Remote/GCrypt.hs +1/−1
- Utility/Metered.hs +22/−12
- Utility/UserInfo.hs +12/−8
- debian/changelog +11/−0
- doc/bugs/Button_to_cancel_conistency_checks.mdwn +21/−0
- doc/bugs/Internal_server_error_while_adding_remote_server_on_Windows.mdwn +29/−0
- doc/bugs/flooding_me_with_ssh_password_prompts.mdwn +42/−0
- doc/bugs/getEffectiveUserID_not_supported_on_Windows.mdwn +28/−0
- doc/bugs/git_annex_add_ignores_some_files__47__directories.mdwn +23/−0
- doc/bugs/git_annex_assistant_leaks_a_lot_of_memory.mdwn +9/−0
- doc/bugs/git_annex_sync_thinks_remote__39__s_name_is_a_command.mdwn +102/−0
- doc/bugs/misuse_of_--git-dir_might_destroy_a_git_repository_completely.mdwn +34/−0
- doc/bugs/webapp_does_not_start_on_android.mdwn +20/−0
- doc/coding_style.mdwn +8/−0
- doc/devblog/day_229__S3_multipart.mdwn +11/−0
- doc/devblog/day_230__S3_multipart_round_2.mdwn +9/−0
- doc/devblog/day_231__S3_multipart_wrapped_up.mdwn +13/−0
- doc/forum/Ambigous_argument___40__unknown_revision_or_path__41__.mdwn +148/−0
- doc/forum/Copy_contents_of_directory_to_rsync_remotes_possible__63__.mdwn +16/−0
- doc/forum/Deduplication_in_direct_mode.mdwn +18/−0
- doc/forum/How_does_git_annex_handle_swp_files.mdwn +1/−0
- doc/forum/Recovering_deleted_file_in_direct_mode.mdwn +13/−0
- doc/forum/Using_git-annex.mdwn +73/−0
- doc/forum/Why_is_git_annex_status_slow__63__.mdwn +20/−0
- doc/install.mdwn +6/−6
- doc/install/ArchLinux.mdwn +7/−3
- doc/install/ArchLinux/comment_1_da5919c986d2ae187bc2f73de9633978._comment +0/−8
- doc/install/ArchLinux/comment_5_cbc960cd78bf5b90e3bb6cb605d6d970._comment +0/−10
- doc/install/verifying_downloads.mdwn +5/−3
- doc/internals.mdwn +15/−17
- doc/news/version_5.20140919.mdwn +0/−16
- doc/news/version_5.20141125.mdwn +8/−0
- doc/preferred_content/comment_11_4599023aa31ac3767a9c57b91b500f8d._comment +35/−0
- doc/todo/direct_mode_undo.mdwn +76/−0
- doc/todo/find_unused_in_any_commit.mdwn +14/−0
- doc/todo/make_status_show_staged_files.mdwn +23/−0
- doc/todo/support_S3_multipart_uploads.mdwn +0/−14
- git-annex.cabal +1/−1
- standalone/android/Makefile +1/−1
- templates/documentation/about.hamlet +1/−1
Annex/Environment.hs view
@@ -32,7 +32,7 @@ liftIO checkEnvironmentIO checkEnvironmentIO :: IO ()-checkEnvironmentIO = whenM (null <$> myUserGecos) $ do+checkEnvironmentIO = whenM (isNothing <$> myUserGecos) $ do username <- myUserName ensureEnv "GIT_AUTHOR_NAME" username ensureEnv "GIT_COMMITTER_NAME" username
Annex/Init.hs view
@@ -107,9 +107,7 @@ - Checks repository version and handles upgrades too. -} ensureInitialized :: Annex ()-ensureInitialized = do- getVersion >>= maybe needsinit checkUpgrade- fixBadBare+ensureInitialized = getVersion >>= maybe needsinit checkUpgrade where needsinit = ifM Annex.Branch.hasSibling ( initialize Nothing@@ -193,60 +191,6 @@ forM_ l $ \f -> maybe noop (`toDirect` f) =<< isAnnexLink f void $ liftIO clean--{- Work around for git-annex version 5.20131118 - 5.20131127, which- - had a bug that unset core.bare when initializing a bare repository.- - - - This resulted in objects sent to the repository being stored in - - repo/.git/annex/objects, so move them to repo/annex/objects.- -- - This check slows down every git-annex run somewhat (by one file stat),- - so should be removed after a suitable period of time has passed.- - Since the bare repository may be on an offline USB drive, best to- - keep it for a while. However, git-annex was only buggy for a few- - weeks, so not too long.- -}-fixBadBare :: Annex ()-fixBadBare = whenM checkBadBare $ do- ks <- getKeysPresent InAnnex- liftIO $ debugM "Init" $ unwords- [ "Detected bad bare repository with"- , show (length ks)- , "objects; fixing"- ]- g <- Annex.gitRepo- gc <- Annex.getGitConfig- d <- Git.repoPath <$> Annex.gitRepo- void $ liftIO $ boolSystem "git"- [ Param $ "--git-dir=" ++ d- , Param "config"- , Param Git.Config.coreBare- , Param $ Git.Config.boolConfig True- ]- g' <- liftIO $ Git.Construct.fromPath d- s' <- liftIO $ Annex.new $ g' { Git.location = Git.Local { Git.gitdir = d, Git.worktree = Nothing } }- Annex.changeState $ \s -> s- { Annex.repo = Annex.repo s'- , Annex.gitconfig = Annex.gitconfig s'- }- forM_ ks $ \k -> do- oldloc <- liftIO $ gitAnnexLocation k g gc- thawContentDir oldloc- moveAnnex k oldloc- logStatus k InfoPresent- let dotgit = d </> ".git"- liftIO $ removeDirectoryRecursive dotgit- `catchIO` const (renameDirectory dotgit (d </> "removeme"))--{- A repostory with the problem won't know it's a bare repository, but will- - have no pre-commit hook (which is not set up in a bare repository),- - and will not have a HEAD file in its .git directory. -}-checkBadBare :: Annex Bool-checkBadBare = allM (not <$>)- [isBare, hasPreCommitHook, hasDotGitHEAD]- where- hasPreCommitHook = inRepo $ doesFileExist . hookFile preCommitHook- hasDotGitHEAD = inRepo $ \r -> doesFileExist $ Git.localGitDir r </> "HEAD" checkSharedClone :: Annex () checkSharedClone = whenM (inRepo Git.Objects.isSharedClone) $ do
Assistant/DeleteRemote.hs view
@@ -17,7 +17,7 @@ import Assistant.DaemonStatus import qualified Remote import Remote.List-import qualified Git.Remote+import qualified Git.Remote.Remove import Logs.Trust import qualified Annex @@ -34,7 +34,7 @@ remote <- fromMaybe (error "unknown remote") <$> liftAnnex (Remote.remoteFromUUID uuid) liftAnnex $ do- inRepo $ Git.Remote.remove (Remote.name remote)+ inRepo $ Git.Remote.Remove.remove (Remote.name remote) void $ remoteListRefresh updateSyncRemotes return remote
Assistant/WebApp/Configurators/XMPP.hs view
@@ -25,7 +25,7 @@ import Assistant.WebApp.Configurators import Assistant.XMPP #endif-import qualified Git.Remote+import qualified Git.Remote.Remove import Remote.List import Creds @@ -211,7 +211,7 @@ rs <- filter Remote.isXMPPRemote . syncRemotes <$> liftAssistant getDaemonStatus liftAnnex $ do- mapM_ (inRepo . Git.Remote.remove . Remote.name) rs+ mapM_ (inRepo . Git.Remote.Remove.remove . Remote.name) rs void remoteListRefresh removeCreds xmppCredsFile liftAssistant $ do
Assistant/WebApp/Gpg.hs view
@@ -13,7 +13,7 @@ import Assistant.Gpg import Utility.Gpg import qualified Git.Command-import qualified Git.Remote+import qualified Git.Remote.Remove import qualified Git.Construct import qualified Annex.Branch import qualified Git.GCrypt@@ -76,7 +76,7 @@ (M.lookup "name" <=< M.lookup u) <$> readRemoteLog , return Nothing )- void $ inRepo $ Git.Remote.remove tmpremote+ void $ inRepo $ Git.Remote.Remove.remove tmpremote maybe missing return mname where missing = error $ "Cannot find configuration for the gcrypt remote at " ++ repoloc
CHANGELOG view
@@ -1,3 +1,14 @@+git-annex (5.20141125) unstable; urgency=medium++ * Remove fixup code for bad bare repositories created by+ versions 5.20131118 through 5.20131127. That fixup code would+ accidentially fire when --git-dir was incorrectly+ pointed at the working tree of a git-annex repository,+ possibly resulting in data loss. Closes: #768093+ * Windows: Fix crash when user.name is not set in git config.++ -- Joey Hess <joeyh@debian.org> Wed, 05 Nov 2014 11:41:51 -0400+ git-annex (5.20141024) unstable; urgency=medium * vicfg: Deleting configurations now resets to the default, where
Command/Info.hs view
@@ -221,7 +221,8 @@ remote_list :: TrustLevel -> Stat remote_list level = stat n $ nojson $ lift $ do- us <- M.keys <$> (M.union <$> uuidMap <*> remoteMap Remote.name)+ us <- filter (/= NoUUID) . M.keys + <$> (M.union <$> uuidMap <*> remoteMap Remote.name) rs <- fst <$> trustPartition level us s <- prettyPrintUUIDs n rs return $ if null s then "0" else show (length rs) ++ "\n" ++ beginning s
Command/Status.hs view
@@ -65,7 +65,7 @@ where checkstatus Nothing = return $ Just DeletedFile checkstatus (Just s)- -- Git thinks that present direct mode files modifed,+ -- Git thinks that present direct mode files are modifed, -- so have to check. | not (isSymbolicLink s) = checkkey s =<< catKeyFile f | otherwise = Just <$> checkNew f
Git/Remote.hs view
@@ -12,8 +12,6 @@ import Common import Git import Git.Types-import qualified Git.Command-import qualified Git.BuildVersion import Data.Char import qualified Data.Map as M@@ -44,17 +42,6 @@ legal '.' = True legal c = isAlphaNum c -remove :: RemoteName -> Repo -> IO ()-remove remotename = Git.Command.run- [ Param "remote"- -- name of this subcommand changed- , Param $- if Git.BuildVersion.older "1.8.0"- then "rm"- else "remove"- , Param remotename- ]- data RemoteLocation = RemoteUrl String | RemotePath FilePath remoteLocationIsUrl :: RemoteLocation -> Bool
+ Git/Remote/Remove.hs view
@@ -0,0 +1,27 @@+{- git remote stuff+ -+ - Copyright 2012 Joey Hess <joey@kitenet.net>+ -+ - Licensed under the GNU GPL version 3 or higher.+ -}++{-# LANGUAGE CPP #-}++module Git.Remote.Remove where++import Common+import Git+import Git.Types+import qualified Git.Command+import qualified Git.BuildVersion++remove :: RemoteName -> Repo -> IO ()+remove remotename = Git.Command.run+ [ Param "remote"+ -- name of this subcommand changed+ , Param $+ if Git.BuildVersion.older "1.8.0"+ then "rm"+ else "remove"+ , Param remotename+ ]
INSTALL view
@@ -2,24 +2,24 @@ [[!table format=dsv header=yes data=""" detailed instructions | quick install-[[OSX]] | [download git-annex.app](http://downloads.kitenet.net/git-annex/OSX/current/)+[[OSX]] | [download git-annex.app](https://downloads.kitenet.net/git-annex/OSX/current/) [[OSX/Homebrew]] | `brew install git-annex`-[[Android]] | [download git-annex.apk](http://downloads.kitenet.net/git-annex/android/current/) **beta**-[[Linux|linux_standalone]] | [download prebuilt linux tarball](http://downloads.kitenet.net/git-annex/linux/current/)+[[Android]] | [download git-annex.apk](https://downloads.kitenet.net/git-annex/android/current/) **beta**+[[Linux|linux_standalone]] | [download prebuilt linux tarball](https://downloads.kitenet.net/git-annex/linux/current/) [[Debian]] | `apt-get install git-annex` [[Ubuntu]] | `apt-get install git-annex` [[Fedora]] | `yum install git-annex` [[FreeBSD]] | `pkg_add -r hs-git-annex`- [[ArchLinux]] | `yaourt -Sy git-annex`+ [[ArchLinux]] | `yaourt -Sy git-annex-bin` [[NixOS]] | `nix-env -i git-annex` [[Gentoo]] | `emerge git-annex` [[ScientificLinux5]] | [[openSUSE]] | [[Docker]] | -[[Windows]] | [download installer](http://downloads.kitenet.net/git-annex/windows/current/) **beta**+[[Windows]] | [download installer](https://downloads.kitenet.net/git-annex/windows/current/) **beta** """]] -All the downloads above use https for security. For added security, see+All the download links above use https for security. For added security, see [[verifying_downloads]]. ## Building it yourself
Remote/GCrypt.hs view
@@ -202,7 +202,7 @@ method <- setupRepo gcryptid =<< inRepo (Git.Construct.fromRemoteLocation gitrepo) gitConfigSpecialRemote u c' "gcrypt" (fromAccessMethod method) return (c', u)- else error $ "uuid mismatch " ++ show (u, mu, gcryptid)+ else error $ "uuid mismatch; expected " ++ show mu ++ " but remote gitrepo has " ++ show u ++ " (" ++ show gcryptid ++ ")" {- Sets up the gcrypt repository. The repository is either a local - repo, or it is accessed via rsync directly, or it is accessed over ssh
Utility/Metered.hs view
@@ -99,33 +99,43 @@ {- This is like L.hGetContents, but after each chunk is read, a meter - is updated based on the size of the chunk. -+ - All the usual caveats about using unsafeInterleaveIO apply to the+ - meter updates, so use caution.+ -}+hGetContentsMetered :: Handle -> MeterUpdate -> IO L.ByteString+hGetContentsMetered h = hGetUntilMetered h (const True)++{- Reads from the Handle, updating the meter after each chunk.+ - - Note that the meter update is run in unsafeInterleaveIO, which means that - it can be run at any time. It's even possible for updates to run out - of order, as different parts of the ByteString are consumed. -- - All the usual caveats about using unsafeInterleaveIO apply to the- - meter updates, so use caution.+ - Stops at EOF, or when keepgoing evaluates to False.+ - Closes the Handle at EOF, but otherwise leaves it open. -}-hGetContentsMetered :: Handle -> MeterUpdate -> IO L.ByteString-hGetContentsMetered h meterupdate = lazyRead zeroBytesProcessed+hGetUntilMetered :: Handle -> (Integer -> Bool) -> MeterUpdate -> IO L.ByteString+hGetUntilMetered h keepgoing meterupdate = lazyRead zeroBytesProcessed where lazyRead sofar = unsafeInterleaveIO $ loop sofar loop sofar = do- c <- S.hGetSome h defaultChunkSize+ c <- S.hGet h defaultChunkSize if S.null c then do hClose h return $ L.empty else do- let sofar' = addBytesProcessed sofar $- S.length c+ let sofar' = addBytesProcessed sofar (S.length c) meterupdate sofar'- {- unsafeInterleaveIO causes this to be- - deferred until the data is read from the- - ByteString. -}- cs <- lazyRead sofar'- return $ L.append (L.fromChunks [c]) cs+ if keepgoing (fromBytesProcessed sofar')+ then do+ {- unsafeInterleaveIO causes this to be+ - deferred until the data is read from the+ - ByteString. -}+ cs <- lazyRead sofar'+ return $ L.append (L.fromChunks [c]) cs+ else return $ L.fromChunks [c] {- Same default chunk size Lazy ByteStrings use. -} defaultChunkSize :: Int
Utility/UserInfo.hs view
@@ -40,16 +40,20 @@ env = ["USERNAME", "USER", "LOGNAME"] #endif -myUserGecos :: IO String-#ifdef __ANDROID__-myUserGecos = return "" -- userGecos crashes on Android+myUserGecos :: IO (Maybe String)+-- userGecos crashes on Android and is not available on Windows.+#if defined(__ANDROID__) || defined(mingw32_HOST_OS)+myUserGecos = return Nothing #else-myUserGecos = myVal [] userGecos+myUserGecos = Just <$> myVal [] userGecos #endif myVal :: [String] -> (UserEntry -> String) -> IO String-myVal envvars extract = maybe (extract <$> getpwent) return =<< check envvars+myVal envvars extract = go envvars where- check [] = return Nothing- check (v:vs) = maybe (check vs) (return . Just) =<< getEnv v- getpwent = getUserEntryForID =<< getEffectiveUserID+#ifndef mingw32_HOST_OS+ go [] = extract <$> (getUserEntryForID =<< getEffectiveUserID)+#else+ go [] = error $ "environment not set: " ++ show envvars+#endif+ go (v:vs) = maybe (go vs) return =<< getEnv v
debian/changelog view
@@ -1,3 +1,14 @@+git-annex (5.20141125) unstable; urgency=medium++ * Remove fixup code for bad bare repositories created by+ versions 5.20131118 through 5.20131127. That fixup code would+ accidentially fire when --git-dir was incorrectly+ pointed at the working tree of a git-annex repository,+ possibly resulting in data loss. Closes: #768093+ * Windows: Fix crash when user.name is not set in git config.++ -- Joey Hess <joeyh@debian.org> Wed, 05 Nov 2014 11:41:51 -0400+ git-annex (5.20141024) unstable; urgency=medium * vicfg: Deleting configurations now resets to the default, where
+ doc/bugs/Button_to_cancel_conistency_checks.mdwn view
@@ -0,0 +1,21 @@+### Please describe the problem.++Sometimes a consistency check is undesired, e.g. when one wants to unmount the external drive. Add a button (along Configure) to the bubble that says Consistency check in progress to the assistent.++### What steps will reproduce the problem?++Run an automatic conistency check.++### What version of git-annex are you using? On what operating system?++20141024++### 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.+"""]]
+ doc/bugs/Internal_server_error_while_adding_remote_server_on_Windows.mdwn view
@@ -0,0 +1,29 @@+### Please describe the problem.+The web app fails with an Internal server error while adding a remote server on Windows.+ssh: createProcess: does not exist (No such file or directory)++### What steps will reproduce the problem?+Start the webapp, click add repository, select remote server, click check.++### What version of git-annex are you using? On what operating system?+Latest (as of 20141104) on Windows.++### 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++[2014-11-04 12:42:27 ora solare Europa occidentale] main: starting assistant version 5.20141031-gbfac20c+Launching web browser on file://C:\Users\ltaglialegne\Documents\Annex\.git\annex\webapp.html+[2014-11-04 12:42:27 ora solare Europa occidentale] Cronner: You should enable consistency checking to protect your data. +(scanning...) [2014-11-04 12:42:27 ora solare Europa occidentale] Watcher: Performing startup scan+(started...) recv: failed (No error)+recv: failed (No error)+recv: failed (No error)+recv: failed (No error)+04/Nov/2014:12:44:30 +0100 [Error#yesod-core] ssh: createProcess: does not exist (No such file or directory) @(yesod-core-1.2.19:Yesod.Core.Class.Yesod .\Yesod\Core\Class\Yesod.hs:503:5)+04/Nov/2014:12:44:50 +0100 [Error#yesod-core] ssh: createProcess: does not exist (No such file or directory) @(yesod-core-1.2.19:Yesod.Core.Class.Yesod .\Yesod\Core\Class\Yesod.hs:503:5)++# End of transcript or log.+"""]]
+ doc/bugs/flooding_me_with_ssh_password_prompts.mdwn view
@@ -0,0 +1,42 @@+### Please describe the problem.++When I login to my session, git-annex starts a few daemons, which is fine, but then it prompts me for tons of passwords, which is really annoying.++It is strange because one of the things I do when I start my session is to input my keys in the SSH agent. But then git-annex still prompts me:++~~~~+21503 ? Sl 3:04 git-annex assistant --startdelay=5s+21517 ? S 0:03 \_ git --git-dir=/srv/musique/anarcat/books/.git --work-tree=/srv/musique/anarcat/books cat-file --batch+21612 ? SNl 0:00 \_ git-annex remotedaemon+21706 ? S 0:00 \_ git --git-dir=/srv/musique/anarcat/books/.git --work-tree=/srv/musique/anarcat/books check-ignore -z --stdin --verbose --non-matching+21898 ? SN 0:00 \_ git --git-dir=/srv/musique/anarcat/books/.git --work-tree=/srv/musique/anarcat/books check-attr -z --stdin annex.backend annex.numcopies --+ 6712 ? SNl 0:00 \_ git-annex transferkeys+ 6719 ? SN 0:00 \_ git --git-dir=/srv/musique/anarcat/books/.git --work-tree=/srv/musique/anarcat/books cat-file --batch+ 6720 ? SN 0:00 \_ rsync --progress --inplace --perms -e 'ssh' '-S' '.git/annex/ssh/anarc.at' '-o' 'ControlMaster=auto' '-o' 'ControlPersist=yes' '-T' 'anarc.at' 'git-annex-shell ''sendkey'' ''/srv/books'' ''SHA256E-s17781587--f204e6ef1f14b624e222d6ad73ed41edf65c29c93afad9a1e4e1954ad68d1753.pdf'' --uuid a75cbbf7-e055-423e-b375-443e0552c9e2 ''--'' ''remoteuuid=aa500f29-42d9-4777-ae02-4a2c3d47db44'' ''direct='' ''associatedfile=Garde cotiere canadienne/Navigation dans les glaces en eaux Canadiennes (1112)/Navigation dans les glaces en eaux Canadie - Garde cotiere canadienne.pdf'' ''--''' -- dummy: /srv/musique/anarcat/books/.git/annex/tmp/SHA256E-s17781587--f204e6ef1f14b624e222d6ad73ed41edf65c29c93afad9a1e4e1954ad68d1753.pdf+ 6721 ? SN 0:00 \_ ssh -S .git/annex/ssh/anarc.at -o ControlMaster=auto -o ControlPersist=yes -T anarc.at git-annex-shell 'sendkey' '/srv/books' 'SHA256E-s17781587--f204e6ef1f14b624e222d6ad73ed41edf65c29c93afad9a1e4e1954ad68d1753.pdf' --uuid a75cbbf7-e055-423e-b375-443e0552c9e2 '--' 'remoteuuid=aa500f29-42d9-4777-ae02-4a2c3d47db44' 'direct=' 'associatedfile=Garde cotiere canadienne/Navigation dans les glaces en eaux Canadiennes (1112)/Navigation dans les glaces en eaux Canadie - Garde cotiere canadienne.pdf' '--' dummy rsync --server --sender -vpe.Lsf --inplace .+ 6722 ? SN 0:00 \_ /usr/bin/ssh-askpass anarcat@anarc.at's password:+~~~~++Yet I can login to `shell.anarc.at` without a passphrase without problems.++Interestingly enough, my main session and git-annex do not seem to share the same `SSH_AGENT` environment variable. It's unclear to me why. git-annex's SSH_AGENT environment variable seems to refer to a process that disappeared, actually. So it could be there's something wrong with my session.++Still, when a situation like this occurs, it seems to me that it should generate in this noisy concert of ssh prompts that basically blocks all work until i hit "escape" often enough. In fact, that it is rather problematic to have random password prompts show up like this without an explanation: git-annex should tell me it's the source of this password prompt or not prompt at all, because there's no way i'll start entering random passphrases into random pinentry dialogs that show up... ++Doesn't git-annex deploy its own ssh keys once it has established a connexion with an SSH remote?++> After more investigation, it turns out this peculiar git-annex daemon was some left-overs from a previous session i had logged out of. It is unclear why git-annex was still running, but there were also pulseaudio and redshift programs lying around so I suspect it wasn't git-annex specific.+>+> However, this problem remains on login. When I start a new session, there's a race condition between git-annex asking passwords and ssh-add asking me to unlock my private key. It's a nice festival of password prompts as I struggle to type in my ssh key faster than git-annex asks me for the remote host's password.+> +> In general, I think git-annex should set `PasswordAuthentication=no` (or allow me to configure it as such), especially if it knows it was able to login without a password at some point. It should especially do that if there's no UI attached informing the user it will be prompting for a password. `NumberOfPasswordPrompts=1` would also be a welcome improvement, but I really don't think I should be seeing those password prompts, especially since I *can* login to the server with my existing SSH key.+>+> Also note that I use Monkeysphere to input my private key into the SSH agent so it could explain why this doesn't usually happen to other people: Monkeysphere doesn't automatically get started from `ssh` if the key is missing, and instead `ssh` will revert to a regular password-based authentication which competes with the Monkeysphere password prompt.++### What steps will reproduce the problem?++It's unclear - i guess you need to setup git-annex to autostart and sync with remote ssh annexes. You may also need to have to use XFCE with Awesome to reproduce the problem. I can provide more details on my session setup on request. --[[anarcat]]++### What version of git-annex are you using? On what operating system?++5.20140927~bpo70+3 on debian wheezy.
+ doc/bugs/getEffectiveUserID_not_supported_on_Windows.mdwn view
@@ -0,0 +1,28 @@+### Please describe the problem.+After a clean install of the latest git-annex for Windows (https://downloads.kitenet.net/git-annex/windows/current/), most git-annex commands fail with the following error message:+ + git-annex: System.PosixCompat.User.getEffectiveUserID: not supported: illegal operation++### What steps will reproduce the problem?++ git init+ git annex init++Running for example `git annex version` or `git annex info` gives the same error message.+++### What version of git-annex are you using? On what operating system?++git-annex version should be 5.20141024, but the installer does not specify version and `git annex info` does not work, so it is hard to tell for sure.+Running Windows 7, x64. Also tried running as administrator and in a cmd.exe shell as well as Powershell.+++### Please provide any additional information below.++The `git annex test` command does work, and all 84 tests passes.++> [[fixed|done]]; I was able to reproduce this bug, and it was crashing+> trying to look up the geckos username. I don't understand why this worked+> before; some change exposed this code path on Windows. In any case, I've+> fixed the crash, and I will be updating the windows builds with this bug+> fix. --[[Joey]]
+ doc/bugs/git_annex_add_ignores_some_files__47__directories.mdwn view
@@ -0,0 +1,23 @@+### Please describe the problem.+After I run "git annex add" some folders (not empty) in current directory remain unannexed and git shows them as untracked. Even git annex add "problemDirName" does nothing. git annex add --force doesn't help either. ++### What steps will reproduce the problem?+No idea :( sometimes it happens and sometimes not.++### What version of git-annex are you using? On what operating system?+5.20141013 on Debian testing++### Please provide any additional information below.++git add works fine. It correctly stages the files.++This is regular repository (not direct). ++EDIT:+It seems that all the problem directories have either .git directory in them (I understand that git cannot manage .git but what about all the other files in there?) or are full of symlinks (git annex cannot manage symlinks?)++> You should `git add` symlinks. They are not large files, so +> are out of scope for git-annex.+> +> Git repositories cannot contain other git repositories. [[done]]+> --[[Joey]]
+ doc/bugs/git_annex_assistant_leaks_a_lot_of_memory.mdwn view
@@ -0,0 +1,9 @@+Hi,++I have a git-annex repository on a server managed by git annex assistant in indirect mode and as a backup group serving my org-mode files (organizer module for emacs) which are plain text files no more than a 100kb.++I also have 2 clients in direct mode to sync the files across my computers.++I save my files fairly often so the assistant might be a bit overwhelmed but I think it can managed that. At least it used to.++Since maybe a couple months, the assistant running on the server has been leaking nearly 1Gb each day and I suspect it rises whenever I push files to it.
+ doc/bugs/git_annex_sync_thinks_remote__39__s_name_is_a_command.mdwn view
@@ -0,0 +1,102 @@+### Please describe the problem.+git annex sync fails with "Unknown command 'i3'". i3 is the name of one annex. +++### What steps will reproduce the problem?++git annex clone i3:PATH annex++git annex sync++### What version of git-annex are you using? On what operating system?+git-annex version: 5.20140920-gb0c4300+build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV Inotify DBus DesktopNotify 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 tahoe glacier ddar hook external++on Linux Mint Qiana++### Please provide any additional information below.++[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log++ git annex sync+(merging origin/git-annex origin/synced/git-annex into git-annex...)+(Recording state in git...)+commit ok+pull origin +git-annex: Unknown command 'i3'++Did you mean one of these?+ fix+ edit+ init+ find+ add+ get+ vicfg+ log+ map+ drop+ move+ copy+ lock+ sync+ import+ uninit+ dead+ fsck+ direct+ help+ test++fatal: Could not read from remote repository.++Please make sure you have the correct access rights+and the repository exists.+failed+push origin +git-annex: Unknown command 'i3'++Did you mean one of these?+ fix+ edit+ init+ find+ add+ get+ vicfg+ log+ map+ drop+ move+ copy+ lock+ sync+ import+ uninit+ dead+ fsck+ direct+ help+ test++fatal: Could not read from remote repository.++Please make sure you have the correct access rights+and the repository exists.++ Pushing to origin failed.++ (non-fast-forward problems can be solved by setting receive.denyNonFastforwards to false in the remote's git config)+failed+git-annex: sync: 2 failed++# End of transcript or log.+"""]]++> Chalking this one up as a local misconfiguration; I think it's ok for +> git-annex to run the version of itself ~/.config/git-annex/program+> points to. So, [[done]] --[[Joey]]
+ doc/bugs/misuse_of_--git-dir_might_destroy_a_git_repository_completely.mdwn view
@@ -0,0 +1,34 @@+### Please describe the problem.+Doing a git annex command while passing a bad --git-dir can result in the .git directory being deleted. I've never experienced it with plain git, so I assume that it comes for annex.++### What steps will reproduce the problem?++[[!format sh """+$ mkdir annex_destroyed_my_git_directory+$ cd annex_destroyed_my_git_directory+$ git init+$ git annex init+$ ls -a+. .. .git+$ git --git-dir=$PWD annex find+fatal: Not a git repository: '/home/doudou/tmp/annex_destroyed_my_git_directory'+$ ls -a+. .. config+"""]]++### What version of git-annex are you using? On what operating system?+dpkg -l git-annex reports 5.20141024++I am running Debian sid.++### Please provide any additional information below.++[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log+++# End of transcript or log.+"""]]++> [[fixed|done]] --[[Joey]]
+ doc/bugs/webapp_does_not_start_on_android.mdwn view
@@ -0,0 +1,20 @@+### Please describe the problem.++The webapp does not start automatically and instead this message is printed in the terminal:++ Falling back to hardcoded app location; cannot find expected files in /data/app-lib+ git annex webapp+ COLUMNS=0;LINES=0;export COLUMNS LINES;++After typing `git annex webapp`, the webapp starts normally.++If I click the WebApp entry in the terminal menu, nothing happens.++### What steps will reproduce the problem?++Launch Git Annex from the applications menu.++### What version of git-annex are you using? On what operating system?++Using 4.3/4.4 daily build (nov 1st 2014) apk.+CyanogemMod 11 (M10)
doc/coding_style.mdwn view
@@ -72,6 +72,14 @@ , address = "baz" } +Similarly, data structures line up the leading `=` with the following `|`++ data Foo+ = Bar+ | Baz+ | Quux Foo+ deriving (Eq, Ord)+ Module imports are separated into two blocks, one for third-party modules, and one for modules that are part of git-annex. (Additional blocks can be used if it makes sense.)
+ doc/devblog/day_229__S3_multipart.mdwn view
@@ -0,0 +1,11 @@+Some progress on the [[bugs/S3_upload_not_using_multipart]] bug. The aws+library now includes the multipart API. However, when I dug into it, it+looks like the API needs some changes to get the ETAG of each uploaded+part. Once that's fixed, git-annex should be able to support S3 multipart+uploads, although I think that git-annex's own chunking is better in most+situations -- it supports resuming uploads and downloads better. The main+use case for S3 multipart seems to be using git-annex to publish large+files.++Also, managed to get the backlog down from 100 to just 65 messages,+including catching up on quite old parts of backlog.
+ doc/devblog/day_230__S3_multipart_round_2.mdwn view
@@ -0,0 +1,9 @@+More work on S3 multipart uploads, since the aws library got fixed today+to return the ETAGs for the parts. I got multipart uploads fully working,+including progress display.++The code takes care to stream each part in from the file and out the+socket, so I'd hoped it would have good memory behavior. However, for+reasons I have not tracked down, something in the aws library is causing+each part to be buffered in memory. This is a problem, since I want to+use 1 gb as the default part size.
+ doc/devblog/day_231__S3_multipart_wrapped_up.mdwn view
@@ -0,0 +1,13 @@+S3 multipart is finally completely working. I still don't understand the+memory issue that stumped me yesterday, but rewrote the code to use a+simpler approach, which avoids the problem. Various other issues, and+testing it with large files, took all day.++This is now merged into the `s3-aws` branch, so when that branch lands, S3+support will massively improve, from the current situation of using a buggy+library that buffers uploaded files in memory, and cannot support very+large file uploads at all, to being able to support hopefully files of+arbitrary hugeness (at least up to a few terabytes).++BTW, thanks to Aristid Breitkreuz and Junji Hashimoto for working on the+multipart support in the `aws` library.
+ doc/forum/Ambigous_argument___40__unknown_revision_or_path__41__.mdwn view
@@ -0,0 +1,148 @@+Okey, so I set up a repo on a client computer with files in a directory. All went fine without errors. Then I created the remote server in backup mode. Everything went well with the sync. Back at the office I now want the same repo content on this computer, so I fire up the assistant, add a local repo directory (empty of course) and then add a remote server. Then this happens++ [2014-11-05 09:17:24 CET] main: Syncing with server__volume1_work_user_work+ From ssh://git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork/volume1/work_user/work+ * [new branch] git-annex -> server__volume1_work_user_work/git-annex+ * [new branch] master -> server__volume1_work_user_work/master+ * [new branch] synced/git-annex -> server__volume1_work_user_work/synced/git-annex+ * [new branch] synced/master -> server__volume1_work_user_work/synced/master+ (merging server__volume1_work_user_work/git-annex server__volume1_work_user_work/synced/git-annex into git-annex...)+ (Recording state in git...)+ fatal: ambiguous argument 'refs/heads/synced/master..refs/remotes/server__volume1_work_user_work/synced/master': unknown revision or path not in the working tree.+ Use '--' to separate paths from revisions, like this:+ 'git <command> [<revision>...] -- [<file>...]'++ Automatic merge went well; stopped before committing as requested+ To ssh://username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork/volume1/work_user/work/+ 3943547..00aa6bd git-annex -> synced/git-annex+ ! [rejected] annex/direct/master -> synced/master (non-fast-forward)+ error: failed to push some refs to 'ssh://username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork/volume1/work_user/work/'+ hint: Updates were rejected because a pushed branch tip is behind its remote+ hint: counterpart. Check out this branch and integrate the remote changes+ hint: (e.g. 'git pull ...') before pushing again.+ hint: See the 'Note about fast-forwards' in 'git push --help' for details.+ [2014-11-05 09:20:09 CET] Pusher: Syncing with server__volume1_work_user_work+ [2014-11-05 09:20:09 CET] Committer: Committing changes to git+ (Recording state in git...)++ SHA256E-s1570--7437c0b77825d2636723cde82f0094854357aec43619b7d62707b5c26c4b0379.c++ 0 0% 0.00kB/s 0:00:00+ 1,570 100% 1.50MB/s 0:00:00 (xfr#1, to-chk=0/1)+ [2014-11-05 09:20:10 CET] Transferrer: Downloaded timing_ds20.c+ To ssh://username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork/volume1/work_user/work/+ 0e52256..2515592 annex/direct/master -> synced/master+ error: Ref refs/heads/synced/master is at 2515592b1a0b2a355b5334c315d8857619b4a9c3 but expected 0e522560b9b6f0e52f789187e2fbd9076174bc4b+ remote: error: failed to lock refs/heads/synced/master+ To ssh://username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork/volume1/work_user/work/+ ! [remote rejected] annex/direct/master -> synced/master (failed to lock)+ error: failed to push some refs to 'ssh://username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork/volume1/work_user/work/'+ To ssh://username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork/volume1/work_user/work/+ * [new branch] git-annex -> refs/synced/a455ea74-d6fe-4f82-b796-72c20fc113fd/git-annex+ * [new branch] annex/direct/master -> refs/synced/a455ea74-d6fe-4f82-b796-72c20fc113fd/annex/direct/master++ SHA256E-s7--19d210b22987ea279fe707c89b3afdbe530537118d3bac62c722b6ec54901e5a++ 0 0% 0.00kB/s 0:00:00+ 7 100% 6.84kB/s 0:00:00 (xfr#1, to-chk=0/1)+ [2014-11-05 09:20:13 CET] Transferrer: Downloaded somefile+ [2014-11-05 09:20:13 CET] Pusher: Syncing with server__volume1_work_user_work+ (Recording state in git...)++ SHA256E-s7762408--27c11674fe8c0b23f469aa90342dd45bf9ec9c83108251985b3231178f0f4ed5.pdf++ 0 0% 0.00kB/s 0:00:00+ 5,406,720 69% 5.12MB/s 0:00:00+ 7,762,408 100% 5.01MB/s 0:00:01 (xfr#1, to-chk=0/1)+ To ssh://username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork/volume1/work_user/work/+ 00aa6bd..841a157 git-annex -> synced/git-annex+ [2014-11-05 09:20:16 CET] Transferrer: Downloaded anotherfile.pdf++ SHA256E-s322841--452ddf060131e1cfe44a02ee23840494d4566c4b1ad58f0131d52f17fbf65ea2.pdf++And then it continues transfering the files. Then this happens++ error: Ref refs/heads/synced/git-annex is at 4a802d679a5a7e2eae3c16b2ed0a8d724b665b0a but expected 45004c24db2eb24dddc04d1542d3689aa27b9507+ remote: error: failed to lock refs/heads/synced/git-annex+ To ssh://username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork/volume1/work_user/work/+ ! [remote rejected] git-annex -> synced/git-annex (failed to lock)+ error: failed to push some refs to 'ssh://username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork/volume1/work_user/work/'+ [2014-11-05 10:13:48 CET] read: git ["--git-dir=/home/officeusername/work/.git","--work-tree=/home/officeusername/work","-c","core.bare=false","push","server__volume1_work_user_work","master"]++ SHA256E-s115543--4aca4053b23d914ea034f06439edcb7d3d9bcc24b5d9865f5e062394ca1263e0+ + 0 0% 0.00kB/s 0:00:00+ 115,543 100% 2.98MB/s 0:00:00 (xfr#1, to-chk=0/1)+ [2014-11-05 10:13:48 CET] feed: ssh ["-S",".git/annex/ssh/abf79f467a5dcf714ddaf5162ffc09ba","-o","ControlMaster=auto","-o","ControlPersist=yes","-T","username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork","git-annex-shell 'transferinfo' '/volume1/work_user/work/' 'SHA256E-s115543--4aca4053b23d914ea034f06439edcb7d3d9bcc24b5d9865f5e062394ca1263e0' --uuid 05bdd8d5-da30-4024-a921-0f8b1a2f33df '--' 'remoteuuid=a455ea74-d6fe-4f82-b796-72c20fc113fd' 'associatedfile=pathtosomefile' '--'"]+ [2014-11-05 10:13:48 CET] NetWatcherFallback: trying manual pull to resolve failed pushes+ [2014-11-05 10:13:48 CET] call: git ["--git-dir=/home/officeusername/work/.git","--work-tree=/home/officeusername/work","-c","core.bare=false","fetch","server__volume1_work_user_work"]+ [2014-11-05 10:13:48 CET] Watcher: add symlink pathtosomefile+ [2014-11-05 10:13:48 CET] Transferrer: Downloaded file+ [2014-11-05 10:13:48 CET] TransferWatcher: transfer finishing: Transfer {transferDirection = Download, transferUUID = UUID "05bdd8d5-da30-4024-a921-0f8b1a2f33df", transferKey = Key {keyName = "4aca4053b23d914ea034f06439edcb7d3d9bcc24b5d9865f5e062394ca1263e0", keyBackendName = "SHA256E", keySize = Just 115543, keyMtime = Nothing, keyChunkSize = Nothing, keyChunkNum = Nothing}}+ [2014-11-05 10:13:48 CET] Transferrer: Transferring: Download UUID "05bdd8d5-da30-4024-a921-0f8b1a2f33df" pathtosomefile2 Nothing+ [2014-11-05 10:13:48 CET] TransferWatcher: transfer starting: Download UUID "05bdd8d5-da30-4024-a921-0f8b1a2f33df" SHA256E-s145572--50e4d0d2fa52fb6843258509637307b8efc87d31abab834e7bc3174296689e25 Nothing+ [2014-11-05 10:13:48 CET] TransferWatcher: transfer starting: Download UUID "05bdd8d5-da30-4024-a921-0f8b1a2f33df" pathtosomefile2 Nothing+ [2014-11-05 10:13:48 CET] read: rsync ["--progress","--inplace","--perms","-e","'ssh' '-S' '.git/annex/ssh/abf79f467a5dcf714ddaf5162ffc09ba' '-o' 'ControlMaster=auto' '-o' 'ControlPersist=yes' '-T' 'username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork' 'git-annex-shell ''sendkey'' ''/volume1/work_user/work/'' ''SHA256E-s145572--50e4d0d2fa52fb6843258509637307b8efc87d31abab834e7bc3174296689e25'' --uuid 05bdd8d5-da30-4024-a921-0f8b1a2f33df ''--'' ''remoteuuid=a455ea74-d6fe-4f82-b796-72c20fc113fd'' ''direct=1'' ''associatedfile=pathtosomefile2'' ''--'''","--","dummy:","/home/officeusername/work/.git/annex/tmp/SHA256E-s145572--50e4d0d2fa52fb6843258509637307b8efc87d31abab834e7bc3174296689e25"]+ [2014-11-05 10:13:49 CET] Committer: committing 2 changes+ [2014-11-05 10:13:49 CET] Committer: Committing changes to git+ (Recording state in git...)+ [2014-11-05 10:13:49 CET] feed: git ["--git-dir=/home/officeusername/work/.git","--work-tree=/home/officeusername/work","-c","core.bare=false","update-index","-z","--index-info"]+ [2014-11-05 10:13:49 CET] read: git ["--git-dir=/home/officeusername/work/.git","--work-tree=/home/officeusername/work","-c","core.bare=false","symbolic-ref","HEAD"]+ [2014-11-05 10:13:49 CET] read: git ["--git-dir=/home/officeusername/work/.git","--work-tree=/home/officeusername/work","-c","core.bare=false","show-ref","--hash","refs/heads/annex/direct/master"]+ [2014-11-05 10:13:49 CET] read: git ["--git-dir=/home/officeusername/work/.git","--work-tree=/home/officeusername/work","-c","core.bare=false","write-tree"]+ [2014-11-05 10:13:49 CET] read: git ["--git-dir=/home/officeusername/work/.git","--work-tree=/home/officeusername/work","-c","core.bare=false","rev-parse","2515592b1a0b2a355b5334c315d8857619b4a9c3:"]+ [2014-11-05 10:13:49 CET] read: git ["--git-dir=/home/officeusername/work/.git","--work-tree=/home/officeusername/work","-c","core.bare=false","symbolic-ref","HEAD"]+ [2014-11-05 10:13:49 CET] read: git ["--git-dir=/home/officeusername/work/.git","--work-tree=/home/officeusername/work","-c","core.bare=false","show-ref","refs/heads/annex/direct/master"]+ [2014-11-05 10:13:49 CET] call: git ["--git-dir=/home/officeusername/work/.git","--work-tree=/home/officeusername/work","-c","core.bare=false","branch","-f","synced/master"]+ [2014-11-05 10:13:49 CET] call: git ["--git-dir=/home/officeusername/work/.git","--work-tree=/home/officeusername/work","-c","core.bare=false","branch","-f","master"]+ drop server__volume1_work_user_work pathtosomefile2+ [2014-11-05 10:13:49 CET] call: ssh ["-S",".git/annex/ssh/abf79f467a5dcf714ddaf5162ffc09ba","-o","ControlMaster=auto","-o","ControlPersist=yes","-T","username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork","git-annex-shell 'dropkey' '/volume1/work_user/work/' '--quiet' '--force' 'SHA256E-s674028--398092ddec93e33310ca8be87b4d48b2c84a873b579b80002cad3738c1461266' --uuid 05bdd8d5-da30-4024-a921-0f8b1a2f33df"]++ SHA256E-s145572--50e4d0d2fa52fb6843258509637307b8efc87d31abab834e7bc3174296689e25++Again it transfer some files...and then++ error: Ref refs/heads/synced/git-annex is at ac6d09794a274e861db1ef00295e361e15d85ca3 but expected 4a802d679a5a7e2eae3c16b2ed0a8d724b665b0a+ remote: error: failed to lock refs/heads/synced/git-annex+ To ssh://username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork/volume1/work_user/work/+ ! [remote rejected] git-annex -> synced/git-annex (failed to lock)+ error: failed to push some refs to 'ssh://username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork/volume1/work_user/work/'+ [2014-11-05 10:13:52 CET] read: git ["--git-dir=/home/officeusername/work/.git","--work-tree=/home/officeusername/work","-c","core.bare=false","push","server.me__volume1_work_user_work","master"]++ 8,454,144 2% 2.67MB/s 0:02:24 [2014-11-05 10:13:53 CET] NetWatcherFallback: fallback pushing to [Remote { name ="server__volume1_work_user_work" }]+ [2014-11-05 10:13:53 CET] call: git ["--git-dir=/home/officeusername/work/.git","--work-tree=/home/officeusername/work","-c","core.bare=false","push","server.me__volume1_work_user_work","+git-annex:refs/synced/a455ea74-d6fe-4f82-b796-72c20fc113fd/git-annex","refs/heads/annex/direct/master:refs/synced/a455ea74-d6fe-4f82-b796-72c20fc113fd/annex/direct/master"]++ 12,058,624 2% 2.86MB/s 0:02:13 To ssh://username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork/volume1/work_user/work/+ 00aa6bd..ac6d097 git-annex -> refs/synced/a455ea74-d6fe-4f82-b796-72c20fc113fd/git-annex++ 16,875,520 4% 3.34MB/s 0:01:53 [2014-11-05 10:13:55 CET] Pusher: Syncing with server__volume1_work_user_work++Again++ error: Ref refs/heads/synced/git-annex is at 383d9581c2722ab87647cf26f1ab8f25758866a4 but expected d158cddb1055adbe44973208d5562961acb0c42b+ remote: error: failed to lock refs/heads/synced/git-annex+ To ssh://username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork/volume1/work_user/work/+ ! [remote rejected] git-annex -> synced/git-annex (failed to lock)+ error: failed to push some refs to 'ssh://username@git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork/volume1/work_user/work/'+ [2014-11-05 11:13:58 CET] read: git ["--git-dir=/home/officeusername/work/.git","--work-tree=/home/officeusername/work","-c","core.bare=false","push","server__volume1_work_user_work","master"]+ ok+ [2014-11-05 11:13:58 CET] dropped somefile (from UUID "05bdd8d5-da30-4024-a921-0f8b1a2f33df") (copies now 2) : file renamed+ [2014-11-05 11:13:58 CET] TransferWatcher: transfer starting: Download UUID "05bdd8d5-da30-4024-a921-0f8b1a2f33df" someotherfile Nothing++Then some other stuff++ error: Ref refs/remotes/server__volume1_work_user_work/synced/git-annex is at 2e867456306f9ac0dd61e29c221ea3968dc4cb70 but expected 086e08a168498b84a74065c1f71e114a9868867d+ From ssh://git-annex-server-username_7000_.2Fvolume1.2Fwork_user.2Fwork/volume1/work_user/work+ ! 086e08a..2e86745 synced/git-annex -> server__volume1_work_user_work/synced/git-annex (unable to update local ref)++And so on. When submitting this, the system is still transfering files (arrow pointing to the left, so that has to be from the server to the office computer I suppose). Checking the office computer file index by running++ git ls-files | wl -l++yields the expected number of files. So, in addition to the errors above this seems a bit strange to me that it is still transferring files.++Thinking about the error messages above...is it so that the download and git repo updates work in parallel, so if git tries to update on a partly transferred files the checksum is wrong and then I get the errors above? If so, is the file transferred again later and is there a way to suppress the "failed to sync" in the webapp? ++Another thing, then I add the remote server it automatically goes into transfer mode, even though I configured it to be a backup from home before coming into the office. Maybe it is not autodetected. Would it cause problem to later change it from transfer to backup mode?++Hope someone can point me in the right direction. And thanks in advance!
+ doc/forum/Copy_contents_of_directory_to_rsync_remotes_possible__63__.mdwn view
@@ -0,0 +1,16 @@+I'm having trouble sharing an rsync remote between two users (as a "transfer" repository). `git-annex` thinks `rsync` fails because it can't set the permissions on the root directory on the destination. I've added `--perms --chmod=Dug+rwxs,Fug+rw,o-rwx` to `annex-rsync-options` so all users in the specified group on the destination can create and delete files. However, I see in the logs errors like:++ sending incremental file list+ ./+ rsync: failed to set permissions on "/home/shared-xfer/.": Operation not permitted (1)+ 2fe/985/GPGHMACSHA1--b36ce0a18718e7ea7cf9827c2748608df7152dfc/GPGHMACSHA1--b36ce0a18718e7ea7cf9827c2748608df7152dfc+ + 32,768 0% 0.00kB/s 0:00:00 + 3,359,405 100% 4.78MB/s 0:00:00 (xfr#1, to-chk=0/5)+ rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1165) [sender=3.1.1]+ [2014-10-18 15:16:24 EDT] chat: gpg ["--batch","--no-tty","--use-agent","--quiet","--trust-model","always","--batch","--passphrase-fd","22","--symmetric","--force-mdc","--no-textmode"]+ [2014-10-18 15:16:24 EDT] read: rsync ["-e","'ssh' '-S' '.git/annex/ssh/blah@blah' '-o' 'ControlMaster=auto' '-o' 'ControlPersist=yes' '-l' 'blah' '-T'","--perms","--chmod=Dug+rwxs,Fug+rw,o-rwx","--progress","--recursive","--partial","--partial-dir=.rsync-partial","/blah/.git/annex/tmp/rsynctmp/24863/","blah@blah:/home/shared-xfer/"]++ rsync failed -- run git annex again to resume file transfer++The transfer actually completes fine, except for setting permissions of the root directory on the destination (which I don't really care about, because I have manually set them to be correct). Is it possible for `git-annex` to copy the contents of the directory to rsync remotes? For the example above, instead of `/blah/.git/annex/tmp/rsynctmp/24863/`, `/blah/.git/annex/tmp/rsynctmp/24863/2fe` would work. I can't come up with an alternate solution for this server, except using the same remote user (which I'd prefer not to do).
+ doc/forum/Deduplication_in_direct_mode.mdwn view
@@ -0,0 +1,18 @@+Hi,++I'm using git-annex across a number of (indirect) repositories, making heavy use of deduplication for organizing files according to various different aspects.++Now I want to keep part of the files also on a VFAT device, which doesn't let me use indirect mode. In direct mode, however, git-annex "get" or "copy" places a separate copy of each file in the repository, whereas in indirect mode, it would just keep a single copy and maintain a number of (inexpensive) symbolic links. Since space on the VFAT drive is limited, I would like to just keep one, specific copy, not caring about the others. If I "drop" an unneeded copy of the file, it also gets replaced by the ASCII "link" in all other places that contained the same file. Therefore, I can either have multiple copies of the same data or none at all.++Imagine you have a bunch of photos sorted into a directories in meant to make it easy to find them (same file name means same file content):++./photo1.jpg+./photo2.jpg+./by-date/2014-10-27/photo1.jpg+./by-date/2014-10-28/photo2.jpg+./by-event/holiday-by-the-sea/photo1.jpg+./by-event/her-birthday/photo2.jpg++I want to keep a copy of ./photo?.jpg in the VFAT repository, but not the other (identical) files. How do I do that? Or is there really no way of doing this?++Thanks.
+ doc/forum/How_does_git_annex_handle_swp_files.mdwn view
@@ -0,0 +1,1 @@+Sometime I edit a file with lets say Emacs in the work directory which is synced with all my other computers. Then there is this .something.swp file. This is put into the queue for sync, but if I close this before it starts the sync I get an error since the file is now gone. Then I get a failed message in the webapp. This is slightly annoying. Is there a way to fix this in some way. I can of course disable the swp use, but this is default for different programs. Is there a way to exclude files? For instance all .swp files from ever getting synced?
+ doc/forum/Recovering_deleted_file_in_direct_mode.mdwn view
@@ -0,0 +1,13 @@+I accidentally deleted a file from a git-annex repository with a plain "rm". How can I restore it from other repositories that have it?++I tried using++ git annex copy --from $REMOTE $REMOVED_FILE++but git-annex complaints about++ $REMOVED_FILE not found++I suppose that I could switch to indirect mode and do checkout and older version, but I'd prefer not to. My repository contains thousands of quite big files; it would take a lot of time and the probability of something going wrong during the conversion is quite high (see other bugs reported during import).++I'm using git-annex 5.20141024-g613f396.
+ doc/forum/Using_git-annex.mdwn view
@@ -0,0 +1,73 @@+Hi,++I have created a git annex repo, added data. I then went to check it out in another location in the following way (my goal is to checkout origin, add a test file, push it back to origin).+ git clone ../test_repo/++ 282 17:19 cd test_repo/++ 283 17:19 ls++ 284 17:19 git status++ 285 17:22 git annex init DEV++ 286 17:22 touch test.txt++ 287 17:22 vi test.txt++ 288 17:22 git annex merge++ 289 17:22 git annex add test.txt++ 290 17:22 git commit -am "test"++ 291 17:23 git push origin master git-annex ++However I am getting the following error++Counting objects: 3, done.++Delta compression using up to 48 threads.++Compressing objects: 100% (3/3), done.++Writing objects: 100% (3/3), 364 bytes | 0 bytes/s, done.++Total 3 (delta 1), reused 0 (delta 0)++remote: error: refusing to update checked out branch: refs/heads/master++remote: error: By default, updating the current branch in a non-bare repository++remote: error: is denied, because it will make the index and work tree inconsistent++remote: error: with what you pushed, and will require 'git reset --hard' to match++remote: error: the work tree to HEAD.++remote: error: ++remote: error: You can set 'receive.denyCurrentBranch' configuration variable to++remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into++remote: error: its current branch; however, this is not recommended unless you++remote: error: arranged to update its work tree to match what you pushed in some++remote: error: other way.++remote: error: ++remote: error: To squelch this message and still keep the default behaviour, set++remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.++To /test_repo/++ ! [remote rejected] master -> master (branch is currently checked out)++error: failed to push some refs to '/test_repo/'+++What am I missing?
+ doc/forum/Why_is_git_annex_status_slow__63__.mdwn view
@@ -0,0 +1,20 @@+It seems that `git annex status` is much slower than `git status`, at least in direct mode. The man page does not give any hint about why it should be slower.++Does `git annex status` do something that `git status` does not?++Here is an example in a repo with 8000+ files in direct mode and with no modified files:+++ $ time git -c core.bare=false status --porcelain > /dev/null++ real 0m0.096s+ user 0m0.042s+ sys 0m0.071s++ $ time git annex status++ real 0m17.144s+ user 0m10.555s+ sys 0m1.934s++It is strange to see that `git annex status` is ~200 times slower than the bare `git status`.
doc/install.mdwn view
@@ -2,24 +2,24 @@ [[!table format=dsv header=yes data=""" detailed instructions | quick install-[[OSX]] | [download git-annex.app](http://downloads.kitenet.net/git-annex/OSX/current/)+[[OSX]] | [download git-annex.app](https://downloads.kitenet.net/git-annex/OSX/current/) [[OSX/Homebrew]] | `brew install git-annex`-[[Android]] | [download git-annex.apk](http://downloads.kitenet.net/git-annex/android/current/) **beta**-[[Linux|linux_standalone]] | [download prebuilt linux tarball](http://downloads.kitenet.net/git-annex/linux/current/)+[[Android]] | [download git-annex.apk](https://downloads.kitenet.net/git-annex/android/current/) **beta**+[[Linux|linux_standalone]] | [download prebuilt linux tarball](https://downloads.kitenet.net/git-annex/linux/current/) [[Debian]] | `apt-get install git-annex` [[Ubuntu]] | `apt-get install git-annex` [[Fedora]] | `yum install git-annex` [[FreeBSD]] | `pkg_add -r hs-git-annex`- [[ArchLinux]] | `yaourt -Sy git-annex`+ [[ArchLinux]] | `yaourt -Sy git-annex-bin` [[NixOS]] | `nix-env -i git-annex` [[Gentoo]] | `emerge git-annex` [[ScientificLinux5]] | [[openSUSE]] | [[Docker]] | -[[Windows]] | [download installer](http://downloads.kitenet.net/git-annex/windows/current/) **beta**+[[Windows]] | [download installer](https://downloads.kitenet.net/git-annex/windows/current/) **beta** """]] -All the downloads above use https for security. For added security, see+All the download links above use https for security. For added security, see [[verifying_downloads]]. ## Building it yourself
doc/install/ArchLinux.mdwn view
@@ -1,10 +1,10 @@-There are three non non-official packages for git-annex in the Archlinux User Repository. Any of these may be installed manually per [AUR guidelines](https://wiki.archlinux.org/index.php/AUR_User_Guidelines#Installing_packages) or using a wrapper such as [`yaourt`](https://wiki.archlinux.org/index.php/yaourt) shown below.+There are four non non-official packages for git-annex in the Arch Linux User Repository. Any of these may be installed manually per [AUR guidelines](https://wiki.archlinux.org/index.php/AUR_User_Guidelines#Installing_packages) or using a wrapper such as [`yaourt`](https://wiki.archlinux.org/index.php/yaourt) shown below. 1. The simplest method is to use the [git-annex-bin](https://aur.archlinux.org/packages/git-annex-bin/) package based on the [prebuilt Linux tarballs](http://downloads.kitenet.net/git-annex/linux/current/). This package includes many of the binary shims from the pre-built package. Although common Linux system utilities have been stripped in favor of normal dependencies, the pre-configured Haskell libraries included out of the box make this an easy install. The disadvantage is the resulting installation is a bit on the heavy side at nearly 100M. $ yaourt -Sy git-annex-bin -2. A more traditional source package is available at [git-annex](https://aur.archlinux.org/packages/git-annex/). This depends on a large number of Haskell packages available from a third party repository or through Cabal. This has been historically a bit problematic and the package frequently sits flagged out of date. The state of dependencies also varies, so some intervention may be required to get this option to work.+2. A more traditional source package is available at [git-annex](https://aur.archlinux.org/packages/git-annex/). This depends on a large number of Haskell packages available from a third party repository or through Cabal. You must either enable a 3rd party repo that has the dependencies or have a working Cabal installation. Unless you know what you are doing this is a bit problematic and some intervention may be required to get this option to work. The state of available dependency versions also varies so this may not work at all times. $ yaourt -Sy git-annex @@ -12,7 +12,11 @@ $ yaourt -Sy git-annex-git -Finally you may choose to forgo the Archlinux package system and install git-annex directly through cabal.+4. A Cabal sandbox build is also available++ $ yaourt -Sy git-annex-cabal++Finally you may choose to forgo the Arch Linux package system entirely and install git-annex directly through cabal. $ pacman -S git rsync curl wget gnupg openssh cabal-install $ cabal update
− doc/install/ArchLinux/comment_1_da5919c986d2ae187bc2f73de9633978._comment
@@ -1,8 +0,0 @@-[[!comment format=mdwn- username="https://www.google.com/accounts/o8/id?id=AItOawlwYMdU0H7P7MMlD0v_BcczO-ZkYHY4zuY"- nickname="Morris"- subject="Arch Linux"- date="2012-10-17T13:21:24Z"- content="""-For Arch Linux there should be the AUR package [git-annex-bin](https://aur.archlinux.org/packages.php?ID=63503) mentioned, because it's easier to install (no haskell dependencies to be installed) and is based on the prebuild linux binary tarball.-"""]]
− doc/install/ArchLinux/comment_5_cbc960cd78bf5b90e3bb6cb605d6d970._comment
@@ -1,10 +0,0 @@-[[!comment format=mdwn- username="http://alerque.com/"- nickname="Caleb"- subject="Out of date"- date="2013-12-28T22:04:24Z"- content="""-The AUR package you reference is woefully out of date. I have updated the standalone variant so it might be worth using that until the maintainer catches up.-- yaourt -Sy git-annex-standalone-"""]]
doc/install/verifying_downloads.mdwn view
@@ -9,8 +9,8 @@ For example, on Linux: - $ wget http://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-amd64.tar.gz- $ wget http://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-amd64.tar.gz.sig+ $ wget https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-amd64.tar.gz+ $ wget https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-amd64.tar.gz.sig You can then download the public key, and check that the package is signed with it.@@ -26,6 +26,8 @@ is the right key? The answer is the GPG web of trust. * Joey Hess generates these git-annex packages,- and has a GPG key, [C910D9222512E3C Joey Hess <id@joeyh.name>](http://pgp.cs.uu.nl/stats/2512E3C7.html), which has+ and has a GPG key, [C910D9222512E3C7 Joey Hess <id@joeyh.name>](http://pgp.cs.uu.nl/stats/2512E3C7.html), which has been verified and signed by many people. * Joey's GPG key has signed the git-annex distribution signing key.++Don't take this page's word about this, check it yourself!
doc/internals.mdwn view
@@ -2,8 +2,10 @@ details, and sometimes we like to dive in and tweak things by hand. Here's some documentation to that end. -## `.git/annex/objects/aa/bb/*/*`+## The .git/ directory +### `.git/annex/objects/aa/bb/*/*`+ This is where locally available file contents are actually stored. Files added to the annex get a symlink checked into git that points to the file content.@@ -27,11 +29,11 @@ changed, and `.map` files contain a list of file(s) in the work directory that contain the key. -# `.git/annex/tmp/`+### `.git/annex/tmp/` This directory contains partially transferred objects. -# `.git/annex/misctmp/`+### `.git/annex/misctmp/` This is a temp directory for miscellaneous other temp files. @@ -39,26 +41,26 @@ filesystems if desired, .git/annex/misctmp has to be on the same filesystem as the work tree and git repository. -# `.git/annex/bad/`+### `.git/annex/bad/` git-annex fsck puts any bad objects it finds in here. -# `.git/annex/transfers/`+### `.git/annex/transfers/` Contains information files for uploads and downloads that are in progress, as well as any that have failed. Used especially by the assistant. It is safe to delete these files. -# `.git/annex/ssh/`+### `.git/annex/ssh/` ssh connection caching files are written in here. -# `.git/annex/index`+### `.git/annex/index` -This is a git index file which git-annex uses for commits to the git-annex-branch.+This is a git index file which git-annex uses to stage files+when preparing commits to the git-annex branch. -# `.git/annex/journal/`+### `.git/annex/journal/` git-annex uses this to journal changes to the git-annex branch, before committing a set of changes.@@ -67,13 +69,9 @@ This branch is managed by git-annex, with the contents listed below. -The file `.git/annex/index` is a separate git index file it uses-to accumulate changes for the git-annex branch.-Also, `.git/annex/journal/` is used to record changes before they-are added to git.--This branch operates on objects exclusively. No file names will ever-be stored in this branch.+This branch is not connected to your master, etc branches. It it used for+internal tracking of information about git-annex repositories and annexed+objects. The files stored in this branch are all designed to be auto-merged using git's [[union merge driver|git-union-merge]]. So each line
− doc/news/version_5.20140919.mdwn
@@ -1,16 +0,0 @@-git-annex 5.20140919 released with [[!toggle text="these changes"]]-[[!toggleable text="""- * Security fix for S3 and glacier when using embedcreds=yes with- encryption=pubkey or encryption=hybrid. CVE-2014-6274- The creds embedded in the git repo were *not* encrypted.- git-annex enableremote will warn when used on a remote that has- this problem. For details, see:- https://git-annex.branchable.com/upgrades/insecure\_embedded\_creds/- * assistant: Detect when repository has been deleted or moved, and- automatically shut down the assistant. Closes: #[761261](http://bugs.debian.org/761261)- * Windows: Avoid crashing trying to list gpg secret keys, for gcrypt- which is not yet supported on Windows.- * WebDav: Fix enableremote crash when the remote already exists.- (Bug introduced in version 5.20140817.)- * add: In direct mode, adding an annex symlink will check it into git,- as was already done in indirect mode."""]]
+ doc/news/version_5.20141125.mdwn view
@@ -0,0 +1,8 @@+git-annex 5.20141125 released with [[!toggle text="these changes"]]+[[!toggleable text="""+ * Remove fixup code for bad bare repositories created by+ versions 5.20131118 through 5.20131127. That fixup code would+ accidentially fire when --git-dir was incorrectly+ pointed at the working tree of a git-annex repository,+ possibly resulting in data loss. Closes: #[768093](http://bugs.debian.org/768093)+ * Windows: Fix crash when user.name is not set in git config."""]]
+ doc/preferred_content/comment_11_4599023aa31ac3767a9c57b91b500f8d._comment view
@@ -0,0 +1,35 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawnDx6KWBl4PpP7qikNB7rp0hK_UvwQq_L0"+ nickname="Александр"+ subject="Dropping files from remotes"+ date="2014-11-05T16:09:54Z"+ content="""+I think I found a bug where git-annex assistant starts to drop files in remote repos when it shouldn't. It can be easily reproduced with latest version in Debian Jessy (5.20141024) like this:++Create 3 repos:++* A -- standard, archive+* m1 -- standard, manual+* m2 -- standard, manual++System has 3 files annexed: file1, file2, file3. Repo \"A\" has all three files, m1 has none, m2 has file3.++So, while in m1:++ m1 $ git annex find --want-drop --in m2+ file3++file3 shouln't be dropped from m2. There is no reason to do this. m2 is set as manual, and it shouldn't be touched in any case.++Now, let's get this file in m1:++ m1 $ git annex get file3+ get file3 (from m2...) ok+ (Recording state in git...)+ m1 $ git annex find --want-drop --in m2++So when 'file3' is present in local repo, it's not going to be dropped from m2.++I guess that rule 'present' works in local repo context while 'drop' acts on remote files.++"""]]
+ doc/todo/direct_mode_undo.mdwn view
@@ -0,0 +1,76 @@+A fairly common request is that a repo is using direct mode, and the user+has made some change, and now wants to undo it. Since direct mode doesn't+allow using `git revert`, the repo would need to be switched to indirect+mode first, which can range from annoying to really annoying to impossible+(on eg FAT).++## general approach++`git annex foo $gitcmd` could:++1. check out a local clone of the repo+2. run "git $gitcmd" inside the cline+3. merge any changes from the clone back into the direct mode repo+ and update the work tree the same as is done by `git annex merge`.++This is a general bypass for the direct mode guard. It should work anywhere+(even on FAT). It avoids problems like `git commit -a` being unsafe in+direct mode, since running such a command in a local clone, which does not+use direct mode is always safe.++One problem with it is that it can only operate on changes that have been+committed. If you've just accidentially deleted a file and want to undo+that, and haven't run `git annex sync` to commit it, you can't revert it.++Also, while this is general, I don't know if the generality is useful.+What other changes, than revert, would it make sense to do with such a+command? It could be used to check out some other branch, but step 3 above+would merge that branch back into the direct mode repo.++## git annex undo++I don't want to recapitulate all of the git commands in git-annex for+direct mode. So I don't want to add `git annex revert` and `git annex+branch` etc, etc.++So, adding `git annex undo` feels like a step down a slippery slope. But it+might be justified as providing just enough functionality to make direct+mode a lot more useful, without trying to recapitulate all the flexability +of git. Like `git annex merge` and `git annex sync` also do.++Another use case is binding `git annex undo $file` to an action in a file+manager.++Here's a design for undo:++1. Can be passed one or more files. Which may or may not exist in the work tree.+2. First, commits the current state of the files as staged in the index,+ or in the working tree. This may involve checksumming modified files.+3. Then, for each file, looks back through git history, to find the commit+ just before the most recent change that was made to that file.+ Stage the version of the file as it was in that commit.+4. Updates work tree, and leaves the changes staged+ but not committed. (To allow the user to bundle up multiple undos in a+ single commit).+6. Does not get or drop content. The content may even be completely+ missing after an undo.++Note that undoing an undo should get back to the original state. This is+why #2 commits changes first. This way, if a file has a staged change,+it gets committed, and then that commit is reverted, resulting in another+commit. Which a later run of undo can in turn revert. If it didn't commit,+the history about the staged change that was reverted would be lost.++What about undoing changes to a whole directory? It first would+need to look through the git history to find every file under that+directory. And then it would behave as if it were passed all those+files. This would be useful for reverting `rm -rf`. But it could be very+expensive. And it could lead to surprising results, like undoing a lot+of unrelated changes when running on a bunch of files in a directory+that were changed at different times.++Maybe instead of letting a directory be passed, make undo with no+parameters revert all changes made in the most recent commit.++Also, --depth could make undo look for an older commit than the most+recent one to affect the specified file.
+ doc/todo/find_unused_in_any_commit.mdwn view
@@ -0,0 +1,14 @@+`git annex unused` only looks at tags and branches. Some users would like+to drop any objects that are not pointed to by any commit, but keep any+object that any commit ever referenced.++This could be a switch, like --ever.++The implementation would need to walk the history of all branches and check+all commits. This would tend to be slow. It could look at tags+branches as+it does now as a first pass, and only do the slow part if there are objects+not referred to by the tags+branches. And, it could stop looking through+the whole commit history if there were no more objects to check. Still,+gonna be slooow. Another optimisation would be to get only the objects+changed by the commit, and not look at the whole tree as it appeared on+each commit. --[[Joey]]
+ doc/todo/make_status_show_staged_files.mdwn view
@@ -0,0 +1,23 @@+### Please describe the problem.++`git annex status` does not report the fact that some files have been added but not yet committed.++### What steps will reproduce the problem?++ $ # alwayscommit = false+ $ echo "new" > new-file+ $ git annex status+ ? new-file+ $ git annex add+ add new-file+ $ git annex status+ $++Using the `git status` command directly will show the added files++ $ git -c core.bare=false status --porcelain | grep -v '^ T'+ AT new-file++### What version of git-annex are you using? On what operating system?++git-annex version: 5.20141024-g613f396
− doc/todo/support_S3_multipart_uploads.mdwn
@@ -1,14 +0,0 @@-Did not know of this when I wrote S3 support. Ability to resume large-uploads would be good.--<http://aws.typepad.com/aws/2010/11/amazon-s3-multipart-upload.html>--Also allows supporting files > 5 gb, a S3 limit I was not aware of.--NB: It would work just as well to split the object and upload the N parts-to S3, but not bother with S3's paperwork to rejoin them into one object. -Only reasons not to do that are a) backwards compatability with -the existing S3 remote and b) this would not allow accessing the content-in S3 w/o using git-annex, which could be useful in some scenarios.----[[Joey]]
git-annex.cabal view
@@ -1,5 +1,5 @@ Name: git-annex-Version: 5.20141024+Version: 5.20141125 Cabal-Version: >= 1.8 License: GPL-3 Maintainer: Joey Hess <joey@kitenet.net>
standalone/android/Makefile view
@@ -147,7 +147,7 @@ # app, if it's also installed. cd $(GIT_ANNEX_ANDROID_SOURCETREE)/term && find -name .git -prune -o -type f -print0 | xargs -0 perl -pi -e 's/jackpal/ga/g' cd $(GIT_ANNEX_ANDROID_SOURCETREE)/term && perl -pi -e 's/Terminal Emulator/Git Annex/g' res/*/strings.xml- cd $(GIT_ANNEX_ANDROID_SOURCETREE)/term && echo y | tools/update.sh+ cd $(GIT_ANNEX_ANDROID_SOURCETREE)/term && echo y | tools/update.sh || true touch $@ source: $(GIT_ANNEX_ANDROID_SOURCETREE)
templates/documentation/about.hamlet view
@@ -9,7 +9,7 @@ For full details, see # <a href="http://git-annex.branchable.com/">the git-annex website</a>. <hr>- git-annex is © 2010-2013 Joey Hess. It is free software, licensed #+ git-annex is © 2010-2014 Joey Hess. It is free software, licensed # under the terms of the GNU General Public License, version 3 or above. # This webapp is licensed under the terms of the GNU Affero General # Public License, version 3 or above. #