From 019a0ec802384edb71fabbee67e318961780d02e Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 18 Sep 2014 18:27:37 +0000 Subject: [PATCH 001/370] Added a comment --- ...comment_1_12a797cba753168dfde9e6339c00f481._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/forum/Move_unsynced_file_in_direct_mode/comment_1_12a797cba753168dfde9e6339c00f481._comment diff --git a/doc/forum/Move_unsynced_file_in_direct_mode/comment_1_12a797cba753168dfde9e6339c00f481._comment b/doc/forum/Move_unsynced_file_in_direct_mode/comment_1_12a797cba753168dfde9e6339c00f481._comment new file mode 100644 index 0000000000..73a164da26 --- /dev/null +++ b/doc/forum/Move_unsynced_file_in_direct_mode/comment_1_12a797cba753168dfde9e6339c00f481._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="108.236.230.124" + subject="comment 1" + date="2014-09-18T18:27:37Z" + content=""" +Well, you can run `git annex assistant` or `git annex watch` and it will automatically notice the moved file and commit it. I think this is what you were trying to do when you set annex.autocommit to true (which is the default so accomplished nothing). + +But your example does show a bug: `git annex add` should add the dangling symlink to git in direct mode, as it already does in indirect mode. Fixed in [[!commit 44e7d6e1fe6e13091adbd572f66412e3601df3c5]]. +"""]] From ce0f2dd114b24d6457b38bdc9d168d31dab16bfc Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 18 Sep 2014 18:49:43 +0000 Subject: [PATCH 002/370] Added a comment --- ...comment_1_398c014921f9af957fb5e9a92ed0ef4d._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/bugs/Upload_to_S3_fails_/comment_1_398c014921f9af957fb5e9a92ed0ef4d._comment diff --git a/doc/bugs/Upload_to_S3_fails_/comment_1_398c014921f9af957fb5e9a92ed0ef4d._comment b/doc/bugs/Upload_to_S3_fails_/comment_1_398c014921f9af957fb5e9a92ed0ef4d._comment new file mode 100644 index 0000000000..a18ca1d05a --- /dev/null +++ b/doc/bugs/Upload_to_S3_fails_/comment_1_398c014921f9af957fb5e9a92ed0ef4d._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="108.236.230.124" + subject="comment 1" + date="2014-09-18T18:49:43Z" + content=""" +This is using the old hS3 library. So, each chunk is sent using a new http connection. It seems that the connection must be being closed by S3 part way through the upload of a chunk. + +It may be that the new aws library somehow avoids this problem. So, a git-annex built with the `s3-aws` branch merged in may help with this bug. OTOH, that new branch makes a single http connection be reused for all the chunks in a file, so it might also make things worse. +"""]] From 74ad8ebb0cd4c34f6b8f84d9a0bfde6b23268baf Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 18 Sep 2014 18:52:17 +0000 Subject: [PATCH 003/370] Added a comment --- ...comment_2_f33ce058c9460cf7d151e739bff0440a._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/bugs/Upload_to_S3_fails_/comment_2_f33ce058c9460cf7d151e739bff0440a._comment diff --git a/doc/bugs/Upload_to_S3_fails_/comment_2_f33ce058c9460cf7d151e739bff0440a._comment b/doc/bugs/Upload_to_S3_fails_/comment_2_f33ce058c9460cf7d151e739bff0440a._comment new file mode 100644 index 0000000000..dcf719bba7 --- /dev/null +++ b/doc/bugs/Upload_to_S3_fails_/comment_2_f33ce058c9460cf7d151e739bff0440a._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="108.236.230.124" + subject="comment 2" + date="2014-09-18T18:52:17Z" + content=""" +If you're using the new chunking system, git-annex should support resuming the upload to S3. Next time you try to send the file, it should find the chunks that were successfully sent, and resume at the chunk where it failed. + +Supporting this even for encrypted uploads was a major benefit of the new chunking system, so I hope it works...? +"""]] From 2d99b6b931313fa1a7145ece7ddcb2a66efb502c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 18 Sep 2014 14:54:35 -0400 Subject: [PATCH 004/370] mention old-style chunking --- doc/chunking.mdwn | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/doc/chunking.mdwn b/doc/chunking.mdwn index 119a85c77f..71b330d64a 100644 --- a/doc/chunking.mdwn +++ b/doc/chunking.mdwn @@ -28,4 +28,16 @@ To change the chunk size, pass a `chunk=nnMiB` parameter to `git annex enableremote`. This only affects the chunk sized used when storing new content. +# old-style chunking + +Note that older versions of git-annex used a different chunk method, which +was configured by passing `chunksize=nnMib` when initializing a remote. + +The old-style chunking had a number of problems, including being less +efficient, and not allowing resumes of encrypted uploads. + +It's not possible to change a remote using that old chunking method to the +new one, but git-annex continues to support the old-style chunking to +support such remotes. + See also: [[design document|design/assistant/chunks]] From 2ebcc69d638c717cb02ddb84d8bf25895c33f839 Mon Sep 17 00:00:00 2001 From: xn Date: Thu, 18 Sep 2014 19:03:30 +0000 Subject: [PATCH 005/370] Added a comment --- ..._f3aec24668c35780a033f2b035df10ee._comment | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 doc/forum/Move_unsynced_file_in_direct_mode/comment_2_f3aec24668c35780a033f2b035df10ee._comment diff --git a/doc/forum/Move_unsynced_file_in_direct_mode/comment_2_f3aec24668c35780a033f2b035df10ee._comment b/doc/forum/Move_unsynced_file_in_direct_mode/comment_2_f3aec24668c35780a033f2b035df10ee._comment new file mode 100644 index 0000000000..971e70cdca --- /dev/null +++ b/doc/forum/Move_unsynced_file_in_direct_mode/comment_2_f3aec24668c35780a033f2b035df10ee._comment @@ -0,0 +1,20 @@ +[[!comment format=mdwn + username="xn" + ip="71.59.214.243" + subject="comment 2" + date="2014-09-18T19:03:30Z" + content=""" +Thanks for tracking down that bug and for clearing up my confusion about `annex.autocommit`, Joey. + +I didn't realize `annex.autocommit=true` is only used by `git annex assistant` and `git annex watch`. I thought that running `git annex sync` with `annex.autocommit=true` would also commit the change. + +A few small changes to `git-annex(1)` could clarify: + + sync [remote ...] + ... + The sync process involves first committing all local *staged* changes... + + annex.autocommit + Set to false to prevent git-annex assistant and *git-annex watch* from automatically committing changes to files in the repository. + +"""]] From d84eab8a8af0c8cfa85de5baabfd9a2cf306f968 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 18 Sep 2014 15:18:52 -0400 Subject: [PATCH 006/370] Revert "S3, Glacier, WebDAV: Fix bug that prevented accessing the creds when the repository was configured with encryption=shared embedcreds=yes." This reverts commit fbdeeeed5fa276d94be587c8916d725eddcaf546. I can find no basis for that commit and think that I made it in error. setRemoteCredPair always encrypts using the cipher from remoteCipher, even when the cipher is shared. --- Creds.hs | 16 ++++++---------- Remote/Helper/Encryptable.hs | 9 +++------ debian/changelog | 2 ++ doc/bugs/box.com.mdwn | 2 ++ 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/Creds.hs b/Creds.hs index 73d631ff7d..7273ed966b 100644 --- a/Creds.hs +++ b/Creds.hs @@ -23,7 +23,7 @@ import Annex.Perms import Utility.FileMode import Crypto import Types.Remote (RemoteConfig, RemoteConfigKey) -import Remote.Helper.Encryptable (remoteCipher, remoteCipher', embedCreds) +import Remote.Helper.Encryptable (remoteCipher, embedCreds) import Utility.Env (getEnv) import qualified Data.ByteString.Lazy.Char8 as L @@ -85,19 +85,15 @@ getRemoteCredPair c storage = maybe fromcache (return . Just) =<< fromenv fromcache = maybe fromconfig (return . Just) =<< readCacheCredPair storage fromconfig = case credPairRemoteKey storage of Just key -> do - mcipher <- remoteCipher' c - case (mcipher, M.lookup key c) of - (_, Nothing) -> return Nothing - (Just (_cipher, SharedCipher {}), Just bcreds) -> - -- When using a shared cipher, the - -- creds are not stored encrypted. - fromcreds $ fromB64 bcreds - (Just (cipher, _), Just enccreds) -> do + mcipher <- remoteCipher c + case (M.lookup key c, mcipher) of + (Nothing, _) -> return Nothing + (Just enccreds, Just cipher) -> do creds <- liftIO $ decrypt cipher (feedBytes $ L.pack $ fromB64 enccreds) (readBytes $ return . L.unpack) fromcreds creds - (Nothing, Just bcreds) -> + (Just bcreds, Nothing) -> fromcreds $ fromB64 bcreds Nothing -> return Nothing fromcreds creds = case decodeCredPair creds of diff --git a/Remote/Helper/Encryptable.hs b/Remote/Helper/Encryptable.hs index 69216a793d..dd032ce337 100644 --- a/Remote/Helper/Encryptable.hs +++ b/Remote/Helper/Encryptable.hs @@ -71,21 +71,18 @@ encryptionSetup c = maybe genCipher updateCipher $ extractCipher c {- Gets encryption Cipher. The decrypted Ciphers are cached in the Annex - state. -} remoteCipher :: RemoteConfig -> Annex (Maybe Cipher) -remoteCipher = fmap fst <$$> remoteCipher' - -remoteCipher' :: RemoteConfig -> Annex (Maybe (Cipher, StorableCipher)) -remoteCipher' c = go $ extractCipher c +remoteCipher c = go $ extractCipher c where go Nothing = return Nothing go (Just encipher) = do cache <- Annex.getState Annex.ciphers case M.lookup encipher cache of - Just cipher -> return $ Just (cipher, encipher) + Just cipher -> return $ Just cipher Nothing -> do showNote "gpg" cipher <- liftIO $ decryptCipher encipher Annex.changeState (\s -> s { Annex.ciphers = M.insert encipher cipher cache }) - return $ Just (cipher, encipher) + return $ Just cipher {- Checks if the remote's config allows storing creds in the remote's config. - diff --git a/debian/changelog b/debian/changelog index d0bff041d3..91b2c8986d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,6 +8,8 @@ git-annex (5.20140916) UNRELEASED; urgency=medium (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. + * Fix reversion in handling creds with encryption=shared embedcreds=yes + introduced in 5.20140817. -- Joey Hess Mon, 15 Sep 2014 14:39:17 -0400 diff --git a/doc/bugs/box.com.mdwn b/doc/bugs/box.com.mdwn index 7f3bcf58fa..6f431b2750 100644 --- a/doc/bugs/box.com.mdwn +++ b/doc/bugs/box.com.mdwn @@ -31,3 +31,5 @@ Mac OS X 10.9.4 # End of transcript or log. """]] + +> [[fixed|done]] --[[Joey]] From ac635f7adaea58f49783be0e7f906ee3f7977033 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 18 Sep 2014 19:28:56 +0000 Subject: [PATCH 007/370] Added a comment --- ...comment_1_d904a08519424cb9f599b2154d1ef953._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/bugs/box.com/comment_1_d904a08519424cb9f599b2154d1ef953._comment diff --git a/doc/bugs/box.com/comment_1_d904a08519424cb9f599b2154d1ef953._comment b/doc/bugs/box.com/comment_1_d904a08519424cb9f599b2154d1ef953._comment new file mode 100644 index 0000000000..d230e52aa8 --- /dev/null +++ b/doc/bugs/box.com/comment_1_d904a08519424cb9f599b2154d1ef953._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="108.236.230.124" + subject="comment 1" + date="2014-09-18T19:28:56Z" + content=""" +Ok, I managed to reproduce this. In my case, there was no \"Bad creds\" message because the broken creds data it used happened to contain a newline, but same problem; the creds stored by the webapp are not used properly when re-enabling the box.com remote elsewhere. Same problem would affect other special remotes using embedded creds and shared encryption. + +Seems to be a bug introduced in [[!commit fbdeeeed5fa276d94be587c8916d725eddcaf546]]. Despite what the commit says, the embedded creds did get encrypted with the shared gpg key. I have reverted that commit to fix this problem. +"""]] From e26f28f5fce6b66113d29d4e581eea2bd2dd1e8f Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 18 Sep 2014 19:41:39 +0000 Subject: [PATCH 008/370] Added a comment --- ...comment_1_fea4e2317f850d6166480cddba088ae5._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/forum/SSH_remote_transfers_queued_but_no_movement/comment_1_fea4e2317f850d6166480cddba088ae5._comment diff --git a/doc/forum/SSH_remote_transfers_queued_but_no_movement/comment_1_fea4e2317f850d6166480cddba088ae5._comment b/doc/forum/SSH_remote_transfers_queued_but_no_movement/comment_1_fea4e2317f850d6166480cddba088ae5._comment new file mode 100644 index 0000000000..d9bf5a97f1 --- /dev/null +++ b/doc/forum/SSH_remote_transfers_queued_but_no_movement/comment_1_fea4e2317f850d6166480cddba088ae5._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="108.236.230.124" + subject="comment 1" + date="2014-09-18T19:41:39Z" + content=""" +First, take a look at the output of `ps fax` .. you should see a `git-annex assistant` process and near it there ought to be a `git annex transferkeys` process. See if that process has any children under it, like perhaps a rsync. If so, it might just be stalled talking to the host for some reason. + +The best way to debug it further is probably to run `git annex copy --to $remote` at the command line, passing the name of your remote repository. See if it also stalls there. If so, add a --debug and you can see the actual rsync commands it's using, and perhaps work out the problem from there. +"""]] From fe994e58e5762cb92c12a4726e5a4400972f67fd Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 18 Sep 2014 15:43:20 -0400 Subject: [PATCH 009/370] clarify that sync only commits changes to files already added to the repo --- doc/git-annex.mdwn | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn index 71f0c0bebb..011b6d91fa 100644 --- a/doc/git-annex.mdwn +++ b/doc/git-annex.mdwn @@ -148,7 +148,8 @@ subdirectories). Or specify `--fast` to sync with the remotes with the lowest annex-cost value. - The sync process involves first committing all local changes, + The sync process involves first committing any local changes to files + that have previously been added to the repository, then fetching and merging the `synced/master` and the `git-annex` branch from the remote repositories, and finally pushing the changes back to those branches on the remote repositories. You can use standard git From 2f3c3aa01ff0eb1dfdf1e30ff29fef40ed8fd167 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 18 Sep 2014 17:07:17 -0400 Subject: [PATCH 010/370] glacier, S3: Fix bug that caused embedded creds to not be encypted using the remote's key. encryptionSetup must be called before setRemoteCredPair. Otherwise, the RemoteConfig doesn't have the cipher in it, and so no cipher is used to encrypt the embedded creds. This is a security fix for non-shared encryption methods! For encryption=shared, there's no security problem, just an inconsistentency in whether the embedded creds are encrypted. This is very important to get right, so used some types to help ensure that setRemoteCredPair is only run after encryptionSetup. Note that the external special remote bypasses the type safety, since creds can be set after the initial remote config, if the external special remote program requests it. Also note that IA remotes never use encryption, so encryptionSetup is not run for them at all, and again the type safety is bypassed. This leaves two open questions: 1. What to do about S3 and glacier remotes that were set up using encryption=pubkey/hybrid with embedcreds? Such a git repo has a security hole embedded in it, and this needs to be communicated to the user. Is the changelog enough? 2. enableremote won't work in such a repo, because git-annex will try to decrypt the embedded creds, which are not encrypted, so fails. This needs to be dealt with, especially for ecryption=shared repos, which are not really broken, just inconsistently configured. Noticing that problem for encryption=shared is what led to commit fbdeeeed5fa276d94be587c8916d725eddcaf546, which tried to fix the problem by not decrypting the embedded creds. This commit was sponsored by Josh Taylor. --- Creds.hs | 17 +++++++++++------ Remote/Bup.hs | 2 +- Remote/Ddar.hs | 2 +- Remote/Directory.hs | 2 +- Remote/External.hs | 4 ++-- Remote/GCrypt.hs | 2 +- Remote/Glacier.hs | 12 ++++++------ Remote/Helper/Encryptable.hs | 35 ++++++++++++++++++++++++++++++----- Remote/Hook.hs | 2 +- Remote/Rsync.hs | 2 +- Remote/S3.hs | 13 +++++++------ Remote/WebDAV.hs | 4 ++-- debian/changelog | 5 +++-- doc/bugs/box.com.mdwn | 2 -- 14 files changed, 67 insertions(+), 37 deletions(-) diff --git a/Creds.hs b/Creds.hs index 7273ed966b..aad3996bff 100644 --- a/Creds.hs +++ b/Creds.hs @@ -23,7 +23,7 @@ import Annex.Perms import Utility.FileMode import Crypto import Types.Remote (RemoteConfig, RemoteConfigKey) -import Remote.Helper.Encryptable (remoteCipher, embedCreds) +import Remote.Helper.Encryptable (remoteCipher, embedCreds, EncryptionIsSetup) import Utility.Env (getEnv) import qualified Data.ByteString.Lazy.Char8 as L @@ -40,12 +40,17 @@ data CredPairStorage = CredPairStorage {- Stores creds in a remote's configuration, if the remote allows - that. Otherwise, caches them locally. - - The creds are found in storage if not provided. -} -setRemoteCredPair :: RemoteConfig -> CredPairStorage -> Maybe CredPair -> Annex RemoteConfig -setRemoteCredPair c storage Nothing = - maybe (return c) (setRemoteCredPair c storage . Just) + - The creds are found in storage if not provided. + - + - The remote's configuration should have already had a cipher stored in it + - if that's going to be done, so that the creds can be encrypted using the + - cipher. The EncryptionIsSetup phantom type ensures that is the case. + -} +setRemoteCredPair :: EncryptionIsSetup -> RemoteConfig -> CredPairStorage -> Maybe CredPair -> Annex RemoteConfig +setRemoteCredPair encsetup c storage Nothing = + maybe (return c) (setRemoteCredPair encsetup c storage . Just) =<< getRemoteCredPair c storage -setRemoteCredPair c storage (Just creds) +setRemoteCredPair _ c storage (Just creds) | embedCreds c = case credPairRemoteKey storage of Nothing -> localcache Just key -> storeconfig key =<< remoteCipher c diff --git a/Remote/Bup.hs b/Remote/Bup.hs index 0de0e29466..cc64d6ff54 100644 --- a/Remote/Bup.hs +++ b/Remote/Bup.hs @@ -94,7 +94,7 @@ bupSetup mu _ c = do -- verify configuration is sane let buprepo = fromMaybe (error "Specify buprepo=") $ M.lookup "buprepo" c - c' <- encryptionSetup c + (c', _encsetup) <- encryptionSetup c -- bup init will create the repository. -- (If the repository already exists, bup init again appears safe.) diff --git a/Remote/Ddar.hs b/Remote/Ddar.hs index fc226ddff7..1db482b478 100644 --- a/Remote/Ddar.hs +++ b/Remote/Ddar.hs @@ -84,7 +84,7 @@ ddarSetup mu _ c = do -- verify configuration is sane let ddarrepo = fromMaybe (error "Specify ddarrepo=") $ M.lookup "ddarrepo" c - c' <- encryptionSetup c + (c', _encsetup) <- encryptionSetup c -- The ddarrepo is stored in git config, as well as this repo's -- persistant state, so it can vary between hosts. diff --git a/Remote/Directory.hs b/Remote/Directory.hs index 3137c95346..fa4d027ae8 100644 --- a/Remote/Directory.hs +++ b/Remote/Directory.hs @@ -81,7 +81,7 @@ directorySetup mu _ c = do absdir <- liftIO $ absPath dir liftIO $ unlessM (doesDirectoryExist absdir) $ error $ "Directory does not exist: " ++ absdir - c' <- encryptionSetup c + (c', _encsetup) <- encryptionSetup c -- The directory is stored in git config, not in this remote's -- persistant state, so it can vary between hosts. diff --git a/Remote/External.hs b/Remote/External.hs index 6ba0e2f3a8..c3ea7e1db9 100644 --- a/Remote/External.hs +++ b/Remote/External.hs @@ -77,7 +77,7 @@ externalSetup mu _ c = do u <- maybe (liftIO genUUID) return mu let externaltype = fromMaybe (error "Specify externaltype=") $ M.lookup "externaltype" c - c' <- encryptionSetup c + (c', _encsetup) <- encryptionSetup c external <- newExternal externaltype u c' handleRequest external INITREMOTE Nothing $ \resp -> case resp of @@ -191,7 +191,7 @@ handleRequest' lck external req mp responsehandler send $ VALUE value handleRemoteRequest (SETCREDS setting login password) = do c <- liftIO $ atomically $ readTMVar $ externalConfig external - c' <- setRemoteCredPair c (credstorage setting) $ + c' <- setRemoteCredPair encryptionAlreadySetup c (credstorage setting) $ Just (login, password) void $ liftIO $ atomically $ swapTMVar (externalConfig external) c' handleRemoteRequest (GETCREDS setting) = do diff --git a/Remote/GCrypt.hs b/Remote/GCrypt.hs index a95f21669c..f1d561d23c 100644 --- a/Remote/GCrypt.hs +++ b/Remote/GCrypt.hs @@ -168,7 +168,7 @@ gCryptSetup mu _ c = go $ M.lookup "gitrepo" c remotename = fromJust (M.lookup "name" c) go Nothing = error "Specify gitrepo=" go (Just gitrepo) = do - c' <- encryptionSetup c + (c', _encsetup) <- encryptionSetup c inRepo $ Git.Command.run [ Params "remote add" , Param remotename diff --git a/Remote/Glacier.hs b/Remote/Glacier.hs index 18038a79cf..ba3cc558f0 100644 --- a/Remote/Glacier.hs +++ b/Remote/Glacier.hs @@ -76,12 +76,12 @@ gen r u c gc = new <$> remoteCost gc veryExpensiveRemoteCost glacierSetup :: Maybe UUID -> Maybe CredPair -> RemoteConfig -> Annex (RemoteConfig, UUID) glacierSetup mu mcreds c = do u <- maybe (liftIO genUUID) return mu - c' <- setRemoteCredPair c (AWS.creds u) mcreds - glacierSetup' (isJust mu) u c' -glacierSetup' :: Bool -> UUID -> RemoteConfig -> Annex (RemoteConfig, UUID) -glacierSetup' enabling u c = do - c' <- encryptionSetup c - let fullconfig = c' `M.union` defaults + glacierSetup' (isJust mu) u mcreds c +glacierSetup' :: Bool -> UUID -> Maybe CredPair -> RemoteConfig -> Annex (RemoteConfig, UUID) +glacierSetup' enabling u mcreds c = do + (c', encsetup) <- encryptionSetup c + c'' <- setRemoteCredPair encsetup c' (AWS.creds u) mcreds + let fullconfig = c'' `M.union` defaults unless enabling $ genVault fullconfig u gitConfigSpecialRemote u fullconfig "glacier" "true" diff --git a/Remote/Helper/Encryptable.hs b/Remote/Helper/Encryptable.hs index dd032ce337..e8e9d3bf13 100644 --- a/Remote/Helper/Encryptable.hs +++ b/Remote/Helper/Encryptable.hs @@ -5,7 +5,17 @@ - Licensed under the GNU GPL version 3 or higher. -} -module Remote.Helper.Encryptable where +module Remote.Helper.Encryptable ( + EncryptionIsSetup, + encryptionSetup, + noEncryptionUsed, + encryptionAlreadySetup, + remoteCipher, + embedCreds, + cipherKey, + storeCipher, + extractCipher, +) where import qualified Data.Map as M @@ -16,11 +26,26 @@ import Types.Crypto import qualified Annex import Utility.Base64 +-- Used to ensure that encryption has been set up before trying to +-- eg, store creds in the remote config that would need to use the +-- encryption setup. +data EncryptionIsSetup = EncryptionIsSetup | NoEncryption + +-- Remotes that don't use encryption can use this instead of +-- encryptionSetup. +noEncryptionUsed :: EncryptionIsSetup +noEncryptionUsed = NoEncryption + +-- Using this avoids the type-safe check, so you'd better be sure +-- of what you're doing. +encryptionAlreadySetup :: EncryptionIsSetup +encryptionAlreadySetup = EncryptionIsSetup + {- Encryption setup for a remote. The user must specify whether to use - an encryption key, or not encrypt. An encrypted cipher is created, or is - updated to be accessible to an additional encryption key. Or the user - could opt to use a shared cipher, which is stored unencrypted. -} -encryptionSetup :: RemoteConfig -> Annex RemoteConfig +encryptionSetup :: RemoteConfig -> Annex (RemoteConfig, EncryptionIsSetup) encryptionSetup c = maybe genCipher updateCipher $ extractCipher c where -- The type of encryption @@ -28,7 +53,7 @@ encryptionSetup c = maybe genCipher updateCipher $ extractCipher c -- Generate a new cipher, depending on the chosen encryption scheme genCipher = case encryption of _ | M.member "cipher" c || M.member "cipherkeys" c -> cannotchange - Just "none" -> return c + Just "none" -> return (c, NoEncryption) Just "shared" -> use "encryption setup" . genSharedCipher =<< highRandomQuality -- hybrid encryption is the default when a keyid is @@ -48,7 +73,7 @@ encryptionSetup c = maybe genCipher updateCipher $ extractCipher c cannotchange = error "Cannot set encryption type of existing remotes." -- Update an existing cipher if possible. updateCipher v = case v of - SharedCipher _ | maybe True (== "shared") encryption -> return c' + SharedCipher _ | maybe True (== "shared") encryption -> return (c', EncryptionIsSetup) EncryptedCipher _ variant _ | maybe True (== if variant == Hybrid then "hybrid" else "pubkey") encryption -> use "encryption update" $ updateEncryptedCipher newkeys v @@ -57,7 +82,7 @@ encryptionSetup c = maybe genCipher updateCipher $ extractCipher c showNote m cipher <- liftIO a showNote $ describeCipher cipher - return $ storeCipher c' cipher + return (storeCipher c' cipher, EncryptionIsSetup) highRandomQuality = (&&) (maybe True ( /= "false") $ M.lookup "highRandomQuality" c) <$> fmap not (Annex.getState Annex.fast) diff --git a/Remote/Hook.hs b/Remote/Hook.hs index 8e6ac439dc..45a0ae742c 100644 --- a/Remote/Hook.hs +++ b/Remote/Hook.hs @@ -70,7 +70,7 @@ hookSetup mu _ c = do u <- maybe (liftIO genUUID) return mu let hooktype = fromMaybe (error "Specify hooktype=") $ M.lookup "hooktype" c - c' <- encryptionSetup c + (c', _encsetup) <- encryptionSetup c gitConfigSpecialRemote u c' "hooktype" hooktype return (c', u) diff --git a/Remote/Rsync.hs b/Remote/Rsync.hs index 698d733e61..643411149d 100644 --- a/Remote/Rsync.hs +++ b/Remote/Rsync.hs @@ -138,7 +138,7 @@ rsyncSetup mu _ c = do -- verify configuration is sane let url = fromMaybe (error "Specify rsyncurl=") $ M.lookup "rsyncurl" c - c' <- encryptionSetup c + (c', _encsetup) <- encryptionSetup c -- The rsyncurl is stored in git config, not only in this remote's -- persistant state, so it can vary between hosts. diff --git a/Remote/S3.hs b/Remote/S3.hs index ae1acd531b..90eb8c6916 100644 --- a/Remote/S3.hs +++ b/Remote/S3.hs @@ -77,10 +77,9 @@ gen r u c gc = new <$> remoteCost gc expensiveRemoteCost s3Setup :: Maybe UUID -> Maybe CredPair -> RemoteConfig -> Annex (RemoteConfig, UUID) s3Setup mu mcreds c = do u <- maybe (liftIO genUUID) return mu - c' <- setRemoteCredPair c (AWS.creds u) mcreds - s3Setup' u c' -s3Setup' :: UUID -> RemoteConfig -> Annex (RemoteConfig, UUID) -s3Setup' u c = if isIA c then archiveorg else defaulthost + s3Setup' u mcreds c +s3Setup' :: UUID -> Maybe CredPair -> RemoteConfig -> Annex (RemoteConfig, UUID) +s3Setup' u mcreds c = if isIA c then archiveorg else defaulthost where remotename = fromJust (M.lookup "name" c) defbucket = remotename ++ "-" ++ fromUUID u @@ -97,13 +96,15 @@ s3Setup' u c = if isIA c then archiveorg else defaulthost return (fullconfig, u) defaulthost = do - c' <- encryptionSetup c - let fullconfig = c' `M.union` defaults + (c', encsetup) <- encryptionSetup c + c'' <- setRemoteCredPair encsetup c' (AWS.creds u) mcreds + let fullconfig = c'' `M.union` defaults genBucket fullconfig u use fullconfig archiveorg = do showNote "Internet Archive mode" + void $ setRemoteCredPair noEncryptionUsed c (AWS.creds u) mcreds -- Ensure user enters a valid bucket name, since -- this determines the name of the archive.org item. let bucket = replace " " "-" $ map toLower $ diff --git a/Remote/WebDAV.hs b/Remote/WebDAV.hs index d427d67a9e..d906866087 100644 --- a/Remote/WebDAV.hs +++ b/Remote/WebDAV.hs @@ -81,11 +81,11 @@ webdavSetup mu mcreds c = do url <- case M.lookup "url" c of Nothing -> error "Specify url=" Just url -> return url - c' <- encryptionSetup c + (c', encsetup) <- encryptionSetup c creds <- maybe (getCreds c' u) (return . Just) mcreds testDav url creds gitConfigSpecialRemote u c' "webdav" "true" - c'' <- setRemoteCredPair c' (davCreds u) creds + c'' <- setRemoteCredPair encsetup c' (davCreds u) creds return (c'', u) -- Opens a http connection to the DAV server, which will be reused diff --git a/debian/changelog b/debian/changelog index 91b2c8986d..ffb760b7be 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,8 @@ git-annex (5.20140916) UNRELEASED; urgency=medium + * Security fix for S3 and glacier when using embedcreds=yes with + encryption=pubkey or encryption=hybrid. + The creds embedded in the git repo were *not* encrypted. * assistant: Detect when repository has been deleted or moved, and automatically shut down the assistant. Closes: #761261 * Windows: Avoid crashing trying to list gpg secret keys, for gcrypt @@ -8,8 +11,6 @@ git-annex (5.20140916) UNRELEASED; urgency=medium (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. - * Fix reversion in handling creds with encryption=shared embedcreds=yes - introduced in 5.20140817. -- Joey Hess Mon, 15 Sep 2014 14:39:17 -0400 diff --git a/doc/bugs/box.com.mdwn b/doc/bugs/box.com.mdwn index 6f431b2750..7f3bcf58fa 100644 --- a/doc/bugs/box.com.mdwn +++ b/doc/bugs/box.com.mdwn @@ -31,5 +31,3 @@ Mac OS X 10.9.4 # End of transcript or log. """]] - -> [[fixed|done]] --[[Joey]] From 0ed33c8b742bd94b2afefd284943e9efe8502d2c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 18 Sep 2014 17:58:03 -0400 Subject: [PATCH 011/370] deal with old repositories with non-encrypted creds See 2f3c3aa01ff0eb1dfdf1e30ff29fef40ed8fd167 for backstory about how a repo could be in this state. When decryption fails, the repo must be using non-encrypted creds. Note that creds are encrypted/decrypted using the encryption cipher which is stored in the repo, so the decryption cannot fail due to missing gpg keys etc. (For !shared encryptiom, the cipher is iteself encrypted using some gpg key(s), and the decryption of the cipher happens earlier, so not affected by this change. Print a warning message for !shared repos, and continue on using the cipher. Wrote a page explaining what users hit by this bug should do. This commit was sponsored by Samuel Tardieu. --- Creds.hs | 26 ++++++++++++----- Remote/Helper/Encryptable.hs | 12 +++++--- debian/changelog | 3 ++ doc/upgrades/insecure_embedded_creds.mdwn | 34 +++++++++++++++++++++++ 4 files changed, 64 insertions(+), 11 deletions(-) create mode 100644 doc/upgrades/insecure_embedded_creds.mdwn diff --git a/Creds.hs b/Creds.hs index aad3996bff..f9b8c4ec65 100644 --- a/Creds.hs +++ b/Creds.hs @@ -23,7 +23,7 @@ import Annex.Perms import Utility.FileMode import Crypto import Types.Remote (RemoteConfig, RemoteConfigKey) -import Remote.Helper.Encryptable (remoteCipher, embedCreds, EncryptionIsSetup) +import Remote.Helper.Encryptable (remoteCipher, remoteCipher', embedCreds, EncryptionIsSetup) import Utility.Env (getEnv) import qualified Data.ByteString.Lazy.Char8 as L @@ -90,20 +90,32 @@ getRemoteCredPair c storage = maybe fromcache (return . Just) =<< fromenv fromcache = maybe fromconfig (return . Just) =<< readCacheCredPair storage fromconfig = case credPairRemoteKey storage of Just key -> do - mcipher <- remoteCipher c + mcipher <- remoteCipher' c case (M.lookup key c, mcipher) of (Nothing, _) -> return Nothing - (Just enccreds, Just cipher) -> do - creds <- liftIO $ decrypt cipher - (feedBytes $ L.pack $ fromB64 enccreds) - (readBytes $ return . L.unpack) - fromcreds creds + (Just enccreds, Just (cipher, storablecipher)) -> + fromenccreds enccreds cipher storablecipher (Just bcreds, Nothing) -> fromcreds $ fromB64 bcreds Nothing -> return Nothing + fromenccreds enccreds cipher storablecipher = do + mcreds <- liftIO $ catchMaybeIO $ decrypt cipher + (feedBytes $ L.pack $ fromB64 enccreds) + (readBytes $ return . L.unpack) + case mcreds of + Just creds -> fromcreds creds + Nothing -> do + -- Work around un-encrypted creds storage + -- bug in old S3 and glacier remotes. + -- Not a problem for shared cipher. + case storablecipher of + SharedCipher {} -> showLongNote "gpg error above was caused by an old git-annex bug in credentials storage. Working around it.." + _ -> warning "*** Insecure credentials storage detected for this remote! See https://git-annex.branchable.com/upgrades/insecure_embedded_creds/" + fromcreds $ fromB64 enccreds fromcreds creds = case decodeCredPair creds of Just credpair -> do writeCacheCredPair credpair storage + return $ Just credpair _ -> error "bad creds" diff --git a/Remote/Helper/Encryptable.hs b/Remote/Helper/Encryptable.hs index e8e9d3bf13..05f3fc3f9b 100644 --- a/Remote/Helper/Encryptable.hs +++ b/Remote/Helper/Encryptable.hs @@ -11,6 +11,7 @@ module Remote.Helper.Encryptable ( noEncryptionUsed, encryptionAlreadySetup, remoteCipher, + remoteCipher', embedCreds, cipherKey, storeCipher, @@ -93,21 +94,24 @@ encryptionSetup c = maybe genCipher updateCipher $ extractCipher c -- remotes (while being backward-compatible). [ "keyid", "keyid+", "keyid-", "highRandomQuality" ] +remoteCipher :: RemoteConfig -> Annex (Maybe Cipher) +remoteCipher = fmap fst <$$> remoteCipher' + {- Gets encryption Cipher. The decrypted Ciphers are cached in the Annex - state. -} -remoteCipher :: RemoteConfig -> Annex (Maybe Cipher) -remoteCipher c = go $ extractCipher c +remoteCipher' :: RemoteConfig -> Annex (Maybe (Cipher, StorableCipher)) +remoteCipher' c = go $ extractCipher c where go Nothing = return Nothing go (Just encipher) = do cache <- Annex.getState Annex.ciphers case M.lookup encipher cache of - Just cipher -> return $ Just cipher + Just cipher -> return $ Just (cipher, encipher) Nothing -> do showNote "gpg" cipher <- liftIO $ decryptCipher encipher Annex.changeState (\s -> s { Annex.ciphers = M.insert encipher cipher cache }) - return $ Just cipher + return $ Just (cipher, encipher) {- Checks if the remote's config allows storing creds in the remote's config. - diff --git a/debian/changelog b/debian/changelog index ffb760b7be..5bfba77ed0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,9 @@ git-annex (5.20140916) UNRELEASED; urgency=medium * Security fix for S3 and glacier when using embedcreds=yes with encryption=pubkey or encryption=hybrid. 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 * Windows: Avoid crashing trying to list gpg secret keys, for gcrypt diff --git a/doc/upgrades/insecure_embedded_creds.mdwn b/doc/upgrades/insecure_embedded_creds.mdwn new file mode 100644 index 0000000000..b0554a5d87 --- /dev/null +++ b/doc/upgrades/insecure_embedded_creds.mdwn @@ -0,0 +1,34 @@ +git-annex had a bug in the S3 and Glacier remotes where if embedcreds=yes +was set, and the remote used encryption=pubkey or encryption=hybrid, +the embedded AWS credentials were stored in the git repository +in (effectively) plaintext, not encrypted as they were supposed to be. + +That means that anyone who gets a copy of the git repository can extract the +AWS credentials from it. Which would be bad.. + +Fixed versions of git-annex will detect this problem when enabling such a +remote, and print a warning message (including a pointer to this web page). + +This message will only be printed one time, since git-annex will +change the embedded credentials to be encrypted properly. +However, this leaves the non-encrypted version still in the git history. + +If your repository has this problem, you have two courses of action to fix +it: + +1. Change your AWS credentials, so the ones stored in the clear in git + won't be used. + + After changing the credentials, make sure you have a + fixed version of git-annex, and you can then re-embed the new creds + into the repository, encrypted this time, by setting the + `AWS_SECRET_ACCESS_KEY` and `AWS_ACCESS_KEY_ID` environment variables, + and running `git annex enableremote $remotename embedcreds=yes` + +2. Remove the history of the git-annex branch of the repository. + You can use `git annex forget`` to do that; note that it will + remove other historical data too. + +3. If you're the only one who has access to the repository, you could decide + to leave it as-is. It's no more insecure than if you had used + encryption=shared in the first place when setting it up. From 417087d532d715ff7aa1da2f920ca18962c7a5d5 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 18 Sep 2014 18:24:20 -0400 Subject: [PATCH 012/370] devblog --- .../day_221__another_fine_day_of_bugfixing.mdwn | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/devblog/day_221__another_fine_day_of_bugfixing.mdwn diff --git a/doc/devblog/day_221__another_fine_day_of_bugfixing.mdwn b/doc/devblog/day_221__another_fine_day_of_bugfixing.mdwn new file mode 100644 index 0000000000..0c26f57359 --- /dev/null +++ b/doc/devblog/day_221__another_fine_day_of_bugfixing.mdwn @@ -0,0 +1,10 @@ +Working through the forum posts and bugs. Backlog is down to 95. + +Discovered the first known security hole in git-annex! +Turns out that S3 and Glacier remotes that were configured with embedcreds=yes and encryption=pubkey or encryption=hybrid +didn't actually encrypt the AWS credentials that get embedded into the git +repo. This doesn't affect any repos set up by the assistant. + +I've fixed the problem and am going to make a release soon. +If your repo is affected, see +[[upgrades/insecure_embedded_creds]] for what to do about it. From 9428a3b7598fb7ad2f2a1b00ef351e6867e74c2a Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 18 Sep 2014 18:25:33 -0400 Subject: [PATCH 013/370] number --- doc/upgrades/insecure_embedded_creds.mdwn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/upgrades/insecure_embedded_creds.mdwn b/doc/upgrades/insecure_embedded_creds.mdwn index b0554a5d87..117ee96a42 100644 --- a/doc/upgrades/insecure_embedded_creds.mdwn +++ b/doc/upgrades/insecure_embedded_creds.mdwn @@ -13,8 +13,8 @@ This message will only be printed one time, since git-annex will change the embedded credentials to be encrypted properly. However, this leaves the non-encrypted version still in the git history. -If your repository has this problem, you have two courses of action to fix -it: +If your repository has this problem, chose from one of these approaches +to deal with it: 1. Change your AWS credentials, so the ones stored in the clear in git won't be used. From 23f60da002ea3b417d294128ad77275f80483bd9 Mon Sep 17 00:00:00 2001 From: anarcat Date: Thu, 18 Sep 2014 22:27:46 +0000 Subject: [PATCH 014/370] git history is hard to kill, make sure it's clear --- doc/upgrades/insecure_embedded_creds.mdwn | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/upgrades/insecure_embedded_creds.mdwn b/doc/upgrades/insecure_embedded_creds.mdwn index 117ee96a42..19713f9b02 100644 --- a/doc/upgrades/insecure_embedded_creds.mdwn +++ b/doc/upgrades/insecure_embedded_creds.mdwn @@ -26,8 +26,9 @@ to deal with it: and running `git annex enableremote $remotename embedcreds=yes` 2. Remove the history of the git-annex branch of the repository. - You can use `git annex forget`` to do that; note that it will - remove other historical data too. + You can use `git annex forget` to do that; note that it will + remove other historical data too. Keep in mind that this will not + necessarily delete data from clones you do not control. 3. If you're the only one who has access to the repository, you could decide to leave it as-is. It's no more insecure than if you had used From 15c502588e1e891042ac2623162e6d6b01cbae78 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 18 Sep 2014 19:03:15 -0400 Subject: [PATCH 015/370] error, don't warn about insecure creds A one-time warning was not good enough. A hard error will force the user to notice the problem. Perhaps worth noting that git-annex enableremote already failed with an error, and nobody reported a bug. Suggests that not many people have used the insecure configuration, or if they did, they went to the bother to embedcreds, but never re-enabled the special remote. --- Creds.hs | 2 +- doc/upgrades/insecure_embedded_creds.mdwn | 33 ++++++++++++++--------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/Creds.hs b/Creds.hs index f9b8c4ec65..5e6c54ecc8 100644 --- a/Creds.hs +++ b/Creds.hs @@ -110,7 +110,7 @@ getRemoteCredPair c storage = maybe fromcache (return . Just) =<< fromenv -- Not a problem for shared cipher. case storablecipher of SharedCipher {} -> showLongNote "gpg error above was caused by an old git-annex bug in credentials storage. Working around it.." - _ -> warning "*** Insecure credentials storage detected for this remote! See https://git-annex.branchable.com/upgrades/insecure_embedded_creds/" + _ -> error "*** Insecure credentials storage detected for this remote! See https://git-annex.branchable.com/upgrades/insecure_embedded_creds/" fromcreds $ fromB64 enccreds fromcreds creds = case decodeCredPair creds of Just credpair -> do diff --git a/doc/upgrades/insecure_embedded_creds.mdwn b/doc/upgrades/insecure_embedded_creds.mdwn index 19713f9b02..a221fb51f4 100644 --- a/doc/upgrades/insecure_embedded_creds.mdwn +++ b/doc/upgrades/insecure_embedded_creds.mdwn @@ -6,12 +6,9 @@ in (effectively) plaintext, not encrypted as they were supposed to be. That means that anyone who gets a copy of the git repository can extract the AWS credentials from it. Which would be bad.. -Fixed versions of git-annex will detect this problem when enabling such a -remote, and print a warning message (including a pointer to this web page). - -This message will only be printed one time, since git-annex will -change the embedded credentials to be encrypted properly. -However, this leaves the non-encrypted version still in the git history. +A remote with this problem cannot be enabled using `git annex +enableremote`. Old versions of git-annex will fail with a gpg error; +the current version will fail with a pointer to this web page. If your repository has this problem, chose from one of these approaches to deal with it: @@ -25,11 +22,21 @@ to deal with it: `AWS_SECRET_ACCESS_KEY` and `AWS_ACCESS_KEY_ID` environment variables, and running `git annex enableremote $remotename embedcreds=yes` -2. Remove the history of the git-annex branch of the repository. - You can use `git annex forget` to do that; note that it will - remove other historical data too. Keep in mind that this will not - necessarily delete data from clones you do not control. +2. Fix the problem and then remove the history of the git-annex branch + of the repository. -3. If you're the only one who has access to the repository, you could decide - to leave it as-is. It's no more insecure than if you had used - encryption=shared in the first place when setting it up. + Make sure you have a fixed version of git-annex, and force git-annex + to rewrite the embedded creds, with encryption this time, by setting + by setting the `AWS_SECRET_ACCESS_KEY` and `AWS_ACCESS_KEY_ID` + environment variables, and running `git annex enableremote $remotename embedcreds=yes` + + Then, to get rid of old versions of the git-annex branch that still + contain the creds in cleartext, you can use `git annex forget`; + note that it will remove other historical data too. + + Keep in mind that this will not necessarily delete data from clones + you do not control. + +3. If you're sure that you're the only one who has access to the repository, + you could decide to leave it as-is. It's no more insecure than if you + had used encryption=shared in the first place when setting it up. From 8b38cee9356aa0cd75087e8dbb58bab7333e2dec Mon Sep 17 00:00:00 2001 From: rasmus Date: Fri, 19 Sep 2014 00:43:56 +0000 Subject: [PATCH 016/370] Added a comment --- ..._475d5af95adcfcd3a51e10f270205eb7._comment | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 doc/forum/big_overhead/comment_12_475d5af95adcfcd3a51e10f270205eb7._comment diff --git a/doc/forum/big_overhead/comment_12_475d5af95adcfcd3a51e10f270205eb7._comment b/doc/forum/big_overhead/comment_12_475d5af95adcfcd3a51e10f270205eb7._comment new file mode 100644 index 0000000000..53e15b7642 --- /dev/null +++ b/doc/forum/big_overhead/comment_12_475d5af95adcfcd3a51e10f270205eb7._comment @@ -0,0 +1,71 @@ +[[!comment format=mdwn + username="rasmus" + ip="146.185.23.178" + subject="comment 12" + date="2014-09-19T00:43:56Z" + content=""" +Hi Joey, + +Thanks for giving the thread a more appropriate title and thanks for the helpful messages. + +Let me start with the easy points: + + +* Looking at my log file of installed packages I have never used `etckeeper` on my system. So unless it could have entered through `annex` then I think we can rule that one out. +* According to `git log` the repos are from January 2014 where I restarted my repos. + + + commit 029a8e76ab5f66aa4390987130985550a1ccd69c + Author: Rasmus + Date: Thu Jan 23 21:06:13 2014 +0100 + + created repository + + +* When I start git repos I typically just use \"init\" so I don't think I did the 2012 commits. +* I checked out one of the 74mb files. When I do `file test.blob` it shows `test.blob: GPG symmetrically encrypted data (CAST5 cipher)`. But none of my normal passwords worked. Could such a gpg'ed file be from local network connections where the assistant asks for a passphrase? I'm pretty sure that my transfer repo has only been using `gcrypt` and I believe I \"restarted\" my repos because I switched to `gcrypt` repos. Also, my transfer repo is 10Gb as well which sounds big for transfer repo. + +I performed a similar \"analysis\" on the `conf.annex` repo which should contain mostly no binary files (some 16x16 pngs etc). + +`conf.annex` has 727 unreachable objects and 3477 commits in total. Of these 338 are commits. Here's an example of a larger commit message of an unreachable commit. + + commit 601c10f9512e8d3502d9dd52ef409560ebb5b7e0 + Author: root + Date: Mon Dec 31 19:00:01 2012 -0400 + + Initial commit + + diff --git a/6fbbea493cdec9d912d256374199cc4c012022d35524c8789a7aceeb953442a5 b/6fbbea493cdec9d912d256374199cc4c012022d35524c8789a7aceeb953442a5 + new file mode 100644 + index 0000000..ea5fcc3 + Binary files /dev/null and b/6fbbea493cdec9d912d256374199cc4c012022d35524c8789a7aceeb953442a5 differ + diff --git a/91bd0c092128cf2e60e1a608c31e92caf1f9c1595f83f2890ef17c0e4881aa0a b/91bd0c092128cf2e60e1a608c31e92caf1f9c1595f83f2890ef17c0e4881aa0a + new file mode 100644 + index 0000000..a86c1a9 + Binary files /dev/null and b/91bd0c092128cf2e60e1a608c31e92caf1f9c1595f83f2890ef17c0e4881aa0a differ + diff --git a/9da3fcfc1635c674012c35d90c21adce3c35440e629d64fe117fe349a6b3e194 b/9da3fcfc1635c674012c35d90c21adce3c35440e629d64fe117fe349a6b3e194 + new file mode 100644 + index 0000000..ef1d71c + Binary files /dev/null and b/9da3fcfc1635c674012c35d90c21adce3c35440e629d64fe117fe349a6b3e194 differ + diff --git a/ad4ae79c29b3756f7e41257db7454f3c319112d06385a8bc12d28209a82f2594 b/ad4ae79c29b3756f7e41257db7454f3c319112d06385a8bc12d28209a82f2594 + new file mode 100644 + index 0000000..61d3e5b + Binary files /dev/null and b/ad4ae79c29b3756f7e41257db7454f3c319112d06385a8bc12d28209a82f2594 differ + diff --git a/bd0e9cb492077e0c090bc62892c8de438c51a956c8215b2c68de7caa7e2431cc b/bd0e9cb492077e0c090bc62892c8de438c51a956c8215b2c68de7caa7e2431cc + new file mode 100644 + index 0000000..92e9bd7 + Binary files /dev/null and b/bd0e9cb492077e0c090bc62892c8de438c51a956c8215b2c68de7caa7e2431cc differ + +Across all commits 6006 objects are mentioned, but only 371 are unique. + +I checked out one blob and again `file` reports `GPG symmetrically encrypted data (CAST5 cipher)`. Interesting for `conf.annex` I get this line when trying to decrypt + + gpg: DBG: cleared passphrase cached with ID: SBF83A0F822D0F664 + + +For `doc.annex` I get + + gpg: DBG: cleared passphrase cached with ID: S32DEAD1E8DD06A4D + +And on my other computer I see a third ID. I'm not sure if this means anything when files are symmetrically encrypted, though. +"""]] From ffd8b90c554623e9145d4c1e95e19c1435527bbc Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 18 Sep 2014 22:37:34 -0400 Subject: [PATCH 017/370] fix indentation --- Test.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Test.hs b/Test.hs index 825c018797..6348b0d6d7 100644 --- a/Test.hs +++ b/Test.hs @@ -120,7 +120,7 @@ main ps = do error msg v -> handleParseResult v #else - handleParseResult $ execParserPure pprefs pinfo args + handleParseResult $ execParserPure pprefs pinfo args #endif progdesc = "git-annex test" From 41ec41a69f4b388c6ef004ce0d6172dfd3a2f2b1 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Fri, 19 Sep 2014 02:43:22 +0000 Subject: [PATCH 018/370] Added a comment: I know what it is now --- ...omment_13_1c8cc992f04fc63179094c494bd25025._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/forum/big_overhead/comment_13_1c8cc992f04fc63179094c494bd25025._comment diff --git a/doc/forum/big_overhead/comment_13_1c8cc992f04fc63179094c494bd25025._comment b/doc/forum/big_overhead/comment_13_1c8cc992f04fc63179094c494bd25025._comment new file mode 100644 index 0000000000..229ef256a7 --- /dev/null +++ b/doc/forum/big_overhead/comment_13_1c8cc992f04fc63179094c494bd25025._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="108.236.230.124" + subject="I know what it is now" + date="2014-09-19T02:43:22Z" + content=""" +These objects are the ones written by git-remote-gcrypt when pushing to a remote. That's why the weird dates, root pseudo-commit, crazy filenames, and big gpg encrypted blobs. All countermeasures that git-remote-gcrypt uses to keep your encrypted git remote safe and not leak information about what's in it. + +So, this is a bug in git-remote-gcrypt. It needs to clean these objects up after pushing them! (Also after failed pushes.) +"""]] From 0f7caf5c7456e2bbac1a0481bedea82e31d7577b Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Fri, 19 Sep 2014 02:59:36 +0000 Subject: [PATCH 019/370] Added a comment --- .../comment_14_cbfb3d557915258e72c65a4e84df77a9._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/forum/big_overhead/comment_14_cbfb3d557915258e72c65a4e84df77a9._comment diff --git a/doc/forum/big_overhead/comment_14_cbfb3d557915258e72c65a4e84df77a9._comment b/doc/forum/big_overhead/comment_14_cbfb3d557915258e72c65a4e84df77a9._comment new file mode 100644 index 0000000000..87632c9093 --- /dev/null +++ b/doc/forum/big_overhead/comment_14_cbfb3d557915258e72c65a4e84df77a9._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="108.236.230.124" + subject="comment 14" + date="2014-09-19T02:59:36Z" + content=""" + +"""]] From 80232ac8714b39210d3f7cf92ee27828ad4f0816 Mon Sep 17 00:00:00 2001 From: annexuser Date: Fri, 19 Sep 2014 04:43:42 +0000 Subject: [PATCH 020/370] Added a comment --- .../comment_3_cd1e768fe1e67daf08b5afd460620922._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/bugs/Upload_to_S3_fails_/comment_3_cd1e768fe1e67daf08b5afd460620922._comment diff --git a/doc/bugs/Upload_to_S3_fails_/comment_3_cd1e768fe1e67daf08b5afd460620922._comment b/doc/bugs/Upload_to_S3_fails_/comment_3_cd1e768fe1e67daf08b5afd460620922._comment new file mode 100644 index 0000000000..5efb786853 --- /dev/null +++ b/doc/bugs/Upload_to_S3_fails_/comment_3_cd1e768fe1e67daf08b5afd460620922._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="annexuser" + ip="71.198.212.13" + subject="comment 3" + date="2014-09-19T04:43:42Z" + content=""" +Was the version I listed above not using the new chunking from the `s3-aws` branch? How do I determine if my version of git-annex was built with the new or old chunking? +"""]] From 7faf2436f32bef0541476fb75a8621e41ebcea3b Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 19 Sep 2014 01:38:51 -0400 Subject: [PATCH 021/370] CVE id assigned --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 5bfba77ed0..107d8bf894 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,7 @@ git-annex (5.20140916) UNRELEASED; urgency=medium * Security fix for S3 and glacier when using embedcreds=yes with - encryption=pubkey or encryption=hybrid. + 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: From ddb2c91e242a24860a250a705ab74b3c4cb41f47 Mon Sep 17 00:00:00 2001 From: rasmus Date: Fri, 19 Sep 2014 06:29:58 +0000 Subject: [PATCH 022/370] Added a comment --- ...omment_15_b973529bae549bcbaaae792f0403989b._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/forum/big_overhead/comment_15_b973529bae549bcbaaae792f0403989b._comment diff --git a/doc/forum/big_overhead/comment_15_b973529bae549bcbaaae792f0403989b._comment b/doc/forum/big_overhead/comment_15_b973529bae549bcbaaae792f0403989b._comment new file mode 100644 index 0000000000..a875cc34e1 --- /dev/null +++ b/doc/forum/big_overhead/comment_15_b973529bae549bcbaaae792f0403989b._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="rasmus" + ip="217.130.110.20" + subject="comment 15" + date="2014-09-19T06:29:58Z" + content=""" +Brilliant! Thanks for taking time to analyze the issue and taking the bug to `gcrypt`. + +[I'm surprised that a different key than my git-annex key is used and that it's a symmetric key, but I will explore the technology on my own]. +"""]] From 264c65e8f8b700868978ec2c31e2f232c4e2eda9 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 19 Sep 2014 12:53:51 -0400 Subject: [PATCH 023/370] prep release --- debian/changelog | 4 ++-- git-annex.cabal | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 107d8bf894..80b088e662 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -git-annex (5.20140916) UNRELEASED; urgency=medium +git-annex (5.20140919) unstable; urgency=high * Security fix for S3 and glacier when using embedcreds=yes with encryption=pubkey or encryption=hybrid. CVE-2014-6274 @@ -15,7 +15,7 @@ git-annex (5.20140916) UNRELEASED; urgency=medium * add: In direct mode, adding an annex symlink will check it into git, as was already done in indirect mode. - -- Joey Hess Mon, 15 Sep 2014 14:39:17 -0400 + -- Joey Hess Fri, 19 Sep 2014 12:53:42 -0400 git-annex (5.20140915) unstable; urgency=medium diff --git a/git-annex.cabal b/git-annex.cabal index 079da8858c..5b2b2daca5 100644 --- a/git-annex.cabal +++ b/git-annex.cabal @@ -1,5 +1,5 @@ Name: git-annex -Version: 5.20140916 +Version: 5.20140919 Cabal-Version: >= 1.8 License: GPL-3 Maintainer: Joey Hess From f5a36b275d03505f06935192c5d1e311b15eaf97 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 19 Sep 2014 13:10:33 -0400 Subject: [PATCH 024/370] add news item for git-annex 5.20140919 --- doc/news/version_5.20140709.mdwn | 11 ----------- doc/news/version_5.20140919.mdwn | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 11 deletions(-) delete mode 100644 doc/news/version_5.20140709.mdwn create mode 100644 doc/news/version_5.20140919.mdwn diff --git a/doc/news/version_5.20140709.mdwn b/doc/news/version_5.20140709.mdwn deleted file mode 100644 index e7609949f4..0000000000 --- a/doc/news/version_5.20140709.mdwn +++ /dev/null @@ -1,11 +0,0 @@ -git-annex 5.20140709 released with [[!toggle text="these changes"]] -[[!toggleable text=""" - * Fix race in direct mode merge code that could cause all files in the - repository to be removed. It should be able to recover repositories - experiencing this bug without data loss. See: - http://git-annex.branchable.com/bugs/bad\_merge\_commit\_deleting\_all\_files/ - * Fix git version that supported --no-gpg-sign. - * Fix bug in automatic merge conflict resolution, when one side is an - annexed symlink, and the other side is a non-annexed symlink. - * Really fix bug that caused the assistant to make many unncessary - empty merge commits."""]] diff --git a/doc/news/version_5.20140919.mdwn b/doc/news/version_5.20140919.mdwn new file mode 100644 index 0000000000..7a179c9fec --- /dev/null +++ b/doc/news/version_5.20140919.mdwn @@ -0,0 +1,16 @@ +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."""]] \ No newline at end of file From 8c7a1a6d43f4a247a50035a23ab54d4f863fcb05 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlog_5wIICaMcrKTexlFNA6IO6UTp323aE" Date: Fri, 19 Sep 2014 18:22:36 +0000 Subject: [PATCH 025/370] Added a comment --- ..._79219e920a6beb4bd3265571f59f51cb._comment | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 doc/forum/annex_merge_creates___34__synced__47____42____34___branches/comment_4_79219e920a6beb4bd3265571f59f51cb._comment diff --git a/doc/forum/annex_merge_creates___34__synced__47____42____34___branches/comment_4_79219e920a6beb4bd3265571f59f51cb._comment b/doc/forum/annex_merge_creates___34__synced__47____42____34___branches/comment_4_79219e920a6beb4bd3265571f59f51cb._comment new file mode 100644 index 0000000000..8e07649484 --- /dev/null +++ b/doc/forum/annex_merge_creates___34__synced__47____42____34___branches/comment_4_79219e920a6beb4bd3265571f59f51cb._comment @@ -0,0 +1,36 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawlog_5wIICaMcrKTexlFNA6IO6UTp323aE" + nickname="Torkaly" + subject="comment 4" + date="2014-09-19T18:22:36Z" + content=""" +delete the *synced/master* branch: +``` +$ git branch -d synced/master +Branch synced/master entfernt (war 20ec8b3). +``` + +then call *annex merge*: +``` +$ git annex merge +merge git-annex ok +``` + +check branches: +``` +$ git branch -a + git-annex +* master + synced/master + remotes/origin/git-annex + remotes/origin/master +``` +and there is the *synced/master* branch again. + +But that's not my problem. My problem was: how to use annex with a central repository. +I done that by deleting all remote synced/* branches. And now I'm updating the git-annex branch by `git fetch`ing and +`git annex merge`ing again. + +PS: the MD for code blocks is broken + +"""]] From 9ad3746abb67f6315ca39ae4f9a4d2b69dc71a95 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Fri, 19 Sep 2014 18:33:17 +0000 Subject: [PATCH 026/370] Added a comment --- .../comment_4_0cdd2e8d6e83c03de717ecd3253e753d._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/bugs/Upload_to_S3_fails_/comment_4_0cdd2e8d6e83c03de717ecd3253e753d._comment diff --git a/doc/bugs/Upload_to_S3_fails_/comment_4_0cdd2e8d6e83c03de717ecd3253e753d._comment b/doc/bugs/Upload_to_S3_fails_/comment_4_0cdd2e8d6e83c03de717ecd3253e753d._comment new file mode 100644 index 0000000000..216aea5751 --- /dev/null +++ b/doc/bugs/Upload_to_S3_fails_/comment_4_0cdd2e8d6e83c03de717ecd3253e753d._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="67.223.1.203" + subject="comment 4" + date="2014-09-19T18:33:17Z" + content=""" +Your version supports both new and old style chunking. Which is used depends on how the S3 remote was configured when it was set up. It can't really be changed w/o re-setting up the remote. You can check which is used by `git show git-annex:remote.log`, find the line for the UUID of the remote, and see if it has chunk= (new chunking) or chunksize= (old chunking). +"""]] From 58805f73b5de9dc8bf1de816daf185c03cbe9f26 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" Date: Fri, 19 Sep 2014 19:37:36 +0000 Subject: [PATCH 027/370] Added a comment: Sync between two indirectly connected remotes need XMPP? --- ...ment_17_675dd8ff219372c9efc780a02e3add53._comment | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 doc/sync/comment_17_675dd8ff219372c9efc780a02e3add53._comment diff --git a/doc/sync/comment_17_675dd8ff219372c9efc780a02e3add53._comment b/doc/sync/comment_17_675dd8ff219372c9efc780a02e3add53._comment new file mode 100644 index 0000000000..7dd126cedb --- /dev/null +++ b/doc/sync/comment_17_675dd8ff219372c9efc780a02e3add53._comment @@ -0,0 +1,12 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" + nickname="Emre" + subject="Sync between two indirectly connected remotes need XMPP?" + date="2014-09-19T19:37:36Z" + content=""" +Need to understand something. I just installed git-annex to my home PC, to my vps and to my office notebook. When I add the VPS as a shared encryption remote on both home PC and office notebook, they do not sync files. I tried assigning Full Backup and Transfer category to the VPS, but it did not help. The home pc and office notebook just sit there and do nothing to sync. For test purpose, I started with empty annex directory and started populating files on the home. It does sync to the VPS, but the office notebook is unaware of it and even if I try a manual sync, nothing happens. + +On the other hand, if I start from scratch, add local repo's on both home and office ones, then add XMPP Account on both, then I'm asked to add cloud account, and once I do it on one end, it appears on the other and when I enable sync, they start to work. However, this is not a good scenario as the work network uses a Proxy and as far as I understand, git-annex does not yet support it (did not find any options for it in the webapp). + +So did I get right that an XMPP connection is required between indirectly connected repositories on different connections to be able to sync? Ie a having a middleman computer with a repo is not enough. +"""]] From 184e9c511915b7075f5083663020c6fbf671d285 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" Date: Fri, 19 Sep 2014 21:24:19 +0000 Subject: [PATCH 028/370] Added a comment: Understanding --- .../comment_5_c1d247fa128c0a0fc899284f5f95002c._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/forum/assistant_created_encrypted__backup_remote:_Howto_restore__63__/comment_5_c1d247fa128c0a0fc899284f5f95002c._comment diff --git a/doc/forum/assistant_created_encrypted__backup_remote:_Howto_restore__63__/comment_5_c1d247fa128c0a0fc899284f5f95002c._comment b/doc/forum/assistant_created_encrypted__backup_remote:_Howto_restore__63__/comment_5_c1d247fa128c0a0fc899284f5f95002c._comment new file mode 100644 index 0000000000..474bd6673b --- /dev/null +++ b/doc/forum/assistant_created_encrypted__backup_remote:_Howto_restore__63__/comment_5_c1d247fa128c0a0fc899284f5f95002c._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" + nickname="Emre" + subject="Understanding" + date="2014-09-19T21:24:19Z" + content=""" +If box does not have the encryption keys in this \"shared encryption\" scenario and if you had only your computer and this remote repo, does that mean losing your computer (ie your git repository) would mean also losing access to those encrypted content? So, actually an encrypted remote, even if marked as full backup, is not actually a backup unless you have a 3rd computer that has the same git repo, in the case of losing your original computer or accidentally wiping it... +"""]] From cb46e5ea588a6a0b256be989bca9576f7dba2d52 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" Date: Fri, 19 Sep 2014 21:31:23 +0000 Subject: [PATCH 029/370] Added a comment --- .../comment_1_2b13584998108af0522b898c5d396ba4._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/forum/Modification_time_of_files_retained_in_synchronized_remote_copies__63__/comment_1_2b13584998108af0522b898c5d396ba4._comment diff --git a/doc/forum/Modification_time_of_files_retained_in_synchronized_remote_copies__63__/comment_1_2b13584998108af0522b898c5d396ba4._comment b/doc/forum/Modification_time_of_files_retained_in_synchronized_remote_copies__63__/comment_1_2b13584998108af0522b898c5d396ba4._comment new file mode 100644 index 0000000000..1d5bf00a5f --- /dev/null +++ b/doc/forum/Modification_time_of_files_retained_in_synchronized_remote_copies__63__/comment_1_2b13584998108af0522b898c5d396ba4._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" + nickname="Emre" + subject="comment 1" + date="2014-09-19T21:31:23Z" + content=""" +I just saw your post and agree with you. Maybe we shall create a bug report. I would also need to keep my files in original timestamps. (may not mind about permissions though). +"""]] From 70813b0e2937b045b22384bb500fc284f9aa12e5 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" Date: Fri, 19 Sep 2014 21:45:42 +0000 Subject: [PATCH 030/370] --- doc/bugs/sync_does_not_preserve_timestamps.mdwn | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 doc/bugs/sync_does_not_preserve_timestamps.mdwn diff --git a/doc/bugs/sync_does_not_preserve_timestamps.mdwn b/doc/bugs/sync_does_not_preserve_timestamps.mdwn new file mode 100644 index 0000000000..0d8f2371d4 --- /dev/null +++ b/doc/bugs/sync_does_not_preserve_timestamps.mdwn @@ -0,0 +1,16 @@ +### Please describe the problem. +I see that files are synced between my computers with git-annex but the timestamps do not match. The one that receives files always puts the current time of file creation on the file. + +### What steps will reproduce the problem? +Install git-annex on two computers. Connect with XMPP. Then add cloud storage with shared encryption for transferring files. Since you want also backup, choose "full backup" as the type of cloud storage. + + +### What version of git-annex are you using? On what operating system? +Downloaded binary package dated 13/09/2014 amd64 Ubuntu 14.04. + + +### Please provide any additional information below. + +Files are in sync. For example, I move a file from a directory to my synced annex directory. It contains timestamp of 01/01/2010 for example. Once the file gets transferred to the remote computer, it gets current time, for example 20/09/2014 rather than keeping 01/01/2010. + +All computers are linux based, ext4 filesystems. File transfers are done through shared encryption rsync remote. From b0c430086890c44c6b9fcbd5c5a8430bdd413a51 Mon Sep 17 00:00:00 2001 From: dirkz Date: Sat, 20 Sep 2014 14:55:36 +0000 Subject: [PATCH 031/370] --- ...nd_module___8216__Network.URI__8217__.mdwn | 212 ++++++++++++++++++ 1 file changed, 212 insertions(+) create mode 100644 doc/bugs/cabal_install_fails:_Could_not_find_module___8216__Network.URI__8217__.mdwn diff --git a/doc/bugs/cabal_install_fails:_Could_not_find_module___8216__Network.URI__8217__.mdwn b/doc/bugs/cabal_install_fails:_Could_not_find_module___8216__Network.URI__8217__.mdwn new file mode 100644 index 0000000000..b175ec5a4b --- /dev/null +++ b/doc/bugs/cabal_install_fails:_Could_not_find_module___8216__Network.URI__8217__.mdwn @@ -0,0 +1,212 @@ +### Please describe the problem. + +Can't install git-annex from current git master. cabal install also fails. Both fail with the same error. + +### What steps will reproduce the problem? + +cabal install git-annex --bindir=$HOME/bin + +### What version of git-annex are you using? On what operating system? + +[[!format sh """ +$ uname -a +Linux arch 3.16.3-1-ARCH #1 SMP PREEMPT Wed Sep 17 21:54:13 CEST 2014 x86_64 GNU/Linux + +$ cabal --version +cabal-install version 1.20.0.3 +using version 1.20.0.0 of the Cabal library +"""]] + +### 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 + +$ cabal install git-annex --bindir=$HOME/bin +Resolving dependencies... +Configuring DAV-1.0.2... +Configuring gnuidn-0.2.1... +Configuring gsasl-0.3.5... +Configuring hS3-0.5.8... +Failed to install gsasl-0.3.5 +Build log ( /home/dirk/.cabal/logs/gsasl-0.3.5.log ): +Configuring gsasl-0.3.5... +setup-Simple-Cabal-1.18.1.3-x86_64-linux-ghc-7.8.3: The pkg-config package +libgsasl version >=1.1 is required but it could not be found. +Failed to install gnuidn-0.2.1 +Build log ( /home/dirk/.cabal/logs/gnuidn-0.2.1.log ): +Configuring gnuidn-0.2.1... +setup-Simple-Cabal-1.18.1.3-x86_64-linux-ghc-7.8.3: The program c2hs is +required but it could not be found. +Building hS3-0.5.8... +Building DAV-1.0.2... +Failed to install hS3-0.5.8 +Build log ( /home/dirk/.cabal/logs/hS3-0.5.8.log ): +Configuring hS3-0.5.8... +Building hS3-0.5.8... +Preprocessing library hS3-0.5.8... + +Network/AWS/S3Object.hs:26:8: + Could not find module ‘Network.URI’ + It is a member of the hidden package ‘network-uri-2.6.0.1’. + Perhaps you need to add ‘network-uri’ to the build-depends in your .cabal file. + Use -v to see a list of the files searched for. +Failed to install DAV-1.0.2 +Build log ( /home/dirk/.cabal/logs/DAV-1.0.2.log ): +Configuring DAV-1.0.2... +Building DAV-1.0.2... +Preprocessing library DAV-1.0.2... +[1 of 2] Compiling Network.Protocol.HTTP.DAV.TH ( Network/Protocol/HTTP/DAV/TH.hs, dist/build/Network/Protocol/HTTP/DAV/TH.o ) +Loading package ghc-prim ... linking ... done. +Loading package integer-gmp ... linking ... done. +Loading package base ... linking ... done. +Loading package array-0.5.0.0 ... linking ... done. +Loading package deepseq-1.3.0.2 ... linking ... done. +Loading package containers-0.5.5.1 ... linking ... done. +Loading package bytestring-0.10.4.0 ... linking ... done. +Loading package transformers-0.3.0.0 ... linking ... done. +Loading package mtl-2.1.3.1 ... linking ... done. +Loading package text-1.2.0.0 ... linking ... done. +Loading package parsec-3.1.6 ... linking ... done. +Loading package hashable-1.2.2.0 ... linking ... done. +Loading package scientific-0.3.3.1 ... linking ... done. +Loading package attoparsec-0.12.1.2 ... linking ... done. +Loading package dlist-0.7.1 ... linking ... done. +Loading package old-locale-1.0.0.6 ... linking ... done. +Loading package syb-0.4.2 ... linking ... done. +Loading package pretty-1.1.1.1 ... linking ... done. +Loading package template-haskell ... linking ... done. +Loading package time-1.4.2 ... linking ... done. +Loading package unordered-containers-0.2.5.0 ... linking ... done. +Loading package primitive-0.5.3.0 ... linking ... done. +Loading package vector-0.10.11.0 ... linking ... done. +Loading package aeson-0.8.0.0 ... linking ... done. +Loading package blaze-builder-0.3.3.4 ... linking ... done. +Loading package blaze-markup-0.6.1.1 ... linking ... done. +Loading package blaze-html-0.7.0.3 ... linking ... done. +Loading package filepath-1.3.0.2 ... linking ... done. +Loading package unix-2.7.0.1 ... linking ... done. +Loading package directory-1.2.1.0 ... linking ... done. +Loading package exceptions-0.6.1 ... linking ... done. +Loading package process-1.2.0.0 ... linking ... done. +Loading package system-filepath-0.4.12 ... linking ... done. +Loading package system-fileio-0.3.14 ... linking ... done. +Loading package shakespeare-2.0.1.1 ... linking ... done. +Loading package stm-2.4.3 ... linking ... done. +Loading package transformers-base-0.4.3 ... linking ... done. +Loading package monad-control-0.3.3.0 ... linking ... done. +Loading package lifted-base-0.2.3.0 ... linking ... done. +Loading package mmorph-1.0.4 ... linking ... done. +Loading package resourcet-1.1.2.3 ... linking ... done. +Loading package nats-0.2 ... linking ... done. +Loading package semigroups-0.15.3 ... linking ... done. +Loading package void-0.6.1 ... linking ... done. +Loading package conduit-1.2.0.2 ... linking ... done. +Loading package attoparsec-conduit-1.1.0 ... linking ... done. +Loading package blaze-builder-conduit-1.1.0 ... linking ... done. +Loading package network-2.6.0.2 ... linking ... done. +Loading package random-1.1 ... linking ... done. +Loading package zlib-0.5.4.1 ... linking ... done. +Loading package streaming-commons-0.1.5 ... linking ... done. +Loading package conduit-extra-1.1.3.4 ... linking ... done. +Loading package data-default-class-0.0.1 ... linking ... done. +Loading package data-default-instances-base-0.0.1 ... linking ... done. +Loading package data-default-instances-containers-0.0.1 ... linking ... done. +Loading package data-default-instances-dlist-0.0.1 ... linking ... done. +Loading package data-default-instances-old-locale-0.0.1 ... linking ... done. +Loading package data-default-0.5.3 ... linking ... done. +Loading package xml-types-0.3.4 ... linking ... done. +Loading package xml-conduit-1.2.2 ... linking ... done. +Loading package xml-hamlet-0.4.0.9 ... linking ... done. +Loading package transformers-compat-0.3.3.4 ... linking ... done. +Loading package contravariant-1.2 ... linking ... done. +Loading package tagged-0.7.2 ... linking ... done. +Loading package distributive-0.4.4 ... linking ... done. +Loading package comonad-4.2.2 ... linking ... done. +Loading package semigroupoids-4.2 ... linking ... done. +Loading package bifunctors-4.1.1.1 ... linking ... done. +Loading package prelude-extras-0.4 ... linking ... done. +Loading package profunctors-4.2.0.1 ... linking ... done. +Loading package free-4.9 ... linking ... done. +Loading package parallel-3.2.0.4 ... linking ... done. +Loading package reflection-1.5.1 ... linking ... done. +Loading package split-0.2.2 ... linking ... done. +Loading package lens-4.4.0.2 ... linking ... done. +Loading package byteable-0.1.1 ... linking ... done. +Loading package securemem-0.1.3 ... linking ... done. +Loading package crypto-cipher-types-0.0.9 ... linking ... done. +Loading package cipher-aes-0.2.8 ... linking ... done. +Loading package crypto-random-0.0.8 ... linking ... done. +Loading package cprng-aes-0.5.2 ... linking ... done. +Loading package cereal-0.4.0.1 ... linking ... done. +Loading package socks-0.5.4 ... linking ... done. +Loading package asn1-types-0.2.3 ... linking ... done. +Loading package asn1-encoding-0.8.1.3 ... linking ... done. +Loading package cipher-des-0.0.6 ... linking ... done. +Loading package cipher-rc4-0.1.4 ... linking ... done. +Loading package crypto-numbers-0.2.3 ... linking ... done. +Loading package crypto-pubkey-types-0.4.2.2 ... linking ... done. +Loading package cryptohash-0.11.6 ... linking ... done. +Loading package crypto-pubkey-0.2.4 ... linking ... done. +Loading package asn1-parse-0.8.1 ... linking ... done. +Loading package base64-bytestring-1.0.0.1 ... linking ... done. +Loading package pem-0.2.2 ... linking ... done. +Loading package x509-1.4.12 ... linking ... done. +Loading package x509-store-1.4.4 ... linking ... done. +Loading package x509-validation-1.5.0 ... linking ... done. +Loading package tls-1.2.9 ... linking ... done. +Loading package x509-system-1.4.5 ... linking ... done. +Loading package connection-0.2.3 ... linking ... done. +Loading package case-insensitive-1.2.0.1 ... linking ... done. +Loading package cookie-0.4.1.3 ... linking ... done. +Loading package http-types-0.8.5 ... linking ... done. +Loading package mime-types-0.1.0.4 ... linking ... done. +Loading package network-uri-2.6.0.1 ... linking ... done. +Loading package utf8-string-0.3.8 ... linking ... done. +Loading package publicsuffixlist-0.1 ... linking ... done. +Loading package http-client-0.4.0 ... linking ... done. +Loading package http-client-tls-0.2.2 ... linking ... done. +Loading package MonadRandom-0.3 ... linking ... done. +Loading package either-4.3.1 ... linking ... done. +Loading package safe-0.3.8 ... linking ... done. +Loading package errors-1.4.7 ... linking ... done. +[2 of 2] Compiling Network.Protocol.HTTP.DAV ( Network/Protocol/HTTP/DAV.hs, dist/build/Network/Protocol/HTTP/DAV.o ) + +Network/Protocol/HTTP/DAV.hs:80:1: Warning: + The import of ‘unauthorized401’ + from module ‘Network.HTTP.Types’ is redundant + +Network/Protocol/HTTP/DAV.hs:92:95: Warning: + ‘DAVT’ is an instance of MonadPlus but not Alternative - this will become an error in GHC 7.10, under the Applicative-Monad Proposal. + +Network/Protocol/HTTP/DAV.hs:213:1: Warning: + Defined but not used: ‘supportsCalDAV’ + +Network/Protocol/HTTP/DAV.hs:88:10: Warning: + Orphan instance: instance Default DAVContext + +Network/Protocol/HTTP/DAV.hs:95:10: Warning: + Orphan instance: instance MonadMask m => MonadMask (EitherT e m) +In-place registering DAV-1.0.2... +Preprocessing executable 'hdav' for DAV-1.0.2... + +hdav.hs:33:8: + Could not find module ‘Network.URI’ + It is a member of the hidden package ‘network-uri-2.6.0.1’. + Perhaps you need to add ‘network-uri’ to the build-depends in your .cabal file. + Use -v to see a list of the files searched for. +cabal: Error: some packages failed to install: +DAV-1.0.2 failed during the building phase. The exception was: +ExitFailure 1 +git-annex-5.20140919 depends on DAV-1.0.2 which failed to install. +gnuidn-0.2.1 failed during the configure step. The exception was: +ExitFailure 1 +gsasl-0.3.5 failed during the configure step. The exception was: +ExitFailure 1 +hS3-0.5.8 failed during the building phase. The exception was: +ExitFailure 1 +network-protocol-xmpp-0.4.6 depends on gnuidn-0.2.1 which failed to install. + +# End of transcript or log. +"""]] From b60d61e5610a8fc4b5713f0dc752845cb1e93f6f Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" Date: Sun, 21 Sep 2014 13:12:13 +0000 Subject: [PATCH 032/370] --- ...ore_file_from_Full_Backup_Repository__63__.mdwn | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__.mdwn diff --git a/doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__.mdwn b/doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__.mdwn new file mode 100644 index 0000000000..47c327f1be --- /dev/null +++ b/doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__.mdwn @@ -0,0 +1,14 @@ +Hi, I'm using the webapp and created a repository on my local computer. Then I created another remote repository (encrypted remote with gcrypt), this remote repository is selected as type "full backup". + +I've added some files to the local repository, then changed some of them and watched the sync happen. Then I deleted some files, and these also get synced to the remote. + +Now, how can I recover those files from the foreign repo, using the webapp or the command line? I could not find any solution. + +I tried: +git log --diff-filter=D --summary +and then +git checkout 488408bfcd58eced685d9e3ca5daf55250850f5d -- . +to recover the file listed in this remote but got the following response: +fatal: This operation must be run in a work tree + +What do I miss and how does the "Restore" part work when using "full backup" remote repository? From 4058eeb2524994d228b263d2078dfefe8d828a17 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 22 Sep 2014 13:50:16 -0400 Subject: [PATCH 033/370] Depend on new enough git for --no-gpg-sign to work. Closes: #762446 --- debian/changelog | 6 ++++++ debian/control | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 80b088e662..41228c5b7d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +git-annex (5.20140920) UNRELEASED; urgency=medium + + * Depend on new enough git for --no-gpg-sign to work. Closes: #762446 + + -- Joey Hess Mon, 22 Sep 2014 13:50:00 -0400 + git-annex (5.20140919) unstable; urgency=high * Security fix for S3 and glacier when using embedcreds=yes with diff --git a/debian/control b/debian/control index 39c0e279e8..91747c417c 100644 --- a/debian/control +++ b/debian/control @@ -67,7 +67,7 @@ Build-Depends: lsof [!kfreebsd-i386 !kfreebsd-amd64 !hurd-any], ikiwiki, perlmagick, - git (>= 1:1.8.4), + git (>= 1:2.0), rsync, wget, curl, From c5b8ffcb4253f9bdd65e926ede3e23af4188ba16 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 22 Sep 2014 14:10:50 -0400 Subject: [PATCH 034/370] update --- doc/thanks.mdwn | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/thanks.mdwn b/doc/thanks.mdwn index 10ab1f1990..9e7b9ac9dc 100644 --- a/doc/thanks.mdwn +++ b/doc/thanks.mdwn @@ -6,6 +6,14 @@ do. You have my most sincere thanks. --[[Joey]] (If I got your name wrong, or you don't want it publically posted here, email .) +## 2014-2015 + +NSF logo + +git-annex development is partially supported by the +[NSF](http://www.nsf.gov/images/logos/nsf1.gif) as a part of the +[DataGit project](http://www.nsf.gov/awardsearch/showAward?AWD_ID=1429999). + ## 2013-2014 Continued git-annex development was [crowd funded](https://campaign.joeyh.name/) From fd5fa831faf0451812439e0121a30c752a1ca395 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 22 Sep 2014 14:12:10 -0400 Subject: [PATCH 035/370] fix urls --- doc/thanks.mdwn | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/thanks.mdwn b/doc/thanks.mdwn index 9e7b9ac9dc..d872c4dc06 100644 --- a/doc/thanks.mdwn +++ b/doc/thanks.mdwn @@ -8,11 +8,11 @@ email .) ## 2014-2015 -NSF logo +NSF logo git-annex development is partially supported by the -[NSF](http://www.nsf.gov/images/logos/nsf1.gif) as a part of the -[DataGit project](http://www.nsf.gov/awardsearch/showAward?AWD_ID=1429999). +[NSF](https://www.nsf.gov/) as a part of the +[DataGit project](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1429999). ## 2013-2014 From 6ffa03c357069ee4684be645253f7275fb9c7d73 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" Date: Mon, 22 Sep 2014 20:22:49 +0000 Subject: [PATCH 036/370] removed --- ...ment_17_675dd8ff219372c9efc780a02e3add53._comment | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 doc/sync/comment_17_675dd8ff219372c9efc780a02e3add53._comment diff --git a/doc/sync/comment_17_675dd8ff219372c9efc780a02e3add53._comment b/doc/sync/comment_17_675dd8ff219372c9efc780a02e3add53._comment deleted file mode 100644 index 7dd126cedb..0000000000 --- a/doc/sync/comment_17_675dd8ff219372c9efc780a02e3add53._comment +++ /dev/null @@ -1,12 +0,0 @@ -[[!comment format=mdwn - username="https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" - nickname="Emre" - subject="Sync between two indirectly connected remotes need XMPP?" - date="2014-09-19T19:37:36Z" - content=""" -Need to understand something. I just installed git-annex to my home PC, to my vps and to my office notebook. When I add the VPS as a shared encryption remote on both home PC and office notebook, they do not sync files. I tried assigning Full Backup and Transfer category to the VPS, but it did not help. The home pc and office notebook just sit there and do nothing to sync. For test purpose, I started with empty annex directory and started populating files on the home. It does sync to the VPS, but the office notebook is unaware of it and even if I try a manual sync, nothing happens. - -On the other hand, if I start from scratch, add local repo's on both home and office ones, then add XMPP Account on both, then I'm asked to add cloud account, and once I do it on one end, it appears on the other and when I enable sync, they start to work. However, this is not a good scenario as the work network uses a Proxy and as far as I understand, git-annex does not yet support it (did not find any options for it in the webapp). - -So did I get right that an XMPP connection is required between indirectly connected repositories on different connections to be able to sync? Ie a having a middleman computer with a repo is not enough. -"""]] From d2666edbec5f0030d5556ba1b0a0e9225d847f8f Mon Sep 17 00:00:00 2001 From: "https://me.yahoo.com/a/wbh0dY54mcPwTpeOweuPQ8JiZrH3hg--#9b726" Date: Mon, 22 Sep 2014 21:50:37 +0000 Subject: [PATCH 037/370] --- doc/forum/XMPP_problem_behind_router.mdwn | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 doc/forum/XMPP_problem_behind_router.mdwn diff --git a/doc/forum/XMPP_problem_behind_router.mdwn b/doc/forum/XMPP_problem_behind_router.mdwn new file mode 100644 index 0000000000..5eec76a07d --- /dev/null +++ b/doc/forum/XMPP_problem_behind_router.mdwn @@ -0,0 +1,3 @@ +I'm trying to configure a jabber account for use with git-annex, but it seems that something's wrong as soon as I try to go through my router (wired or wireless). Compared to directly connecting to my modem, wireshark shows a lot of TCP retransmissions, eventually resulting in "Unable to connect to the Jabber server. Maybe you entered the wrong password? (Error message: host gmail.com:5222 failed: connect: timeout (Connection timed out))" in the webapp. + +I've tried to configure the account both in the webapp and manually in the .git/annex/creds/xmpp file, but it doesn't seem to make a difference. It's able to connect if I directly connect it to my modem, so I'm fairly sure it's not a problem at my computer or with the credentials. It doesn't appear to be a problem at the firewall on the router, but I could certainly be missing something. Are there some other tests I could try to narrow down the problem? From 880f4e663bedddd7330518a77c915feb96137449 Mon Sep 17 00:00:00 2001 From: "https://me.yahoo.com/a/wbh0dY54mcPwTpeOweuPQ8JiZrH3hg--#9b726" Date: Tue, 23 Sep 2014 01:15:23 +0000 Subject: [PATCH 038/370] Added a comment --- .../comment_1_25a7f8dc5cf14cda4d76b2f8c6ca77d5._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/forum/XMPP_problem_behind_router/comment_1_25a7f8dc5cf14cda4d76b2f8c6ca77d5._comment diff --git a/doc/forum/XMPP_problem_behind_router/comment_1_25a7f8dc5cf14cda4d76b2f8c6ca77d5._comment b/doc/forum/XMPP_problem_behind_router/comment_1_25a7f8dc5cf14cda4d76b2f8c6ca77d5._comment new file mode 100644 index 0000000000..04b1965c00 --- /dev/null +++ b/doc/forum/XMPP_problem_behind_router/comment_1_25a7f8dc5cf14cda4d76b2f8c6ca77d5._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="https://me.yahoo.com/a/wbh0dY54mcPwTpeOweuPQ8JiZrH3hg--#9b726" + nickname="Joe" + subject="comment 1" + date="2014-09-23T01:15:23Z" + content=""" +I forgot to mention that XMPP via other clients (e.g., empathy) works fine. +"""]] From ccc9ff16b2f50db324d9da5b458e9c6c8224fb95 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawn3p4i4lk_zMilvjnJ9sS6g2nerpgz0Fjc" Date: Tue, 23 Sep 2014 10:59:32 +0000 Subject: [PATCH 039/370] Added a comment: Why different versions? --- .../comment_9_f11f726d1fee3c4c91f3c984e792037d._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/install/OSX/comment_9_f11f726d1fee3c4c91f3c984e792037d._comment diff --git a/doc/install/OSX/comment_9_f11f726d1fee3c4c91f3c984e792037d._comment b/doc/install/OSX/comment_9_f11f726d1fee3c4c91f3c984e792037d._comment new file mode 100644 index 0000000000..afc7268e1c --- /dev/null +++ b/doc/install/OSX/comment_9_f11f726d1fee3c4c91f3c984e792037d._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawn3p4i4lk_zMilvjnJ9sS6g2nerpgz0Fjc" + nickname="Matthias" + subject="Why different versions?" + date="2014-09-23T10:59:32Z" + content=""" +Why are there different versions for 10.7, 10.8, 10.9 anyway? Is it not possible to produce an executable compatible with all these? I mean, it's the same architecture and executable format, not? I guess there has to be a reason, explanations are welcome :-) +"""]] From 21672e7b179019e23f05077be47c6539fe5d6edb Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 23 Sep 2014 16:19:45 -0400 Subject: [PATCH 040/370] close --- ...ls:_Could_not_find_module___8216__Network.URI__8217__.mdwn | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/bugs/cabal_install_fails:_Could_not_find_module___8216__Network.URI__8217__.mdwn b/doc/bugs/cabal_install_fails:_Could_not_find_module___8216__Network.URI__8217__.mdwn index b175ec5a4b..2f9b5de3e0 100644 --- a/doc/bugs/cabal_install_fails:_Could_not_find_module___8216__Network.URI__8217__.mdwn +++ b/doc/bugs/cabal_install_fails:_Could_not_find_module___8216__Network.URI__8217__.mdwn @@ -210,3 +210,7 @@ network-protocol-xmpp-0.4.6 depends on gnuidn-0.2.1 which failed to install. # End of transcript or log. """]] + +> This is a bug in hS3, not in git-annex. hS3 needs to be updated +> per the example at . +> Email sent to hS3 author; [[done]]. --[[Joey]] From c31ea37104e84b993dbd45007f46a7ed90f6ce42 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Tue, 23 Sep 2014 20:27:25 +0000 Subject: [PATCH 041/370] Added a comment --- .../comment_1_caf5e5cb17f4d05fff8c2fab661cd93f._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/bugs/sync_does_not_preserve_timestamps/comment_1_caf5e5cb17f4d05fff8c2fab661cd93f._comment diff --git a/doc/bugs/sync_does_not_preserve_timestamps/comment_1_caf5e5cb17f4d05fff8c2fab661cd93f._comment b/doc/bugs/sync_does_not_preserve_timestamps/comment_1_caf5e5cb17f4d05fff8c2fab661cd93f._comment new file mode 100644 index 0000000000..48ec44d2b1 --- /dev/null +++ b/doc/bugs/sync_does_not_preserve_timestamps/comment_1_caf5e5cb17f4d05fff8c2fab661cd93f._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="209.250.56.144" + subject="comment 1" + date="2014-09-23T20:27:25Z" + content=""" +The closest git comes to storing a timestamp is the date of the last commit of a file for mtime, and first commit for ctime. However, those are pretty expensive to look up for a given file. And git doesn't try to preserve timestamps in checkouts at all, which argues that git-annex, at least at the command line, should not either. +"""]] From a29dba302779a2f521324b1884831ac85f46019e Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" Date: Tue, 23 Sep 2014 20:58:10 +0000 Subject: [PATCH 042/370] Added a comment --- ...mment_2_c337fca1474b5b78f61ad6f421138ae4._comment | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 doc/bugs/sync_does_not_preserve_timestamps/comment_2_c337fca1474b5b78f61ad6f421138ae4._comment diff --git a/doc/bugs/sync_does_not_preserve_timestamps/comment_2_c337fca1474b5b78f61ad6f421138ae4._comment b/doc/bugs/sync_does_not_preserve_timestamps/comment_2_c337fca1474b5b78f61ad6f421138ae4._comment new file mode 100644 index 0000000000..4b5a750cf2 --- /dev/null +++ b/doc/bugs/sync_does_not_preserve_timestamps/comment_2_c337fca1474b5b78f61ad6f421138ae4._comment @@ -0,0 +1,12 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" + nickname="Emre" + subject="comment 2" + date="2014-09-23T20:58:10Z" + content=""" +Thanks Joey for the comment. + +But when syncing two repos, timestamps are critical at least for my use case. I can't lose this info. Even if it's expensive. + +Appreciate if you can consider to add it for direct mode repos, ie when a file is synced to another repo and created there, it shall carry at least the mtime of the file in source repo. Owncloud sync does it, btsync does it, although I know git-annex is different than those. +"""]] From 7c8f63107d442f5fb0e9df326d89f21ab05155b6 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" Date: Tue, 23 Sep 2014 21:15:29 +0000 Subject: [PATCH 043/370] Added a comment --- .../comment_3_9a3eeddc46e5a420575f00cb47caf703._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/bugs/sync_does_not_preserve_timestamps/comment_3_9a3eeddc46e5a420575f00cb47caf703._comment diff --git a/doc/bugs/sync_does_not_preserve_timestamps/comment_3_9a3eeddc46e5a420575f00cb47caf703._comment b/doc/bugs/sync_does_not_preserve_timestamps/comment_3_9a3eeddc46e5a420575f00cb47caf703._comment new file mode 100644 index 0000000000..ba34823d45 --- /dev/null +++ b/doc/bugs/sync_does_not_preserve_timestamps/comment_3_9a3eeddc46e5a420575f00cb47caf703._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" + nickname="Emre" + subject="comment 3" + date="2014-09-23T21:15:29Z" + content=""" +Btw, git storing the last commit time as Mtime is not enough, it shall store the original timestamp of the file, not the date of commit. Hope I could explain and hope this is something doable. +"""]] From f47cebf38ecba1d3d1cf6d05719832751728f686 Mon Sep 17 00:00:00 2001 From: "http://svario.it/gioele" Date: Wed, 24 Sep 2014 07:15:09 +0000 Subject: [PATCH 044/370] Added a comment --- ...comment_4_99b064259fc2e3c6eb83c3da3b2d3bac._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/bugs/sync_does_not_preserve_timestamps/comment_4_99b064259fc2e3c6eb83c3da3b2d3bac._comment diff --git a/doc/bugs/sync_does_not_preserve_timestamps/comment_4_99b064259fc2e3c6eb83c3da3b2d3bac._comment b/doc/bugs/sync_does_not_preserve_timestamps/comment_4_99b064259fc2e3c6eb83c3da3b2d3bac._comment new file mode 100644 index 0000000000..08de756190 --- /dev/null +++ b/doc/bugs/sync_does_not_preserve_timestamps/comment_4_99b064259fc2e3c6eb83c3da3b2d3bac._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="http://svario.it/gioele" + nickname="gioele" + subject="comment 4" + date="2014-09-24T07:15:09Z" + content=""" +You can try to store the timestamps just before commit and restore them on checkout. + +Have a look at [metastore](https://github.com/przemoc/metastore): it is a ready-made solution for plain git. Maybe you can adapt it to git-annex. +"""]] From 1db7a3eddc82db9464d5947e69dc5abd7e98e4a0 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawn26A25mnLHRtWAP587-NPwEFKzolmENL4" Date: Wed, 24 Sep 2014 13:46:04 +0000 Subject: [PATCH 045/370] --- ...__39__t_find_rsync_nor_git-annex_on_server.mdwn | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 doc/forum/Git_annex_assistant_can__39__t_find_rsync_nor_git-annex_on_server.mdwn diff --git a/doc/forum/Git_annex_assistant_can__39__t_find_rsync_nor_git-annex_on_server.mdwn b/doc/forum/Git_annex_assistant_can__39__t_find_rsync_nor_git-annex_on_server.mdwn new file mode 100644 index 0000000000..66d224b3a0 --- /dev/null +++ b/doc/forum/Git_annex_assistant_can__39__t_find_rsync_nor_git-annex_on_server.mdwn @@ -0,0 +1,14 @@ +Hi, I'm trying to setup git annex assistant (my first time). +When I add the server (in "transfert" mode, if that matters) I get the following error: + + "Neither rsync nor git-annex are installed on the server. Perhaps you should go install them?" + +I manually verified that both rsync and git/git-annex are installed and available from PATH in the "annex" account and all seems to be ok. + +Can you suggest a way to get a more specific information on the source of the error? + +My first guess was that this is due to the fact that rsync and git-annex are installed in "non-standard locations". My server run NixOS (http://nixos.org) which has a completely different convention about directory hierarchy from traditional linux/unix OS (that is, no /usr/bin /usr/lib etc.). However, I tried to "cheat" by manually adding symbolic links into a /usr/bin but this didn't work either, so I might be looking in the wrong direction. + +Any suggestion appreciated, thank you in advance, + +Marco From c48cd02f10173bcc55f3cc80eee68c2935cd7dfd Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawn26A25mnLHRtWAP587-NPwEFKzolmENL4" Date: Wed, 24 Sep 2014 14:14:43 +0000 Subject: [PATCH 046/370] Added a comment: Also with standalone git-annex --- .../comment_1_75c599cc26e7d3645f69173861d4f8be._comment | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 doc/forum/Git_annex_assistant_can__39__t_find_rsync_nor_git-annex_on_server/comment_1_75c599cc26e7d3645f69173861d4f8be._comment diff --git a/doc/forum/Git_annex_assistant_can__39__t_find_rsync_nor_git-annex_on_server/comment_1_75c599cc26e7d3645f69173861d4f8be._comment b/doc/forum/Git_annex_assistant_can__39__t_find_rsync_nor_git-annex_on_server/comment_1_75c599cc26e7d3645f69173861d4f8be._comment new file mode 100644 index 0000000000..20b83372e7 --- /dev/null +++ b/doc/forum/Git_annex_assistant_can__39__t_find_rsync_nor_git-annex_on_server/comment_1_75c599cc26e7d3645f69173861d4f8be._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawn26A25mnLHRtWAP587-NPwEFKzolmENL4" + nickname="Marco" + subject="Also with standalone git-annex" + date="2014-09-24T14:14:43Z" + content=""" +Update: I also tried to install the standalone distribution in the home of the annex user on the server as shown in the video (BTW, nice illustration!), but I get the same error. +(On the client side I installed the osx app instead.) +"""]] From 60e6b7422ddcdbe68ea9d6316157ac55a11e9594 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawktbkKjilg70XC9XBFpIgVhtfLYH-0UMHY" Date: Thu, 25 Sep 2014 15:17:54 +0000 Subject: [PATCH 047/370] --- doc/forum/.mdwn | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 doc/forum/.mdwn diff --git a/doc/forum/.mdwn b/doc/forum/.mdwn new file mode 100644 index 0000000000..ae58726f43 --- /dev/null +++ b/doc/forum/.mdwn @@ -0,0 +1,3 @@ +http://stackoverflow.com/questions/26041704/removing-repository-in-git-annex + +Does anyone know a solution for this? From c29e51d5bec591f027be52f87a5d017464ad462e Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawktbkKjilg70XC9XBFpIgVhtfLYH-0UMHY" Date: Thu, 25 Sep 2014 15:18:44 +0000 Subject: [PATCH 048/370] --- doc/forum/Removing_git-annex_repo.mdwn | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 doc/forum/Removing_git-annex_repo.mdwn diff --git a/doc/forum/Removing_git-annex_repo.mdwn b/doc/forum/Removing_git-annex_repo.mdwn new file mode 100644 index 0000000000..a19d6f8ea6 --- /dev/null +++ b/doc/forum/Removing_git-annex_repo.mdwn @@ -0,0 +1,3 @@ +http://stackoverflow.com/questions/26041704/removing-repository-in-git-annex + +Does anyone know how to resolve it? From b538943bc47b7c2690833934fd484fdb6219effd Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 25 Sep 2014 15:42:41 +0000 Subject: [PATCH 049/370] Added a comment --- ...mment_2_496e2f3a61b609ebb28ab55e5c30022b._comment | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 doc/forum/Git_annex_assistant_can__39__t_find_rsync_nor_git-annex_on_server/comment_2_496e2f3a61b609ebb28ab55e5c30022b._comment diff --git a/doc/forum/Git_annex_assistant_can__39__t_find_rsync_nor_git-annex_on_server/comment_2_496e2f3a61b609ebb28ab55e5c30022b._comment b/doc/forum/Git_annex_assistant_can__39__t_find_rsync_nor_git-annex_on_server/comment_2_496e2f3a61b609ebb28ab55e5c30022b._comment new file mode 100644 index 0000000000..f0e63837c0 --- /dev/null +++ b/doc/forum/Git_annex_assistant_can__39__t_find_rsync_nor_git-annex_on_server/comment_2_496e2f3a61b609ebb28ab55e5c30022b._comment @@ -0,0 +1,12 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="209.250.56.144" + subject="comment 2" + date="2014-09-25T15:42:41Z" + content=""" +You need to be able to `ssh yourserver which rsync` and have it succeed. That's what git-annex uses to probe if rsync etc is present. + +Note that, since that does not start a login shell, bash doesn't source ~/.bash* at all, or even /etc/profile. So none of the ways people add nonstandard directories to PATH will work. + +So, use this to check the PATH that is available on the system: `ssh yourserver 'echo $PATH'` +"""]] From 2aed36f2cea3505ecaff2e416eece0949444f188 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 25 Sep 2014 15:44:16 +0000 Subject: [PATCH 050/370] Added a comment --- .../comment_1_58fcceb96647a8c7f33d188ae908f3bd._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/forum/Removing_git-annex_repo/comment_1_58fcceb96647a8c7f33d188ae908f3bd._comment diff --git a/doc/forum/Removing_git-annex_repo/comment_1_58fcceb96647a8c7f33d188ae908f3bd._comment b/doc/forum/Removing_git-annex_repo/comment_1_58fcceb96647a8c7f33d188ae908f3bd._comment new file mode 100644 index 0000000000..d03ca6b4e0 --- /dev/null +++ b/doc/forum/Removing_git-annex_repo/comment_1_58fcceb96647a8c7f33d188ae908f3bd._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="209.250.56.144" + subject="comment 1" + date="2014-09-25T15:44:16Z" + content=""" +chmod u+w -R ~/annex/.git +"""]] From e6eb5b4cbc95056e78988e4296c895757db90e88 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 25 Sep 2014 15:48:39 +0000 Subject: [PATCH 051/370] Added a comment --- .../comment_2_3186ebe32c30764b9fd53625dd3e4eda._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/forum/XMPP_problem_behind_router/comment_2_3186ebe32c30764b9fd53625dd3e4eda._comment diff --git a/doc/forum/XMPP_problem_behind_router/comment_2_3186ebe32c30764b9fd53625dd3e4eda._comment b/doc/forum/XMPP_problem_behind_router/comment_2_3186ebe32c30764b9fd53625dd3e4eda._comment new file mode 100644 index 0000000000..63387ae3dd --- /dev/null +++ b/doc/forum/XMPP_problem_behind_router/comment_2_3186ebe32c30764b9fd53625dd3e4eda._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="209.250.56.144" + subject="comment 2" + date="2014-09-25T15:48:39Z" + content=""" +I don't think that google XMPP server is at gmail.com. This suggests that the SRV record lookup to get from the email server to the xmpp server failed somehow. So, I'd look for a issue on the router's DNS server, or perhaps reconfigure DNS to bypass that server. +"""]] From d7d9aba59a849e506b80e06978a879c9704ddf1d Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 25 Sep 2014 15:52:04 +0000 Subject: [PATCH 052/370] Added a comment --- .../comment_1_67ac7e8b53a4374baf640d32dac79030._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__/comment_1_67ac7e8b53a4374baf640d32dac79030._comment diff --git a/doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__/comment_1_67ac7e8b53a4374baf640d32dac79030._comment b/doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__/comment_1_67ac7e8b53a4374baf640d32dac79030._comment new file mode 100644 index 0000000000..21adc4ef99 --- /dev/null +++ b/doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__/comment_1_67ac7e8b53a4374baf640d32dac79030._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="209.250.56.144" + subject="comment 1" + date="2014-09-25T15:52:04Z" + content=""" +Yes, you need to use git to either revert the repository to a previous version that had the file, or perhaps just revert the commit where the file was deleted. Either way, this requires letting git modify files in the repository, which is prevented by direct mode. So, if you can `git annex indirect` to switch to indirect mode, your git commands will work then. +"""]] From aa41c8324d2950b4df1a412c8ed0d6327708b214 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 25 Sep 2014 15:59:34 +0000 Subject: [PATCH 053/370] Added a comment --- ...mment_6_cf877a3502802492cd2bc3012cb2d779._comment | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 doc/forum/assistant_created_encrypted__backup_remote:_Howto_restore__63__/comment_6_cf877a3502802492cd2bc3012cb2d779._comment diff --git a/doc/forum/assistant_created_encrypted__backup_remote:_Howto_restore__63__/comment_6_cf877a3502802492cd2bc3012cb2d779._comment b/doc/forum/assistant_created_encrypted__backup_remote:_Howto_restore__63__/comment_6_cf877a3502802492cd2bc3012cb2d779._comment new file mode 100644 index 0000000000..3765a67cc6 --- /dev/null +++ b/doc/forum/assistant_created_encrypted__backup_remote:_Howto_restore__63__/comment_6_cf877a3502802492cd2bc3012cb2d779._comment @@ -0,0 +1,12 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="209.250.56.144" + subject="comment 6" + date="2014-09-25T15:59:34Z" + content=""" +Right. + +So, I think I should go change the description displayed by the webapp to \"full backup (file contents only)\" and \"full backup (entire git repository)\" or so. It's a little hard to word it precisely without making it hard to understand. + +Or, the webapp could display a nudge to make a clone when no other clones of the git repository exist. I think that's probably more valuable, so [[todo_added|todo/webapp_nudge_when_less_than_numcopies_clones]]. +"""]] From 1b2fc792a36531e579519e22150e88649308a7e6 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawktbkKjilg70XC9XBFpIgVhtfLYH-0UMHY" Date: Thu, 25 Sep 2014 16:06:41 +0000 Subject: [PATCH 054/370] removed --- doc/forum/Removing_git-annex_repo.mdwn | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 doc/forum/Removing_git-annex_repo.mdwn diff --git a/doc/forum/Removing_git-annex_repo.mdwn b/doc/forum/Removing_git-annex_repo.mdwn deleted file mode 100644 index a19d6f8ea6..0000000000 --- a/doc/forum/Removing_git-annex_repo.mdwn +++ /dev/null @@ -1,3 +0,0 @@ -http://stackoverflow.com/questions/26041704/removing-repository-in-git-annex - -Does anyone know how to resolve it? From fc23efec881e63b454822bea3d1fc55eea2a397d Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 25 Sep 2014 16:07:08 +0000 Subject: [PATCH 055/370] --- doc/todo/webapp_nudge_when_less_than_numcopies_clones.mdwn | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 doc/todo/webapp_nudge_when_less_than_numcopies_clones.mdwn diff --git a/doc/todo/webapp_nudge_when_less_than_numcopies_clones.mdwn b/doc/todo/webapp_nudge_when_less_than_numcopies_clones.mdwn new file mode 100644 index 0000000000..ee38d0fffb --- /dev/null +++ b/doc/todo/webapp_nudge_when_less_than_numcopies_clones.mdwn @@ -0,0 +1,7 @@ +Currently, nothing stops a user from setting up ~/annex, adding some special remote, and never once ending up with a clone of their repository, so there is really no backup of the repository as a whole, despite the special remotes. + +Potentially adding to the confusion, they might have remotes in repository groups "full backup" or "backup", and so think everything is backed up. + +Webapp could count the number of known remote uuids that are not special remotes, and require there to be at least numcopies of them (excluding the current repo I suppose), and pop up a nudge with a button that presents the various available ways to make a non-special remote. + +Working out if a remote uuid is a special remote is probably the hard bit. A special remote will be listed in uuid.log, with a type other than gcrypt or git. Any other uuid, that is not dead, can count as 1 clone. This does not handle git remotes that are not using git-annex (eg github), so it could also look through the git remote list and count any that don't have an annex-uuid. From 3c895e0368ea531e1bdcbe4b67c5da04d1c996ae Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" Date: Thu, 25 Sep 2014 19:25:06 +0000 Subject: [PATCH 056/370] Added a comment --- .../comment_2_eb6df2bfcb3892ae22050a8c5f67ee90._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__/comment_2_eb6df2bfcb3892ae22050a8c5f67ee90._comment diff --git a/doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__/comment_2_eb6df2bfcb3892ae22050a8c5f67ee90._comment b/doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__/comment_2_eb6df2bfcb3892ae22050a8c5f67ee90._comment new file mode 100644 index 0000000000..5963d4b747 --- /dev/null +++ b/doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__/comment_2_eb6df2bfcb3892ae22050a8c5f67ee90._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" + nickname="Emre" + subject="comment 2" + date="2014-09-25T19:25:06Z" + content=""" +Thanks Joeyh, of course i guess checking stuff in git would then lose my timestamps as in the previous post. I recommend, as a feature request, to make file recovery a bit easier if possible. I'm not a git expert and definitely wont use command line stuff for doing this on the long run, unless some more intuitive commands like \"git annex list-old-versions\" or \"git annex show-deleted\" and then \"git annex restore \"filename\" version_no etc. +"""]] From 62e2c3e9c90f0524d02c6c171641d761240c800f Mon Sep 17 00:00:00 2001 From: JerSou Date: Thu, 25 Sep 2014 19:26:03 +0000 Subject: [PATCH 057/370] Added a comment --- ..._10_80572f5fc9874fe76b08b940f1f7f8cf._comment | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 doc/bugs/Can__39__t_add_a_git_repo_to_git_annex:___34__Invalid_path_repo__47__.git__47__X__34___for_many_X/comment_10_80572f5fc9874fe76b08b940f1f7f8cf._comment diff --git a/doc/bugs/Can__39__t_add_a_git_repo_to_git_annex:___34__Invalid_path_repo__47__.git__47__X__34___for_many_X/comment_10_80572f5fc9874fe76b08b940f1f7f8cf._comment b/doc/bugs/Can__39__t_add_a_git_repo_to_git_annex:___34__Invalid_path_repo__47__.git__47__X__34___for_many_X/comment_10_80572f5fc9874fe76b08b940f1f7f8cf._comment new file mode 100644 index 0000000000..3006bd974f --- /dev/null +++ b/doc/bugs/Can__39__t_add_a_git_repo_to_git_annex:___34__Invalid_path_repo__47__.git__47__X__34___for_many_X/comment_10_80572f5fc9874fe76b08b940f1f7f8cf._comment @@ -0,0 +1,16 @@ +[[!comment format=mdwn + username="JerSou" + ip="82.228.88.32" + subject="comment 10" + date="2014-09-25T19:26:03Z" + content=""" +I have the same thoughts, I thought a workaround (but I don't think ultimately use) : + +> \# for each git repo : + +>mv .git .gitToAnnex + +>ln -s .gitToAnnex .git + +>echo .gitToAnnex >> .gitignore +"""]] From 3cc9b960d92ee4d7e94c85d7960a801404aaa409 Mon Sep 17 00:00:00 2001 From: JerSou Date: Thu, 25 Sep 2014 19:26:58 +0000 Subject: [PATCH 058/370] removed --- ..._10_80572f5fc9874fe76b08b940f1f7f8cf._comment | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 doc/bugs/Can__39__t_add_a_git_repo_to_git_annex:___34__Invalid_path_repo__47__.git__47__X__34___for_many_X/comment_10_80572f5fc9874fe76b08b940f1f7f8cf._comment diff --git a/doc/bugs/Can__39__t_add_a_git_repo_to_git_annex:___34__Invalid_path_repo__47__.git__47__X__34___for_many_X/comment_10_80572f5fc9874fe76b08b940f1f7f8cf._comment b/doc/bugs/Can__39__t_add_a_git_repo_to_git_annex:___34__Invalid_path_repo__47__.git__47__X__34___for_many_X/comment_10_80572f5fc9874fe76b08b940f1f7f8cf._comment deleted file mode 100644 index 3006bd974f..0000000000 --- a/doc/bugs/Can__39__t_add_a_git_repo_to_git_annex:___34__Invalid_path_repo__47__.git__47__X__34___for_many_X/comment_10_80572f5fc9874fe76b08b940f1f7f8cf._comment +++ /dev/null @@ -1,16 +0,0 @@ -[[!comment format=mdwn - username="JerSou" - ip="82.228.88.32" - subject="comment 10" - date="2014-09-25T19:26:03Z" - content=""" -I have the same thoughts, I thought a workaround (but I don't think ultimately use) : - -> \# for each git repo : - ->mv .git .gitToAnnex - ->ln -s .gitToAnnex .git - ->echo .gitToAnnex >> .gitignore -"""]] From b827558f391fa60321f72017a8b0d3b9cf423eea Mon Sep 17 00:00:00 2001 From: JerSou Date: Thu, 25 Sep 2014 19:27:43 +0000 Subject: [PATCH 059/370] Added a comment --- ...10_2c8e8a4f35b392b1cb4dc8104786312d._comment | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 doc/bugs/Can__39__t_add_a_git_repo_to_git_annex:___34__Invalid_path_repo__47__.git__47__X__34___for_many_X/comment_10_2c8e8a4f35b392b1cb4dc8104786312d._comment diff --git a/doc/bugs/Can__39__t_add_a_git_repo_to_git_annex:___34__Invalid_path_repo__47__.git__47__X__34___for_many_X/comment_10_2c8e8a4f35b392b1cb4dc8104786312d._comment b/doc/bugs/Can__39__t_add_a_git_repo_to_git_annex:___34__Invalid_path_repo__47__.git__47__X__34___for_many_X/comment_10_2c8e8a4f35b392b1cb4dc8104786312d._comment new file mode 100644 index 0000000000..b95b3ed686 --- /dev/null +++ b/doc/bugs/Can__39__t_add_a_git_repo_to_git_annex:___34__Invalid_path_repo__47__.git__47__X__34___for_many_X/comment_10_2c8e8a4f35b392b1cb4dc8104786312d._comment @@ -0,0 +1,17 @@ +[[!comment format=mdwn + username="JerSou" + ip="82.228.88.32" + subject="comment 10" + date="2014-09-25T19:27:43Z" + content=""" +I thought a workaround (but I don't think ultimately use) : + +> \# for each git repo : + +> mv .git .gitToAnnex + +> ln -s .gitToAnnex .git + +> echo .gitToAnnex >> .gitignore + +"""]] From adf69dc417eb4d957334e60fc1e9f682bf16dc4e Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 26 Sep 2014 15:08:41 -0400 Subject: [PATCH 060/370] Work around failure to build on mips by using cabal, not Setup, to build in debian/rules. --- debian/cabal-wrapper | 16 ++++++++++++++++ debian/changelog | 2 ++ debian/control | 1 + debian/rules | 3 +-- 4 files changed, 20 insertions(+), 2 deletions(-) create mode 100755 debian/cabal-wrapper diff --git a/debian/cabal-wrapper b/debian/cabal-wrapper new file mode 100755 index 0000000000..e0623f79fb --- /dev/null +++ b/debian/cabal-wrapper @@ -0,0 +1,16 @@ +#!/bin/sh +# It would be more usual to use: +# export CABAL=./Setup +# But Setup currently has a very bad dependency resolver, and very bad +# debugging output, and tends to eat all memory and die on small buildds. +# +# This should be revisited once Debian has a newer ghc than 7.6.3, +# and hopefully gets the improved dependency resolver from cabal. +set -e + +# Avoid cabal writing to HOME, and avoid local cabal settings +# influencing the build. +HOME=$(mktemp -d) +export HOME + +cabal "$@" diff --git a/debian/changelog b/debian/changelog index 41228c5b7d..18a9898c58 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ git-annex (5.20140920) UNRELEASED; urgency=medium * Depend on new enough git for --no-gpg-sign to work. Closes: #762446 + * Work around failure to build on mips by using cabal, not Setup, + to build in debian/rules. -- Joey Hess Mon, 22 Sep 2014 13:50:00 -0400 diff --git a/debian/control b/debian/control index 91747c417c..b2f7d8cca0 100644 --- a/debian/control +++ b/debian/control @@ -4,6 +4,7 @@ Priority: optional Build-Depends: debhelper (>= 9), ghc (>= 7.4), + cabal-install, libghc-mtl-dev (>= 2.1.1), libghc-missingh-dev, libghc-data-default-dev, diff --git a/debian/rules b/debian/rules index 3a0511fa67..7c8f8a560d 100755 --- a/debian/rules +++ b/debian/rules @@ -1,7 +1,6 @@ #!/usr/bin/make -f -# Avoid using cabal, as it writes to $HOME -export CABAL=./Setup +export CABAL=debian/cabal-wrapper # Do use the changelog's version number, rather than making one up. export RELEASE_BUILD=1 From 5e3c41c7aa8dae6b52977c5a911c7b7aa199a139 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 26 Sep 2014 15:09:13 -0400 Subject: [PATCH 061/370] prep release --- debian/changelog | 4 ++-- git-annex.cabal | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 18a9898c58..3ee0374e64 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,10 @@ -git-annex (5.20140920) UNRELEASED; urgency=medium +git-annex (5.20140926) unstable; urgency=high * Depend on new enough git for --no-gpg-sign to work. Closes: #762446 * Work around failure to build on mips by using cabal, not Setup, to build in debian/rules. - -- Joey Hess Mon, 22 Sep 2014 13:50:00 -0400 + -- Joey Hess Fri, 26 Sep 2014 15:09:02 -0400 git-annex (5.20140919) unstable; urgency=high diff --git a/git-annex.cabal b/git-annex.cabal index 5b2b2daca5..9dd8157329 100644 --- a/git-annex.cabal +++ b/git-annex.cabal @@ -1,5 +1,5 @@ Name: git-annex -Version: 5.20140919 +Version: 5.20140926 Cabal-Version: >= 1.8 License: GPL-3 Maintainer: Joey Hess From 7dcd9ad8566a500ec107939a641174b7d0cea547 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 26 Sep 2014 16:01:45 -0400 Subject: [PATCH 062/370] add news item for git-annex 5.20140926 --- doc/news/version_5.20140717.mdwn | 28 ---------------------------- doc/news/version_5.20140926.mdwn | 5 +++++ 2 files changed, 5 insertions(+), 28 deletions(-) delete mode 100644 doc/news/version_5.20140717.mdwn create mode 100644 doc/news/version_5.20140926.mdwn diff --git a/doc/news/version_5.20140717.mdwn b/doc/news/version_5.20140717.mdwn deleted file mode 100644 index 9d7b831837..0000000000 --- a/doc/news/version_5.20140717.mdwn +++ /dev/null @@ -1,28 +0,0 @@ -git-annex 5.20140717 released with [[!toggle text="these changes"]] -[[!toggleable text=""" - * Fix minor FD leak in journal code. Closes: #[754608](http://bugs.debian.org/754608) - * direct: Fix handling of case where a work tree subdirectory cannot - be written to due to permissions. - * migrate: Avoid re-checksumming when migrating from hashE to hash backend. - * uninit: Avoid failing final removal in some direct mode repositories - due to file modes. - * S3: Deal with AWS ACL configurations that do not allow creating or - checking the location of a bucket, but only reading and writing content to - it. - * resolvemerge: New plumbing command that runs the automatic merge conflict - resolver. - * Deal with change in git 2.0 that made indirect mode merge conflict - resolution leave behind old files. - * sync: Fix git sync with local git remotes even when they don't have an - annex.uuid set. (The assistant already did so.) - * Set gcrypt-publish-participants when setting up a gcrypt repository, - to avoid unncessary passphrase prompts. - This is a security/usability tradeoff. To avoid exposing the gpg key - ids who can decrypt the repository, users can unset - gcrypt-publish-participants. - * Install nautilus hooks even when ~/.local/share/nautilus/ does not yet - exist, since it is not automatically created for Gnome 3 users. - * Windows: Move .vbs files out of git\bin, to avoid that being in the - PATH, which caused some weird breakage. (Thanks, divB) - * Windows: Fix locking issue that prevented the webapp starting - (since 5.20140707)."""]] \ No newline at end of file diff --git a/doc/news/version_5.20140926.mdwn b/doc/news/version_5.20140926.mdwn new file mode 100644 index 0000000000..289dd0bbf8 --- /dev/null +++ b/doc/news/version_5.20140926.mdwn @@ -0,0 +1,5 @@ +git-annex 5.20140926 released with [[!toggle text="these changes"]] +[[!toggleable text=""" + * Depend on new enough git for --no-gpg-sign to work. Closes: #[762446](http://bugs.debian.org/762446) + * Work around failure to build on mips by using cabal, not Setup, + to build in debian/rules."""]] \ No newline at end of file From 698cf5442670f31af45bd58318c0e1ed89e331fd Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlg2AidDIIx7EfjLXhyyRtWyWLg_0yxilE" Date: Sat, 27 Sep 2014 00:23:56 +0000 Subject: [PATCH 063/370] --- doc/bugs/hS3_prevents_build.mdwn | 1 + 1 file changed, 1 insertion(+) create mode 100644 doc/bugs/hS3_prevents_build.mdwn diff --git a/doc/bugs/hS3_prevents_build.mdwn b/doc/bugs/hS3_prevents_build.mdwn new file mode 100644 index 0000000000..1d391355f1 --- /dev/null +++ b/doc/bugs/hS3_prevents_build.mdwn @@ -0,0 +1 @@ +The `hS3` dependency doesn't work with the `network` / `network-uri` split, which causes a build failure for `git-annex` in a fresh sandbox with its current version bounds. Either more gymnastics are needed to constrain `network` to accommodate `hS3`, or the `s3-aws` branch could be merged in if it's ready. Building `git-annex` with a `< 2.6` constraint on `network` does succeed. From c83d5b7f44020053c2fec3d7d42acec801db288a Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawk0GR7KgDF6PAzHTkLZCCkjAvJVB7ceXTY" Date: Sat, 27 Sep 2014 10:14:23 +0000 Subject: [PATCH 064/370] --- ...ce_you_tried_to_create_already_exists.mdwn | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 doc/bugs/WebDAV_error_when_connecting_to_box.com:_The_resource_you_tried_to_create_already_exists.mdwn diff --git a/doc/bugs/WebDAV_error_when_connecting_to_box.com:_The_resource_you_tried_to_create_already_exists.mdwn b/doc/bugs/WebDAV_error_when_connecting_to_box.com:_The_resource_you_tried_to_create_already_exists.mdwn new file mode 100644 index 0000000000..a61253066e --- /dev/null +++ b/doc/bugs/WebDAV_error_when_connecting_to_box.com:_The_resource_you_tried_to_create_already_exists.mdwn @@ -0,0 +1,33 @@ +### Please describe the problem. + +"git-annex enableremote box.com" fails with "git-annex: WebDAV test failed". The server returns error message "The resource you tried to create already exists" (see below). + +### What steps will reproduce the problem? + +1. I initialize box.com special remote in desktop. The path at box.com is at "gas/annex". + +2. I enable the box.com special remote in laptop. I got the error I described above. + +### What version of git-annex are you using? On what operating system? + + $ git annex version + git-annex version: 5.20140831-g62e6ad8 + 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 + $ uname -a + Linux tkf-acer 3.12.9-2-ARCH #1 SMP PREEMPT Fri Jan 31 10:22:54 CET 2014 x86_64 GNU/Linux + + +### Please provide any additional information below. + +I ran the following while with appropriate environment variable WEBDAV_USERNAM and WEBDAV_PASSWORD. + + me@desktop$ git-annex initremote box type=webdav url=https://dav.box.com/dav/gas/annex chunk=50mb encryption=shared + + me@laptop$ git-annex enableremote box.com + enableremote box.com (testing WebDAV server...) + + git-annex: WebDAV test failed: StatusCodeException (Status {statusCode = 405, statusMessage = "Method Not Allowed"}) [("Server","nginx"),("Date","Sat, 27 Sep 2014 09:36:42 GMT"),("Content-Type","application/xml; charset=utf-8"),("Content-Length","247"),("Connection","keep-alive"),("Vary","Host"),("Allow","OPTIONS, GET, HEAD, DELETE, PROPFIND, PUT, PROPPATCH, COPY, MOVE, REPORT, LOCK, UNLOCK"),("X-Response-Body-Start","\n\n Sabre_DAV_Exception_MethodNotAllowed\n The resource you tried to create already exists\n\n")] (CJ {expose = []}): user error + failed + git-annex: enableremote: 1 failed From f6ba9b55b767d16b0b63592c7d0ae8ddc1236894 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 27 Sep 2014 11:26:01 -0400 Subject: [PATCH 065/370] close --- ...x.com:_The_resource_you_tried_to_create_already_exists.mdwn | 3 +++ doc/bugs/hS3_prevents_build.mdwn | 2 ++ 2 files changed, 5 insertions(+) diff --git a/doc/bugs/WebDAV_error_when_connecting_to_box.com:_The_resource_you_tried_to_create_already_exists.mdwn b/doc/bugs/WebDAV_error_when_connecting_to_box.com:_The_resource_you_tried_to_create_already_exists.mdwn index a61253066e..857ca333a4 100644 --- a/doc/bugs/WebDAV_error_when_connecting_to_box.com:_The_resource_you_tried_to_create_already_exists.mdwn +++ b/doc/bugs/WebDAV_error_when_connecting_to_box.com:_The_resource_you_tried_to_create_already_exists.mdwn @@ -31,3 +31,6 @@ I ran the following while with appropriate environment variable WEBDAV_USERNAM a git-annex: WebDAV test failed: StatusCodeException (Status {statusCode = 405, statusMessage = "Method Not Allowed"}) [("Server","nginx"),("Date","Sat, 27 Sep 2014 09:36:42 GMT"),("Content-Type","application/xml; charset=utf-8"),("Content-Length","247"),("Connection","keep-alive"),("Vary","Host"),("Allow","OPTIONS, GET, HEAD, DELETE, PROPFIND, PUT, PROPPATCH, COPY, MOVE, REPORT, LOCK, UNLOCK"),("X-Response-Body-Start","\n\n Sabre_DAV_Exception_MethodNotAllowed\n The resource you tried to create already exists\n\n")] (CJ {expose = []}): user error failed git-annex: enableremote: 1 failed + +> You are using an old version of git-annex; this bug was fixed in +> version 5.20140919. [[done]] --[[Joey]] diff --git a/doc/bugs/hS3_prevents_build.mdwn b/doc/bugs/hS3_prevents_build.mdwn index 1d391355f1..1a064b90b6 100644 --- a/doc/bugs/hS3_prevents_build.mdwn +++ b/doc/bugs/hS3_prevents_build.mdwn @@ -1 +1,3 @@ The `hS3` dependency doesn't work with the `network` / `network-uri` split, which causes a build failure for `git-annex` in a fresh sandbox with its current version bounds. Either more gymnastics are needed to constrain `network` to accommodate `hS3`, or the `s3-aws` branch could be merged in if it's ready. Building `git-annex` with a `< 2.6` constraint on `network` does succeed. + +> not a bug in git-annex, but in a dependency it uses, so [[done]]. (I already told the hS3 author about this, which is a very easy fix there, and he promised to fix it soon.) --[[Joey]] From f518858c12381893f0a29fece136a0f7f47be9eb Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 27 Sep 2014 12:15:22 -0400 Subject: [PATCH 066/370] Really depend (not just build-depend) on new enough git for --no-gpg-sign to work. Closes: #763057 --- debian/changelog | 7 +++++++ debian/control | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 3ee0374e64..46c86790bd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +git-annex (5.20140927) UNRELEASED; urgency=medium + + * Really depend (not just build-depend) on new enough git for --no-gpg-sign + to work. Closes: #763057 + + -- Joey Hess Sat, 27 Sep 2014 12:14:15 -0400 + git-annex (5.20140926) unstable; urgency=high * Depend on new enough git for --no-gpg-sign to work. Closes: #762446 diff --git a/debian/control b/debian/control index b2f7d8cca0..ec29aedbfd 100644 --- a/debian/control +++ b/debian/control @@ -84,7 +84,7 @@ Package: git-annex Architecture: any Section: utils Depends: ${misc:Depends}, ${shlibs:Depends}, - git (>= 1:1.8.4), + git (>= 1:2.0), rsync, wget, curl, From 7de9b8ec06a7932532360735e9d7f177db202939 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 27 Sep 2014 14:22:04 -0400 Subject: [PATCH 067/370] Add temporary workaround for bug #763078 which broke building on armel and armhf. --- debian/cabal-wrapper | 4 ++++ debian/changelog | 2 ++ debian/control | 1 + 3 files changed, 7 insertions(+) diff --git a/debian/cabal-wrapper b/debian/cabal-wrapper index e0623f79fb..1326aead75 100755 --- a/debian/cabal-wrapper +++ b/debian/cabal-wrapper @@ -13,4 +13,8 @@ set -e HOME=$(mktemp -d) export HOME +# Temporary workaround for #763078 +PATH=/usr/lib/llvm-3.4/bin:$PATH +export PATH + cabal "$@" diff --git a/debian/changelog b/debian/changelog index 46c86790bd..3f3cdcef0c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,8 @@ git-annex (5.20140927) UNRELEASED; urgency=medium * Really depend (not just build-depend) on new enough git for --no-gpg-sign to work. Closes: #763057 + * Add temporary workaround for bug #763078 which broke building on armel + and armhf. -- Joey Hess Sat, 27 Sep 2014 12:14:15 -0400 diff --git a/debian/control b/debian/control index ec29aedbfd..3b4ee9e847 100644 --- a/debian/control +++ b/debian/control @@ -74,6 +74,7 @@ Build-Depends: curl, openssh-client, git-remote-gcrypt (>= 0.20130908-6), + llvm-3.4 [armel armhf], Maintainer: Joey Hess Standards-Version: 3.9.5 Vcs-Git: git://git.kitenet.net/git-annex From a001207aefb9a3fad3815ce52d3b13506198631b Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 27 Sep 2014 14:25:15 -0400 Subject: [PATCH 068/370] prep release --- debian/changelog | 4 ++-- git-annex.cabal | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 3f3cdcef0c..ae0e2c7581 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,11 @@ -git-annex (5.20140927) UNRELEASED; urgency=medium +git-annex (5.20140927) unstable; urgency=medium * Really depend (not just build-depend) on new enough git for --no-gpg-sign to work. Closes: #763057 * Add temporary workaround for bug #763078 which broke building on armel and armhf. - -- Joey Hess Sat, 27 Sep 2014 12:14:15 -0400 + -- Joey Hess Sat, 27 Sep 2014 14:25:09 -0400 git-annex (5.20140926) unstable; urgency=high diff --git a/git-annex.cabal b/git-annex.cabal index 9dd8157329..84448eca7d 100644 --- a/git-annex.cabal +++ b/git-annex.cabal @@ -1,5 +1,5 @@ Name: git-annex -Version: 5.20140926 +Version: 5.20140927 Cabal-Version: >= 1.8 License: GPL-3 Maintainer: Joey Hess From 1d29045eb677e85cd989122196f2d8bd5b0c84a0 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawk0GR7KgDF6PAzHTkLZCCkjAvJVB7ceXTY" Date: Sat, 27 Sep 2014 19:46:08 +0000 Subject: [PATCH 069/370] Added a comment --- .../comment_1_ac40ddc26bff27dafdbc457837695a92._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/bugs/WebDAV_error_when_connecting_to_box.com:_The_resource_you_tried_to_create_already_exists/comment_1_ac40ddc26bff27dafdbc457837695a92._comment diff --git a/doc/bugs/WebDAV_error_when_connecting_to_box.com:_The_resource_you_tried_to_create_already_exists/comment_1_ac40ddc26bff27dafdbc457837695a92._comment b/doc/bugs/WebDAV_error_when_connecting_to_box.com:_The_resource_you_tried_to_create_already_exists/comment_1_ac40ddc26bff27dafdbc457837695a92._comment new file mode 100644 index 0000000000..89ab74c696 --- /dev/null +++ b/doc/bugs/WebDAV_error_when_connecting_to_box.com:_The_resource_you_tried_to_create_already_exists/comment_1_ac40ddc26bff27dafdbc457837695a92._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawk0GR7KgDF6PAzHTkLZCCkjAvJVB7ceXTY" + nickname="Takafumi" + subject="comment 1" + date="2014-09-27T19:46:08Z" + content=""" +I updated git-annex and it works. Thank you very much. +"""]] From 931d7eab4975b2128ec7d8e595f73e1895e6d152 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 27 Sep 2014 15:54:26 -0400 Subject: [PATCH 070/370] add news item for git-annex 5.20140927 --- doc/news/version_5.20140817.mdwn | 42 -------------------------------- doc/news/version_5.20140927.mdwn | 6 +++++ 2 files changed, 6 insertions(+), 42 deletions(-) delete mode 100644 doc/news/version_5.20140817.mdwn create mode 100644 doc/news/version_5.20140927.mdwn diff --git a/doc/news/version_5.20140817.mdwn b/doc/news/version_5.20140817.mdwn deleted file mode 100644 index 82e44eb573..0000000000 --- a/doc/news/version_5.20140817.mdwn +++ /dev/null @@ -1,42 +0,0 @@ -git-annex 5.20140817 released with [[!toggle text="these changes"]] -[[!toggleable text=""" - * New chunk= option to chunk files stored in special remotes. - Supported by: directory, S3, webdav, gcrypt, rsync, and all external - and hook special remotes. - * Partially transferred files are automatically resumed when using - chunked remotes! - * The old chunksize= option is deprecated. Do not use for new remotes. - * Legacy code for directory remotes using the old chunksize= option - will keep them working, but more slowly than before. - * webapp: Automatically install Konqueror integration scripts - to get and drop files. - * repair: Removing bad objects could leave fsck finding no more - unreachable objects, but some branches no longer accessible. - Fix this, including support for fixing up repositories that - were incompletely repaired before. - * Fix cost calculation for non-encrypted remotes. - * Display exception message when a transfer fails due to an exception. - * WebDAV: Sped up by avoiding making multiple http connections - when storing a file. - * WebDAV: Avoid buffering whole file in memory when uploading and - downloading. - * WebDAV: Dropped support for DAV before 1.0. - * testremote: New command to test uploads/downloads to a remote. - * Dropping an object from a bup special remote now deletes the git branch - for the object, although of course the object's content cannot be deleted - due to the nature of bup. - * unlock: Better error handling; continue past files that are not available - or cannot be unlocked due to disk space, and try all specified files. - * Windows: Now uses actual inode equivilants in new direct mode - repositories, for safer detection of eg, renaming of files with the same - size and mtime. - * direct: Fix ugly warning messages. - * WORM backend: When adding a file in a subdirectory, avoid including the - subdirectory in the key name. - * S3, Glacier, WebDAV: Fix bug that prevented accessing the creds - when the repository was configured with encryption=shared embedcreds=yes. - * direct: Avoid leaving file content in misctemp if interrupted. - * git-annex-shell sendkey: Don't fail if a remote asks for a key to be sent - that already has a transfer lock file indicating it's being sent to that - remote. The remote may have moved between networks, or reconnected. - * Switched from the old haskell HTTP library to http-conduit."""]] \ No newline at end of file diff --git a/doc/news/version_5.20140927.mdwn b/doc/news/version_5.20140927.mdwn new file mode 100644 index 0000000000..9aabf15946 --- /dev/null +++ b/doc/news/version_5.20140927.mdwn @@ -0,0 +1,6 @@ +git-annex 5.20140927 released with [[!toggle text="these changes"]] +[[!toggleable text=""" + * Really depend (not just build-depend) on new enough git for --no-gpg-sign + to work. Closes: #[763057](http://bugs.debian.org/763057) + * Add temporary workaround for bug #763078 which broke building on armel + and armhf."""]] \ No newline at end of file From 37224068b97d9b45ee0a88c424fb887cf4111107 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 27 Sep 2014 16:01:57 -0400 Subject: [PATCH 071/370] devblog --- .../day_222_preparing_for_debian_release.mdwn | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 doc/devblog/day_222_preparing_for_debian_release.mdwn diff --git a/doc/devblog/day_222_preparing_for_debian_release.mdwn b/doc/devblog/day_222_preparing_for_debian_release.mdwn new file mode 100644 index 0000000000..62acc02b22 --- /dev/null +++ b/doc/devblog/day_222_preparing_for_debian_release.mdwn @@ -0,0 +1,12 @@ +Made two releases of git-annex, yesterday and today, which turned out to +contain only Debian changes. So no need for other users to upgrade. + +This included fixing building on mips, and arm architectures. +The mips build was running out of memory, and I was able to work around +that. Then the arm builds broke today, because of a recent change to the +version of llvm that has completely trashed ghc. Luckily, I was able +to work around that too. + +Hopefully that will get last week's security fix into Debian testing, +and otherwise have git-annex in Debian in good shape for the upcoming +freeze. From d0f6c658522b7d4ec2da68b28c34ea226a97633e Mon Sep 17 00:00:00 2001 From: "https://me.yahoo.com/a/wbh0dY54mcPwTpeOweuPQ8JiZrH3hg--#9b726" Date: Mon, 29 Sep 2014 01:38:15 +0000 Subject: [PATCH 072/370] Added a comment --- .../comment_3_7fa8fe8cb92993c935ba2dbfb2aef728._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/forum/XMPP_problem_behind_router/comment_3_7fa8fe8cb92993c935ba2dbfb2aef728._comment diff --git a/doc/forum/XMPP_problem_behind_router/comment_3_7fa8fe8cb92993c935ba2dbfb2aef728._comment b/doc/forum/XMPP_problem_behind_router/comment_3_7fa8fe8cb92993c935ba2dbfb2aef728._comment new file mode 100644 index 0000000000..d8ee076f64 --- /dev/null +++ b/doc/forum/XMPP_problem_behind_router/comment_3_7fa8fe8cb92993c935ba2dbfb2aef728._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="https://me.yahoo.com/a/wbh0dY54mcPwTpeOweuPQ8JiZrH3hg--#9b726" + nickname="Joe" + subject="comment 3" + date="2014-09-29T01:38:14Z" + content=""" +Thanks, that seemed to be the problem! My router's dnsmasq had the 'filterwin2k' option set, which apparently [blocks queries for SRV records](http://wiki.openwrt.org/doc/howto/dhcp.dnsmasq#sip-phones.and.dnsmasq). This may be fixed in newer OpenWRT versions, but my device is no longer supported. +"""]] From e17316b01d5fa501329b2b6ed5691601c292f448 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U" Date: Mon, 29 Sep 2014 08:07:55 +0000 Subject: [PATCH 073/370] Added a comment --- ..._f620888512cd78628f82ec9e5eed4ad1._comment | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 doc/bugs/S3_upload_not_using_multipart/comment_7_f620888512cd78628f82ec9e5eed4ad1._comment diff --git a/doc/bugs/S3_upload_not_using_multipart/comment_7_f620888512cd78628f82ec9e5eed4ad1._comment b/doc/bugs/S3_upload_not_using_multipart/comment_7_f620888512cd78628f82ec9e5eed4ad1._comment new file mode 100644 index 0000000000..ec47aa2be9 --- /dev/null +++ b/doc/bugs/S3_upload_not_using_multipart/comment_7_f620888512cd78628f82ec9e5eed4ad1._comment @@ -0,0 +1,21 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U" + nickname="Richard" + subject="comment 7" + date="2014-09-29T08:07:55Z" + content=""" +As I found the latest comment confusing, here's the full quote: + + Depending on the size of the data you are uploading, Amazon S3 offers the following options: + + Upload objects in a single operation—With a single PUT operation you can upload objects up to 5 GB in size. + + Upload objects in parts—Using the Multipart upload API you can upload large objects, up to 5 TB. + + The Multipart Upload API is designed to improve the upload experience for larger objects. You can upload objects in parts. + These object parts can be uploaded independently, in any order, and in parallel. + You can use a Multipart Upload for objects from 5 MB to 5 TB in size. + + We encourage Amazon S3 customers to use Multipart Upload for objects greater than 100 MB. + +"""]] From cbd772eaff78bb16576a4fcc6b5067fa90e15efc Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U" Date: Mon, 29 Sep 2014 08:09:33 +0000 Subject: [PATCH 074/370] Added a comment --- .../comment_8_4d9242cde0d2348452438659a8aa8d6d._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/bugs/S3_upload_not_using_multipart/comment_8_4d9242cde0d2348452438659a8aa8d6d._comment diff --git a/doc/bugs/S3_upload_not_using_multipart/comment_8_4d9242cde0d2348452438659a8aa8d6d._comment b/doc/bugs/S3_upload_not_using_multipart/comment_8_4d9242cde0d2348452438659a8aa8d6d._comment new file mode 100644 index 0000000000..a427c504e5 --- /dev/null +++ b/doc/bugs/S3_upload_not_using_multipart/comment_8_4d9242cde0d2348452438659a8aa8d6d._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U" + nickname="Richard" + subject="comment 8" + date="2014-09-29T08:09:33Z" + content=""" +PS: Chunking spams the S3 remote with individual objects whereas multipart uploads do not. Just something to keep in mind in case you turn on chunking for S3. +"""]] From 0bfc4875e2637e6e1b760d71c35d7cbb22f573bd Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmyYyXrtGKiR3Pu2OjdVsETXf4ePmECW54" Date: Mon, 29 Sep 2014 10:48:37 +0000 Subject: [PATCH 075/370] Added a comment --- .../comment_9_27a31463bcf28b5c684bb483b46a3baf._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/bugs/runs_of_of_memory_adding_2_million_files/comment_9_27a31463bcf28b5c684bb483b46a3baf._comment diff --git a/doc/bugs/runs_of_of_memory_adding_2_million_files/comment_9_27a31463bcf28b5c684bb483b46a3baf._comment b/doc/bugs/runs_of_of_memory_adding_2_million_files/comment_9_27a31463bcf28b5c684bb483b46a3baf._comment new file mode 100644 index 0000000000..fe421a450d --- /dev/null +++ b/doc/bugs/runs_of_of_memory_adding_2_million_files/comment_9_27a31463bcf28b5c684bb483b46a3baf._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawmyYyXrtGKiR3Pu2OjdVsETXf4ePmECW54" + nickname="Andrey" + subject="comment 9" + date="2014-09-29T10:48:36Z" + content=""" +Joeyh, in what version it was fixed? I really need it for Ubuntu 14.04 +"""]] From 1d5bde3be5acaaf20f1113ba34d275862e99cf87 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 29 Sep 2014 14:08:29 -0400 Subject: [PATCH 076/370] Adjust cabal file to support building w/o assistant on the hurd. I used to have this and hackage rejected the os(gnu), so I am going to see if the new hackage still rejects it. --- debian/changelog | 6 ++++++ git-annex.cabal | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index ae0e2c7581..79e56d9496 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +git-annex (5.20140928) UNRELEASED; urgency=medium + + * Adjust cabal file to support building w/o assistant on the hurd. + + -- Joey Hess Mon, 29 Sep 2014 14:07:51 -0400 + git-annex (5.20140927) unstable; urgency=medium * Really depend (not just build-depend) on new enough git for --no-gpg-sign diff --git a/git-annex.cabal b/git-annex.cabal index 84448eca7d..fe5a8bb276 100644 --- a/git-annex.cabal +++ b/git-annex.cabal @@ -153,7 +153,7 @@ Executable git-annex Build-Depends: DAV (>= 1.0), http-client CPP-Options: -DWITH_WEBDAV - if flag(Assistant) && ! os(solaris) + if flag(Assistant) && ! os(solaris) && ! os(gnu) CPP-Options: -DWITH_ASSISTANT if flag(Assistant) @@ -174,8 +174,9 @@ Executable git-annex Build-Depends: hinotify CPP-Options: -DWITH_INOTIFY else - CPP-Options: -DWITH_KQUEUE - C-Sources: Utility/libkqueue.c + if ! os(gnu) + CPP-Options: -DWITH_KQUEUE + C-Sources: Utility/libkqueue.c if (os(linux)) if flag(Dbus) From d2b2f2361c5a3814aee15babe962ae4bb7033f86 Mon Sep 17 00:00:00 2001 From: sudoman Date: Mon, 29 Sep 2014 18:58:23 +0000 Subject: [PATCH 077/370] Added a comment: ls symlink workaround; idea for a solution --- ..._24c54ed70220974b98700bf717d1e770._comment | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 doc/forum/git_annex_ls___47___metadata_in_git_annex_whereis/comment_3_24c54ed70220974b98700bf717d1e770._comment diff --git a/doc/forum/git_annex_ls___47___metadata_in_git_annex_whereis/comment_3_24c54ed70220974b98700bf717d1e770._comment b/doc/forum/git_annex_ls___47___metadata_in_git_annex_whereis/comment_3_24c54ed70220974b98700bf717d1e770._comment new file mode 100644 index 0000000000..67ff59d324 --- /dev/null +++ b/doc/forum/git_annex_ls___47___metadata_in_git_annex_whereis/comment_3_24c54ed70220974b98700bf717d1e770._comment @@ -0,0 +1,29 @@ +[[!comment format=mdwn + username="sudoman" + ip="216.15.125.93" + subject="ls symlink workaround; idea for a solution" + date="2014-09-29T18:58:23Z" + content=""" +as a workaround, you could make a bash alias for `ls -l` -> `ls -lL`. the problem with this is that links to other links are fully dereferenced. + +what looks like this in a non-git-annex directory with `ls -lh`: + + total 3.8M + -rw-r--r-- 1 sudoman sudoman 3.8M Sep 29 13:56 42x3551_02.pdf + lrwxrwxrwx 1 sudoman sudoman 14 Sep 29 14:00 tmp -> 42x3551_02.pdf + +looks like this in an indirect git annex repo with `ls -lhL`: + + total 7.5M + -r--r--r-- 1 sudoman sudoman 3.8M Sep 29 13:56 42x3551_02.pdf + -r--r--r-- 1 sudoman sudoman 3.8M Sep 29 13:56 tmp + + +the ls alias is a bit hackish, but for some purposes it's an improvement. + +rsync may work as desired when using a command like `rsync -l --safe-links` (haven't tried it. users might want to experiment by adding `--exclude` to that command.) + + +a potential solution for ls (and cp) could be the inclusion of a patched version under `git annex util ls`. writing shim programs using `LD_PRELOAD` instead of patching may drastically reduce the amount of code needing future security updates. + +"""]] From 5e0b94901d941d570aa7943e72b7d2ebf9b396cf Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawnvr2UPmp7ABeH0yI8KGAHCqFhl91Ju4Tc" Date: Mon, 29 Sep 2014 21:37:44 +0000 Subject: [PATCH 078/370] Added a comment: HTTP Authentication? --- ...t_8_3f32d536f51d5e9908953caf5736b0a0._comment | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 doc/tips/using_the_web_as_a_special_remote/comment_8_3f32d536f51d5e9908953caf5736b0a0._comment diff --git a/doc/tips/using_the_web_as_a_special_remote/comment_8_3f32d536f51d5e9908953caf5736b0a0._comment b/doc/tips/using_the_web_as_a_special_remote/comment_8_3f32d536f51d5e9908953caf5736b0a0._comment new file mode 100644 index 0000000000..c3403500a3 --- /dev/null +++ b/doc/tips/using_the_web_as_a_special_remote/comment_8_3f32d536f51d5e9908953caf5736b0a0._comment @@ -0,0 +1,16 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawnvr2UPmp7ABeH0yI8KGAHCqFhl91Ju4Tc" + nickname="Calvin" + subject="HTTP Authentication?" + date="2014-09-29T21:37:44Z" + content=""" +Hi! + +I have a somewhat interesting use case. My course notes require HTTP authentication. This is possible with wget, but is there any way to make git annex do it? + +[wget authentication stuff!](http://stackoverflow.com/questions/4272770/wget-with-authentication) + +It would be nice to have the user and pass encrypted with GPG too. This might be a strange use case, but I can see other people wanting to do something like this in the future. + +Thanks! +"""]] From a7664cb3ef303d305f9bf0bbd470c0b0046ee9cb Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawl9E2RtzAPoLdlotPx1Ux90Lgie3y2U-fk" Date: Tue, 30 Sep 2014 10:01:26 +0000 Subject: [PATCH 079/370] --- ...stricted_by_rssh._Allowed_commands:_scp_rsync__160__.mdwn | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 doc/forum/This_account_is_restricted_by_rssh._Allowed_commands:_scp_rsync__160__.mdwn diff --git a/doc/forum/This_account_is_restricted_by_rssh._Allowed_commands:_scp_rsync__160__.mdwn b/doc/forum/This_account_is_restricted_by_rssh._Allowed_commands:_scp_rsync__160__.mdwn new file mode 100644 index 0000000000..932c78a9a8 --- /dev/null +++ b/doc/forum/This_account_is_restricted_by_rssh._Allowed_commands:_scp_rsync__160__.mdwn @@ -0,0 +1,5 @@ +Hello, + +I'm using the git-annex assistant (in Mac Mavericks) and I'm trying to create a new remote rsync repo, I have the details and everything but I can't do it over ssh, I need the call to use rsync otherwise I get: **This account is restricted by rssh. Allowed commands: scp rsync ** . Can this be changed manually? How can I create a remote rsync repo? + +Thanks From 1b11fbe9c85264d2d9117e34c1aef38d0ac3f5b1 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 30 Sep 2014 13:39:20 -0400 Subject: [PATCH 080/370] add note about wheey backport container --- doc/install/Docker.mdwn | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/install/Docker.mdwn b/doc/install/Docker.mdwn index f3d7c189e0..fd7ff1cd22 100644 --- a/doc/install/Docker.mdwn +++ b/doc/install/Docker.mdwn @@ -30,3 +30,10 @@ import qualified Propellor.Property.SiteSpecific.GitAnnexBuilder as GitAnnexBuil This will autobuild every hour at :15, and the autobuilt image will be left inside the container in /home/builder/gitbuilder/out/ + +# container for backport building + +For building the Debian stable backport, the container +`joeyh/git-annex-wheezy-backport` is used. This is nothing special, it +just has the right versions of build dependencies installed from Debian +stable and backports. From 3f87fd453d74c91cf872254bceebe5966007ff59 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Tue, 30 Sep 2014 18:09:04 +0000 Subject: [PATCH 081/370] Added a comment --- .../comment_9_b420b1f320d620a9909cce5086c549bf._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/tips/using_the_web_as_a_special_remote/comment_9_b420b1f320d620a9909cce5086c549bf._comment diff --git a/doc/tips/using_the_web_as_a_special_remote/comment_9_b420b1f320d620a9909cce5086c549bf._comment b/doc/tips/using_the_web_as_a_special_remote/comment_9_b420b1f320d620a9909cce5086c549bf._comment new file mode 100644 index 0000000000..d6b194d69a --- /dev/null +++ b/doc/tips/using_the_web_as_a_special_remote/comment_9_b420b1f320d620a9909cce5086c549bf._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="209.250.56.55" + subject="comment 9" + date="2014-09-30T18:09:04Z" + content=""" +For urls using http basic auth, you can use the standard url form, http://username:password@example.org/url/ , which should work with `git annex addurl`. The url, including the password, will be stored in the git-annex branch though. If you want to protect the password from being exposed to anyone who gets a clone of the repository, just download manually, and then `git annex add` the file. +"""]] From c8a83144acfd00aa541353cccbde66f4b81d4134 Mon Sep 17 00:00:00 2001 From: "https://id.koumbit.net/anarcat" Date: Wed, 1 Oct 2014 02:02:40 +0000 Subject: [PATCH 082/370] Added a comment --- .../comment_3_e7096737268cf66fce2709e9e4937f51._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/tips/file_manager_integration/comment_3_e7096737268cf66fce2709e9e4937f51._comment diff --git a/doc/tips/file_manager_integration/comment_3_e7096737268cf66fce2709e9e4937f51._comment b/doc/tips/file_manager_integration/comment_3_e7096737268cf66fce2709e9e4937f51._comment new file mode 100644 index 0000000000..1c3c7eeb58 --- /dev/null +++ b/doc/tips/file_manager_integration/comment_3_e7096737268cf66fce2709e9e4937f51._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="https://id.koumbit.net/anarcat" + ip="72.0.72.144" + subject="comment 3" + date="2014-10-01T02:02:39Z" + content=""" +for some reason this doesn't work in gnome2. i had to add the shortcuts in /usr/share/nautilus-scripts (iirc). --[[anarcat]] +"""]] From d36ca0f563dae9c106096788d0dfce7cf53ca6b8 Mon Sep 17 00:00:00 2001 From: "https://id.koumbit.net/anarcat" Date: Wed, 1 Oct 2014 02:19:53 +0000 Subject: [PATCH 083/370] auto-detect xbmc library location, clarify --- .../git-annex-xbmc-playcount.pl | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/doc/tips/dumb_metadata_extraction_from_xbmc/git-annex-xbmc-playcount.pl b/doc/tips/dumb_metadata_extraction_from_xbmc/git-annex-xbmc-playcount.pl index 76ad336494..3e2bd9bce0 100644 --- a/doc/tips/dumb_metadata_extraction_from_xbmc/git-annex-xbmc-playcount.pl +++ b/doc/tips/dumb_metadata_extraction_from_xbmc/git-annex-xbmc-playcount.pl @@ -1,7 +1,24 @@ #! /usr/bin/perl -w -my $dbpath="/home/video/.xbmc/userdata/Database/MyVideos75.db"; +# we want to operate on relative links, so set this to the common prefix +# to the git annex repo my $prefix="/home/media/video/"; +# this is the directory for the XBMC database +my $path = '/home/video/.xbmc/userdata/Database/'; + +# no user-serviceable parts below + +# list videos database, find the latest one +# modified version of +# http://stackoverflow.com/questions/4651092/getting-the-list-of-files-sorted-by-modification-date-in-perl +opendir my($dirh), $path or die "can't opendir $path: $!"; +my @flist = sort { -M $a <=> -M $b } # Sort by modification time + map { "$path/$_" } # We need full paths for sorting + grep { /^MyVideos.*\.db$/ } + readdir $dirh; +closedir $dirh; + +my $dbpath=$flist[0]; my @lines = `echo 'SELECT playCount, path.strPath, files.strFileName FROM movie JOIN files ON files.idFile=movie.idFile JOIN path ON path.idPath=files.idPath;' | sqlite3 $dbpath`; for (@lines) { @@ -11,7 +28,6 @@ for (@lines) { if ($count !~ /[0-9]/) { $count = 0; } - $dir =~ s/$prefix//; if ($file =~ s#stack://##) { for (split /,/, $file) { s/$prefix//; @@ -22,6 +38,7 @@ for (@lines) { } } else { + $dir =~ s/$prefix//; my @cmd = (qw(git annex metadata --set), "playCount=$count", "$dir$file"); system(@cmd); } From 3ed2efac951c99ff9b0f544e168d2c6f4242b90e Mon Sep 17 00:00:00 2001 From: stp Date: Wed, 1 Oct 2014 12:46:13 +0000 Subject: [PATCH 084/370] Added a comment: Any update --- .../comment_4_bcf68d4b007c429a257cbab4071cd41d._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_4_bcf68d4b007c429a257cbab4071cd41d._comment diff --git a/doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_4_bcf68d4b007c429a257cbab4071cd41d._comment b/doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_4_bcf68d4b007c429a257cbab4071cd41d._comment new file mode 100644 index 0000000000..3434057ee0 --- /dev/null +++ b/doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_4_bcf68d4b007c429a257cbab4071cd41d._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="stp" + ip="91.34.113.105" + subject="Any update" + date="2014-10-01T12:46:13Z" + content=""" +Any update +"""]] From 1ad4058ec3e2cda1a6bc32bfbef3b156f1bd09f6 Mon Sep 17 00:00:00 2001 From: stp Date: Wed, 1 Oct 2014 12:46:24 +0000 Subject: [PATCH 085/370] Added a comment: Any update --- .../comment_5_11e51dab6c2c9b848cef95124cb8f198._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_5_11e51dab6c2c9b848cef95124cb8f198._comment diff --git a/doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_5_11e51dab6c2c9b848cef95124cb8f198._comment b/doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_5_11e51dab6c2c9b848cef95124cb8f198._comment new file mode 100644 index 0000000000..7481234fad --- /dev/null +++ b/doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_5_11e51dab6c2c9b848cef95124cb8f198._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="stp" + ip="91.34.113.105" + subject="Any update" + date="2014-10-01T12:46:24Z" + content=""" +Any update? +"""]] From 7edd109c4ec36768e88aa0bda1fb13fbddb5c78e Mon Sep 17 00:00:00 2001 From: stp Date: Wed, 1 Oct 2014 12:46:35 +0000 Subject: [PATCH 086/370] Added a comment: Any update --- .../comment_6_4540c31acd63626fbad9bde487ec3005._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_6_4540c31acd63626fbad9bde487ec3005._comment diff --git a/doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_6_4540c31acd63626fbad9bde487ec3005._comment b/doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_6_4540c31acd63626fbad9bde487ec3005._comment new file mode 100644 index 0000000000..54bce5df82 --- /dev/null +++ b/doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_6_4540c31acd63626fbad9bde487ec3005._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="stp" + ip="91.34.113.105" + subject="Any update" + date="2014-10-01T12:46:34Z" + content=""" +Any update? +"""]] From b574984534df96a64daf8dc55b648ba6cf7181f9 Mon Sep 17 00:00:00 2001 From: stp Date: Wed, 1 Oct 2014 12:46:53 +0000 Subject: [PATCH 087/370] removed --- .../comment_5_11e51dab6c2c9b848cef95124cb8f198._comment | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_5_11e51dab6c2c9b848cef95124cb8f198._comment diff --git a/doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_5_11e51dab6c2c9b848cef95124cb8f198._comment b/doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_5_11e51dab6c2c9b848cef95124cb8f198._comment deleted file mode 100644 index 7481234fad..0000000000 --- a/doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_5_11e51dab6c2c9b848cef95124cb8f198._comment +++ /dev/null @@ -1,8 +0,0 @@ -[[!comment format=mdwn - username="stp" - ip="91.34.113.105" - subject="Any update" - date="2014-10-01T12:46:24Z" - content=""" -Any update? -"""]] From e390e283166d828704b88978b69b6f3fd111eccf Mon Sep 17 00:00:00 2001 From: stp Date: Wed, 1 Oct 2014 12:47:18 +0000 Subject: [PATCH 088/370] removed --- .../comment_4_bcf68d4b007c429a257cbab4071cd41d._comment | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_4_bcf68d4b007c429a257cbab4071cd41d._comment diff --git a/doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_4_bcf68d4b007c429a257cbab4071cd41d._comment b/doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_4_bcf68d4b007c429a257cbab4071cd41d._comment deleted file mode 100644 index 3434057ee0..0000000000 --- a/doc/bugs/git_annex_sync_--content_not_syncing_all_objects/comment_4_bcf68d4b007c429a257cbab4071cd41d._comment +++ /dev/null @@ -1,8 +0,0 @@ -[[!comment format=mdwn - username="stp" - ip="91.34.113.105" - subject="Any update" - date="2014-10-01T12:46:13Z" - content=""" -Any update -"""]] From c1f12eeb34497f44768d7b86c1c4f3ebf8b6189c Mon Sep 17 00:00:00 2001 From: stp Date: Wed, 1 Oct 2014 12:47:47 +0000 Subject: [PATCH 089/370] Added a comment: Any update --- .../comment_9_d9121a5172f02df63364f19eae87d011._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/devblog/day_-4__forgetting/comment_9_d9121a5172f02df63364f19eae87d011._comment diff --git a/doc/devblog/day_-4__forgetting/comment_9_d9121a5172f02df63364f19eae87d011._comment b/doc/devblog/day_-4__forgetting/comment_9_d9121a5172f02df63364f19eae87d011._comment new file mode 100644 index 0000000000..a104c2dd26 --- /dev/null +++ b/doc/devblog/day_-4__forgetting/comment_9_d9121a5172f02df63364f19eae87d011._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="stp" + ip="24.134.205.34" + subject="Any update" + date="2014-10-01T12:47:47Z" + content=""" +Any update? +"""]] From 5a79b19a4db48e048a72a9c0ce0868b7abfbb013 Mon Sep 17 00:00:00 2001 From: stp Date: Wed, 1 Oct 2014 12:48:06 +0000 Subject: [PATCH 090/370] Added a comment: Any update --- .../comment_7_f53d0542c9da38e0f6339df8c49c87db._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/bugs/incremental_fsck_should_not_use_sticky_bit/comment_7_f53d0542c9da38e0f6339df8c49c87db._comment diff --git a/doc/bugs/incremental_fsck_should_not_use_sticky_bit/comment_7_f53d0542c9da38e0f6339df8c49c87db._comment b/doc/bugs/incremental_fsck_should_not_use_sticky_bit/comment_7_f53d0542c9da38e0f6339df8c49c87db._comment new file mode 100644 index 0000000000..6d6631bf08 --- /dev/null +++ b/doc/bugs/incremental_fsck_should_not_use_sticky_bit/comment_7_f53d0542c9da38e0f6339df8c49c87db._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="stp" + ip="24.134.205.34" + subject="Any update" + date="2014-10-01T12:48:06Z" + content=""" +Any update? +"""]] From cc357d60fcaaa6dc4052626856cf95d62e2e2858 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawkHdZvkewqKNvo0W-AzztaDCGMAU7Y0Stc" Date: Wed, 1 Oct 2014 14:08:14 +0000 Subject: [PATCH 091/370] --- doc/forum/using_git-annex_with_lightroom.mdwn | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 doc/forum/using_git-annex_with_lightroom.mdwn diff --git a/doc/forum/using_git-annex_with_lightroom.mdwn b/doc/forum/using_git-annex_with_lightroom.mdwn new file mode 100644 index 0000000000..605f2b9030 --- /dev/null +++ b/doc/forum/using_git-annex_with_lightroom.mdwn @@ -0,0 +1,6 @@ +I'm using git-annex to sync my photos across multiple computers, and it works beautifully. I would also like to sync Lightroom catalogues. The photo editing program creates a *.lrdata directory where it stores the edits in its own tree format. Merging two such directories obviously creates a mess. + +Is there an elegant way to tell git-annex to treat the whole directory as a single file and overwrite the whole directory structure at once? I'm guessing the same problem occurs with mac os packages. + +Many thanks! +Alex From f84de2760d925651ba972415bbbcc1de3dbdde9f Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY" Date: Wed, 1 Oct 2014 22:02:44 +0000 Subject: [PATCH 092/370] Added a comment --- .../comment_5_c95c8b9bd617830604500213c962fc7a._comment | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 doc/bugs/sync_does_not_preserve_timestamps/comment_5_c95c8b9bd617830604500213c962fc7a._comment diff --git a/doc/bugs/sync_does_not_preserve_timestamps/comment_5_c95c8b9bd617830604500213c962fc7a._comment b/doc/bugs/sync_does_not_preserve_timestamps/comment_5_c95c8b9bd617830604500213c962fc7a._comment new file mode 100644 index 0000000000..7632548cdf --- /dev/null +++ b/doc/bugs/sync_does_not_preserve_timestamps/comment_5_c95c8b9bd617830604500213c962fc7a._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY" + nickname="Tor Arne" + subject="comment 5" + date="2014-10-01T22:02:43Z" + content=""" +I was just about to start using git-annex for my data when I saw this bug report, which unfortunately is a blocker. Persisting basic metadata of files that are synced seems like a core feature of a file sync/transfer tool, so I'm really hoping this can be solved somehow :/ + +"""]] From 21da74870662839da591e652b477352030fc0528 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY" Date: Wed, 1 Oct 2014 22:02:56 +0000 Subject: [PATCH 093/370] Added a comment --- .../comment_6_52842fb7828267894ce59528e7b28b31._comment | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 doc/bugs/sync_does_not_preserve_timestamps/comment_6_52842fb7828267894ce59528e7b28b31._comment diff --git a/doc/bugs/sync_does_not_preserve_timestamps/comment_6_52842fb7828267894ce59528e7b28b31._comment b/doc/bugs/sync_does_not_preserve_timestamps/comment_6_52842fb7828267894ce59528e7b28b31._comment new file mode 100644 index 0000000000..dabc403299 --- /dev/null +++ b/doc/bugs/sync_does_not_preserve_timestamps/comment_6_52842fb7828267894ce59528e7b28b31._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY" + nickname="Tor Arne" + subject="comment 6" + date="2014-10-01T22:02:56Z" + content=""" +I was just about to start using git-annex for my data when I saw this bug report, which unfortunately is a blocker. Persisting basic metadata of files that are synced seems like a core feature of a file sync/transfer tool, so I'm really hoping this can be solved somehow :/ + +"""]] From bc1d83daf1cea60ff89df645ad155f978ef721f6 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY" Date: Wed, 1 Oct 2014 22:08:31 +0000 Subject: [PATCH 094/370] removed --- .../comment_6_52842fb7828267894ce59528e7b28b31._comment | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 doc/bugs/sync_does_not_preserve_timestamps/comment_6_52842fb7828267894ce59528e7b28b31._comment diff --git a/doc/bugs/sync_does_not_preserve_timestamps/comment_6_52842fb7828267894ce59528e7b28b31._comment b/doc/bugs/sync_does_not_preserve_timestamps/comment_6_52842fb7828267894ce59528e7b28b31._comment deleted file mode 100644 index dabc403299..0000000000 --- a/doc/bugs/sync_does_not_preserve_timestamps/comment_6_52842fb7828267894ce59528e7b28b31._comment +++ /dev/null @@ -1,9 +0,0 @@ -[[!comment format=mdwn - username="https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY" - nickname="Tor Arne" - subject="comment 6" - date="2014-10-01T22:02:56Z" - content=""" -I was just about to start using git-annex for my data when I saw this bug report, which unfortunately is a blocker. Persisting basic metadata of files that are synced seems like a core feature of a file sync/transfer tool, so I'm really hoping this can be solved somehow :/ - -"""]] From 44918b9571bce94efd32fe802e445ae0c9714918 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY" Date: Wed, 1 Oct 2014 22:25:24 +0000 Subject: [PATCH 095/370] Added a comment --- ...comment_1_9d7591faf99ce48b1e5753c80306ae8b._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/bugs/present_files__47__directories_are_dropped_after_a_sync/comment_1_9d7591faf99ce48b1e5753c80306ae8b._comment diff --git a/doc/bugs/present_files__47__directories_are_dropped_after_a_sync/comment_1_9d7591faf99ce48b1e5753c80306ae8b._comment b/doc/bugs/present_files__47__directories_are_dropped_after_a_sync/comment_1_9d7591faf99ce48b1e5753c80306ae8b._comment new file mode 100644 index 0000000000..bb81333545 --- /dev/null +++ b/doc/bugs/present_files__47__directories_are_dropped_after_a_sync/comment_1_9d7591faf99ce48b1e5753c80306ae8b._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY" + nickname="Tor Arne" + subject="comment 1" + date="2014-10-01T22:25:24Z" + content=""" +Have you found a solution for this? This seems useful if you're only interested in a subset of files/directories on your laptop, eg, but those that are fetched (present) that you are interested you'd want to keep up to date (in sync) with other computers? + +Btw, the link to the previous discussion didnt work for me. +"""]] From e0cc2f26530b0d2c46bd681e56194c549d5469cb Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY" Date: Wed, 1 Oct 2014 22:39:01 +0000 Subject: [PATCH 096/370] Added a comment --- ...mment_6_b99e00d0bc4258c4cb28b544b19ea3b8._comment | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 doc/bugs/sync_does_not_preserve_timestamps/comment_6_b99e00d0bc4258c4cb28b544b19ea3b8._comment diff --git a/doc/bugs/sync_does_not_preserve_timestamps/comment_6_b99e00d0bc4258c4cb28b544b19ea3b8._comment b/doc/bugs/sync_does_not_preserve_timestamps/comment_6_b99e00d0bc4258c4cb28b544b19ea3b8._comment new file mode 100644 index 0000000000..67fe255950 --- /dev/null +++ b/doc/bugs/sync_does_not_preserve_timestamps/comment_6_b99e00d0bc4258c4cb28b544b19ea3b8._comment @@ -0,0 +1,12 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY" + nickname="Tor Arne" + subject="comment 6" + date="2014-10-01T22:39:01Z" + content=""" +Isn't this what the metadata feature does though? http://git-annex.branchable.com/design/metadata/ + +With annex.genmetadata true set, it should store year and mont (but not day/time? if so why not? + +Is the missing piece of the puzzle to apply the metadata again on checkout? +"""]] From 16fd5c00c511f99580555b693d3b9f9e88a4d3f6 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY" Date: Wed, 1 Oct 2014 22:43:40 +0000 Subject: [PATCH 097/370] Added a comment --- .../comment_7_04cd255a516c8520a7bc1a8fad253533._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/design/metadata/comment_7_04cd255a516c8520a7bc1a8fad253533._comment diff --git a/doc/design/metadata/comment_7_04cd255a516c8520a7bc1a8fad253533._comment b/doc/design/metadata/comment_7_04cd255a516c8520a7bc1a8fad253533._comment new file mode 100644 index 0000000000..12e5042fb9 --- /dev/null +++ b/doc/design/metadata/comment_7_04cd255a516c8520a7bc1a8fad253533._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY" + nickname="Tor Arne" + subject="comment 7" + date="2014-10-01T22:43:40Z" + content=""" +I have the same question as Toby, is there a particular reason the whole timestamp is not stored? +"""]] From faf19e125382207645501ae06e91f11a1da6998c Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY" Date: Wed, 1 Oct 2014 22:45:36 +0000 Subject: [PATCH 098/370] Added a comment: Can tags/metadata be used for preferred content? --- .../comment_8_0a7e55e7626f72f63966fa1e1d2cf100._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/design/metadata/comment_8_0a7e55e7626f72f63966fa1e1d2cf100._comment diff --git a/doc/design/metadata/comment_8_0a7e55e7626f72f63966fa1e1d2cf100._comment b/doc/design/metadata/comment_8_0a7e55e7626f72f63966fa1e1d2cf100._comment new file mode 100644 index 0000000000..965b1932e5 --- /dev/null +++ b/doc/design/metadata/comment_8_0a7e55e7626f72f63966fa1e1d2cf100._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY" + nickname="Tor Arne" + subject="Can tags/metadata be used for preferred content?" + date="2014-10-01T22:45:36Z" + content=""" +Would love to be able to \"tag\" something as archived instead of moving it into a special folder. Coupled with a FinderSync extension on OS X Yosemite for right-click menu. This would allow me to also \"view\" the archive and bring things out of there by \"untagging\" it, if I understand the feature correctly? +"""]] From 9b7bbe334dd4e72d11ee851610bf87b03cff5021 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY" Date: Wed, 1 Oct 2014 23:35:39 +0000 Subject: [PATCH 099/370] Added a comment --- ...comment_9_f0bb62c885a925e0da5ae8ce3c5e9003._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/design/metadata/comment_9_f0bb62c885a925e0da5ae8ce3c5e9003._comment diff --git a/doc/design/metadata/comment_9_f0bb62c885a925e0da5ae8ce3c5e9003._comment b/doc/design/metadata/comment_9_f0bb62c885a925e0da5ae8ce3c5e9003._comment new file mode 100644 index 0000000000..fac3bf135a --- /dev/null +++ b/doc/design/metadata/comment_9_f0bb62c885a925e0da5ae8ce3c5e9003._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY" + nickname="Tor Arne" + subject="comment 9" + date="2014-10-01T23:35:39Z" + content=""" +Sorry for the noise, I see that tags _can_ be used for preferred content, excellent! + +But it seems metadata is tied to a key, not to a specific file/path. If I have 10 different files all with the same content (for some reason, say a simple txt file, Gemspec, or something), and I want to tag one of them as important, it doesn't mean they all are :o +"""]] From af3f7f1a30e8201bf2dfdeffc2c732d8ff14ab00 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 2 Oct 2014 15:23:18 +0000 Subject: [PATCH 100/370] Added a comment --- .../comment_1_ec977efd277f0644767a4fc7064e4baf._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/forum/using_git-annex_with_lightroom/comment_1_ec977efd277f0644767a4fc7064e4baf._comment diff --git a/doc/forum/using_git-annex_with_lightroom/comment_1_ec977efd277f0644767a4fc7064e4baf._comment b/doc/forum/using_git-annex_with_lightroom/comment_1_ec977efd277f0644767a4fc7064e4baf._comment new file mode 100644 index 0000000000..e7e1fa9a60 --- /dev/null +++ b/doc/forum/using_git-annex_with_lightroom/comment_1_ec977efd277f0644767a4fc7064e4baf._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="209.250.56.54" + subject="comment 1" + date="2014-10-02T15:23:18Z" + content=""" +There's not really a way to handle this sort of thing. I suggest that you put *.lrdata in `.gitignore` +"""]] From deddbf8a66f1f5ff55af35ab6e4713eea3d9638f Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 2 Oct 2014 11:30:19 -0400 Subject: [PATCH 101/370] add encryption setting to examples --- doc/special_remotes/rsync.mdwn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/special_remotes/rsync.mdwn b/doc/special_remotes/rsync.mdwn index eb218b181a..628d2e8cbf 100644 --- a/doc/special_remotes/rsync.mdwn +++ b/doc/special_remotes/rsync.mdwn @@ -2,12 +2,12 @@ This special remote type rsyncs file contents to somewhere else. Setup example: - # git annex initremote myrsync type=rsync rsyncurl=rsync://rsync.example.com/myrsync keyid=joey@kitenet.net + # git annex initremote myrsync type=rsync rsyncurl=rsync://rsync.example.com/myrsync keyid=joey@kitenet.net encryption=shared # git annex describe myrsync "rsync server" Or for using rsync over SSH - # git annex initremote myrsync type=rsync rsyncurl=ssh.example.com:/myrsync keyid=joey@kitenet.net + # git annex initremote myrsync type=rsync rsyncurl=ssh.example.com:/myrsync keyid=joey@kitenet.net encryption=shared # git annex describe myrsync "rsync server" ## configuration From 8e2d79cf8f8593e284456c14fd4cd384408bd021 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 2 Oct 2014 15:33:59 +0000 Subject: [PATCH 102/370] Added a comment --- ...ment_1_68e911629da672473bd6188407a68be2._comment | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 doc/forum/This_account_is_restricted_by_rssh._Allowed_commands:_scp_rsync__160__/comment_1_68e911629da672473bd6188407a68be2._comment diff --git a/doc/forum/This_account_is_restricted_by_rssh._Allowed_commands:_scp_rsync__160__/comment_1_68e911629da672473bd6188407a68be2._comment b/doc/forum/This_account_is_restricted_by_rssh._Allowed_commands:_scp_rsync__160__/comment_1_68e911629da672473bd6188407a68be2._comment new file mode 100644 index 0000000000..b6fa2d1a18 --- /dev/null +++ b/doc/forum/This_account_is_restricted_by_rssh._Allowed_commands:_scp_rsync__160__/comment_1_68e911629da672473bd6188407a68be2._comment @@ -0,0 +1,13 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="209.250.56.54" + subject="comment 1" + date="2014-10-02T15:33:58Z" + content=""" +You can set it up manually at the command line, and one it's set up, the assistant will be able to transfer files to it using rsync. See [[special_remotes/rsync]] for some setup examples. Note that the rsync server will need to be configured, somehow, to let you log in without giving a password -- one typical way this might be set up is using .ssh/authorized_keys on the rsync server. + +The assistant doesn't try to set up rsync special remotes because this is not very common, and there's no one way it can use to set up a ssh key so it can log in without a password +that will work across different rsync server setups. It does support setting up rsync.net just because that's one I know how to handle. + + +"""]] From d0697610988f8e1c937b807724b10d568cc50c4f Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 2 Oct 2014 15:35:16 +0000 Subject: [PATCH 103/370] Added a comment --- .../comment_10_a201485bf41514fde7c61a4dcbb5064f._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/bugs/runs_of_of_memory_adding_2_million_files/comment_10_a201485bf41514fde7c61a4dcbb5064f._comment diff --git a/doc/bugs/runs_of_of_memory_adding_2_million_files/comment_10_a201485bf41514fde7c61a4dcbb5064f._comment b/doc/bugs/runs_of_of_memory_adding_2_million_files/comment_10_a201485bf41514fde7c61a4dcbb5064f._comment new file mode 100644 index 0000000000..9d5c8aab6d --- /dev/null +++ b/doc/bugs/runs_of_of_memory_adding_2_million_files/comment_10_a201485bf41514fde7c61a4dcbb5064f._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="209.250.56.54" + subject="comment 10" + date="2014-10-02T15:35:15Z" + content=""" +This got fixed in version 5.20140707 +"""]] From 17cdb93619f99665e245c3d085377a660916b736 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 2 Oct 2014 11:37:39 -0400 Subject: [PATCH 104/370] someone managed a ".mdwn"? --- doc/forum/.mdwn | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 doc/forum/.mdwn diff --git a/doc/forum/.mdwn b/doc/forum/.mdwn deleted file mode 100644 index ae58726f43..0000000000 --- a/doc/forum/.mdwn +++ /dev/null @@ -1,3 +0,0 @@ -http://stackoverflow.com/questions/26041704/removing-repository-in-git-annex - -Does anyone know a solution for this? From 77403ed87a00258b31fe9bf636efc15db560366f Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 2 Oct 2014 15:40:40 +0000 Subject: [PATCH 105/370] Added a comment --- ...comment_3_15f36487383a631f16e041e2885c44ec._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__/comment_3_15f36487383a631f16e041e2885c44ec._comment diff --git a/doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__/comment_3_15f36487383a631f16e041e2885c44ec._comment b/doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__/comment_3_15f36487383a631f16e041e2885c44ec._comment new file mode 100644 index 0000000000..99dd7e81be --- /dev/null +++ b/doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__/comment_3_15f36487383a631f16e041e2885c44ec._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="209.250.56.54" + subject="comment 3" + date="2014-10-02T15:40:40Z" + content=""" +Using git does not affect the timestamps or other metadata of files stored by git-annex, which git knows nothing about. It will perhaps change the timestamps of the symlinks that git changes. It you really wanted to avoid that, you could `git clone` the repository and do all the git commands in the clone of the repository, without touching the original repo. + +Whether commands like `git checkout` and `git revert` are intuitive depends on how intuitive you find git, I suppose. It sure seems more intuitive to me to reuse git commands that work just fine, rather than adding a whole new set of commands. +"""]] From b5ec6f3ff647412e284dfc211ecad93712e27c9a Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 2 Oct 2014 15:48:02 +0000 Subject: [PATCH 106/370] Added a comment --- ...comment_2_2c14d88e55ea7d4edc90ce0091025f32._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/forum/drop__47__whereis_not_showing_gcrypted_special_ssh_remote/comment_2_2c14d88e55ea7d4edc90ce0091025f32._comment diff --git a/doc/forum/drop__47__whereis_not_showing_gcrypted_special_ssh_remote/comment_2_2c14d88e55ea7d4edc90ce0091025f32._comment b/doc/forum/drop__47__whereis_not_showing_gcrypted_special_ssh_remote/comment_2_2c14d88e55ea7d4edc90ce0091025f32._comment new file mode 100644 index 0000000000..a181940d2f --- /dev/null +++ b/doc/forum/drop__47__whereis_not_showing_gcrypted_special_ssh_remote/comment_2_2c14d88e55ea7d4edc90ce0091025f32._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="209.250.56.54" + subject="comment 2" + date="2014-10-02T15:48:02Z" + content=""" +Sorry that it took me so long to get back to you. + +The git remote that corresponds to your server should have an annex-uuid setting. (Eg, remote.server.annex-uuid.) Look up the uuid. Then look in `git-annex info`. I'd expect the uuid to be listed there. It might be that somehow two repositories got the same uuid set (probability says no, but things find ways to break). If that did happen, I think it would replicate what you've reported, and in that case, the server's uuid would be listed by `git annex info`, but perhaps it would have the name of the usb drive. +"""]] From 440a7a51bfff14c7d209d7a50f263900c53d836a Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 2 Oct 2014 15:54:44 +0000 Subject: [PATCH 107/370] Added a comment --- ...mment_1_7070f6e7e05fba7686d8620d62906a83._comment | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 doc/forum/Using_the_Git-Annex_Assistant_as_a_Backup_and_Syncing_Service/comment_1_7070f6e7e05fba7686d8620d62906a83._comment diff --git a/doc/forum/Using_the_Git-Annex_Assistant_as_a_Backup_and_Syncing_Service/comment_1_7070f6e7e05fba7686d8620d62906a83._comment b/doc/forum/Using_the_Git-Annex_Assistant_as_a_Backup_and_Syncing_Service/comment_1_7070f6e7e05fba7686d8620d62906a83._comment new file mode 100644 index 0000000000..07cc634340 --- /dev/null +++ b/doc/forum/Using_the_Git-Annex_Assistant_as_a_Backup_and_Syncing_Service/comment_1_7070f6e7e05fba7686d8620d62906a83._comment @@ -0,0 +1,12 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="209.250.56.54" + subject="comment 1" + date="2014-10-02T15:54:44Z" + content=""" +rsync.net alone is not sufficient, because it's only used for storing the (encrypted) contents of files, not for syncing the git repository, or finding out when there other computer has made a change to the repository. + +You can use rsync.net plus xmpp. However, xmpp is not encrypted when it passes through the xmpp server. + +A fully encrypted option is to install git-anex on a server accessible by ssh, and then use the assistant to set up an encrypted git repository on the server. No xmpp needed in this configuration. +"""]] From 1da90ba34c5cff2ffb0d7ee651e5d4b8e99a1c07 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 2 Oct 2014 16:09:37 +0000 Subject: [PATCH 108/370] Added a comment --- ...omment_11_7776659e257a97c9a3855c8ad008207a._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/bugs/__34__error:_invalid_object__34____44___after_add__59___cannot_commit/comment_11_7776659e257a97c9a3855c8ad008207a._comment diff --git a/doc/bugs/__34__error:_invalid_object__34____44___after_add__59___cannot_commit/comment_11_7776659e257a97c9a3855c8ad008207a._comment b/doc/bugs/__34__error:_invalid_object__34____44___after_add__59___cannot_commit/comment_11_7776659e257a97c9a3855c8ad008207a._comment new file mode 100644 index 0000000000..4632a5df3b --- /dev/null +++ b/doc/bugs/__34__error:_invalid_object__34____44___after_add__59___cannot_commit/comment_11_7776659e257a97c9a3855c8ad008207a._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="209.250.56.54" + subject="comment 11" + date="2014-10-02T16:09:37Z" + content=""" +It seems to me that the problem must be with .git/annex/index. + +I would be interested in looking at this git repository, if there's a way to get a copy (no .git/annex/objects needed). +"""]] From 3213df47522b5eeb76850212c35bb5ffd9684629 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 2 Oct 2014 16:23:36 +0000 Subject: [PATCH 109/370] Added a comment --- ...ment_1_2aa80b317863a99e676a375d907d0e84._comment | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 doc/forum/Stale_keys_and_.cache_files_left_in_.git__47__annex__47__objects/comment_1_2aa80b317863a99e676a375d907d0e84._comment diff --git a/doc/forum/Stale_keys_and_.cache_files_left_in_.git__47__annex__47__objects/comment_1_2aa80b317863a99e676a375d907d0e84._comment b/doc/forum/Stale_keys_and_.cache_files_left_in_.git__47__annex__47__objects/comment_1_2aa80b317863a99e676a375d907d0e84._comment new file mode 100644 index 0000000000..34cbb011a3 --- /dev/null +++ b/doc/forum/Stale_keys_and_.cache_files_left_in_.git__47__annex__47__objects/comment_1_2aa80b317863a99e676a375d907d0e84._comment @@ -0,0 +1,13 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="209.250.56.54" + subject="comment 1" + date="2014-10-02T16:23:35Z" + content=""" +I cannot see a way that eg, `dropunused` could leave empty object directories. The few functions that remove content from a repository call `cleanObjectLoc` to prune the empty directories that result. Of course, the empty directories can be safely removed. + +IIRC older versions of direct mode might have made stale .cache and .map before. They can be deleted if you're not using direct mode. + +The only way I can see that a dash could come before the 'm' and the mtime is if the mtime were negative. I don't know how that would happen, but the code has certainly never put a dash there, and +WORM-s123-m-123456789--name is not a valid git-annex key; git-annex cannot parse it. +"""]] From 6eea480a52afd5ed01f47625ebe2e6f552f511ee Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" Date: Thu, 2 Oct 2014 21:57:03 +0000 Subject: [PATCH 110/370] Added a comment --- ...mment_4_9293831aff5b6cef490f65d03638d34d._comment | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__/comment_4_9293831aff5b6cef490f65d03638d34d._comment diff --git a/doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__/comment_4_9293831aff5b6cef490f65d03638d34d._comment b/doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__/comment_4_9293831aff5b6cef490f65d03638d34d._comment new file mode 100644 index 0000000000..176c5d915b --- /dev/null +++ b/doc/forum/Direct_Mode_-_Restore_file_from_Full_Backup_Repository__63__/comment_4_9293831aff5b6cef490f65d03638d34d._comment @@ -0,0 +1,12 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo" + nickname="Emre" + subject="comment 4" + date="2014-10-02T21:57:02Z" + content=""" +If git-annex target user community are the ones with some level of git know-how, then you may be right. But I'm not one of them. The only time I use git is to clone a repo from the internet when I want to compile latest source code. Nothing more. Reverting etc are alien to me. + +Besides, what happens if there are multiple files in a commit but you want to revert only one file? This may be a stupid question if git is able to filter files when reverting, but accept my apologies if so, since I do not know git. + +I simply want to use git-annex to sync files, keeping some versions of the files in case needed. +"""]] From 01b923c2c5ff4103d878184e588aa3ff479554eb Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawn0hu_TPhLcUM1Ivvn7iIoZ_iD3g_5WDcs" Date: Fri, 3 Oct 2014 01:05:23 +0000 Subject: [PATCH 111/370] --- ...ons_persist_after_unlock__44___commit.mdwn | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 doc/bugs/modified_permissions_persist_after_unlock__44___commit.mdwn diff --git a/doc/bugs/modified_permissions_persist_after_unlock__44___commit.mdwn b/doc/bugs/modified_permissions_persist_after_unlock__44___commit.mdwn new file mode 100644 index 0000000000..8ec522e1ed --- /dev/null +++ b/doc/bugs/modified_permissions_persist_after_unlock__44___commit.mdwn @@ -0,0 +1,37 @@ +### Please describe the problem. + +Modifying an annexed file with unlock then commit leaves the link with permissions 777 and git status reports a typechange, which makes checkout impossible. Resolves by running git unlock on the file. + +### What steps will reproduce the problem? + +echo foo > test.txt +git annex add test.txt +git commit -a -m "first" +git annex unlock test.txt +echo foobar > test.txt +git commit -a -m "second" + +git status (notice typechange message) + +git unlock test.txt (corrects and retains both versions) + +### What version of git-annex are you using? On what operating system? + +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 + +git version 1.7.9.5 + + +### 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. +"""]] From ead200b5f7c145d4c8f9aa65969a6d20c399cee3 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawn0hu_TPhLcUM1Ivvn7iIoZ_iD3g_5WDcs" Date: Fri, 3 Oct 2014 02:03:11 +0000 Subject: [PATCH 112/370] --- doc/forum/add_only_binary_files__63__.mdwn | 1 + 1 file changed, 1 insertion(+) create mode 100644 doc/forum/add_only_binary_files__63__.mdwn diff --git a/doc/forum/add_only_binary_files__63__.mdwn b/doc/forum/add_only_binary_files__63__.mdwn new file mode 100644 index 0000000000..4b40db5dd7 --- /dev/null +++ b/doc/forum/add_only_binary_files__63__.mdwn @@ -0,0 +1 @@ +Is there a way to only add binary files with git annex add command? From d8100499885175d81411161d0fb04b6f7c6aa19e Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawldUCypSR21BObbzC0Uf8NVd1vZnjYlXZc" Date: Fri, 3 Oct 2014 08:59:20 +0000 Subject: [PATCH 113/370] --- ...assistant_configuration_attempt__63__.mdwn | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__.mdwn diff --git a/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__.mdwn b/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__.mdwn new file mode 100644 index 0000000000..d11adf2d87 --- /dev/null +++ b/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__.mdwn @@ -0,0 +1,34 @@ +I am trying to synchronize "Linux Workstation" and "Android Tablet" with annex assistant through RSync remote and my google account. + +I keep failing horribly :-) I followed http://git-annex.branchable.com/assistant/remote_sharing_walkthrough/, +but I seem to either do the steps in wrong order, because I never managed to materialize the files on my Android device. + +Steps went thusly: +1L) install annex on linux and run assistant and select repository dir +2L) add rsync remote, set folder to android_docs +3L) add jabber account +-> I see progress bars and it seems to sync just fine +4A) install annex on android, specify repository +5A) add the "share with other devices repository" +6A) login with my google account +7A) sync fails because I am on failing wifi network +8A) try to add RSync remote, accidentaly specify annex folder +9A) realize mistake, try to remove rsync repo +10A) hangs on "cleaning step" +11A) battery dies +12A) charge battery, start android, move to functional wifi network +13A) start annex assistant, hangs in terminal (don't remember error message :-/) +14A) remove repo folder from android, remove annex,download apk again, reinstall +15A) run annex, select folder, add the "share with other devices repository", login with google account +16L) See fail syncing on linux + +fatal: Could not read from remote repository. + +Please make sure you have the correct access rights +and the repository exists. + +17A) android seems that it finished syncig, asks for remote repository +18A) specify my rsync account with correct folder "android_docs" +19A) Could not resolve hostname git-annex-$servername-$username_$port_$directory + +I am starting to thing, that randomly creating and removing repositories is not the way forward, so I'd like to get to clean state and redo my setup :) From 230976ae26ff8877c89a0c7603f98ee985bc640b Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawldUCypSR21BObbzC0Uf8NVd1vZnjYlXZc" Date: Fri, 3 Oct 2014 09:00:37 +0000 Subject: [PATCH 114/370] --- ...assistant_configuration_attempt__63__.mdwn | 39 +++++++++---------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__.mdwn b/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__.mdwn index d11adf2d87..9c2331cb7e 100644 --- a/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__.mdwn +++ b/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__.mdwn @@ -4,31 +4,30 @@ I keep failing horribly :-) I followed http://git-annex.branchable.com/assistant but I seem to either do the steps in wrong order, because I never managed to materialize the files on my Android device. Steps went thusly: -1L) install annex on linux and run assistant and select repository dir -2L) add rsync remote, set folder to android_docs -3L) add jabber account --> I see progress bars and it seems to sync just fine -4A) install annex on android, specify repository -5A) add the "share with other devices repository" -6A) login with my google account -7A) sync fails because I am on failing wifi network -8A) try to add RSync remote, accidentaly specify annex folder -9A) realize mistake, try to remove rsync repo -10A) hangs on "cleaning step" -11A) battery dies -12A) charge battery, start android, move to functional wifi network -13A) start annex assistant, hangs in terminal (don't remember error message :-/) -14A) remove repo folder from android, remove annex,download apk again, reinstall -15A) run annex, select folder, add the "share with other devices repository", login with google account -16L) See fail syncing on linux +1. L) install annex on linux and run assistant and select repository dir +2. L) add rsync remote, set folder to android_docs +3. L) add jabber account -> I see progress bars and it seems to sync just fine +4. A) install annex on android, specify repository +5. A) add the "share with other devices repository" +6. A) login with my google account +7. A) sync fails because I am on failing wifi network +8. A) try to add RSync remote, accidentaly specify annex folder +9. A) realize mistake, try to remove rsync repo +10. A) hangs on "cleaning step" +11. A) battery dies +12. A) charge battery, start android, move to functional wifi network +13. A) start annex assistant, hangs in terminal (don't remember error message :-/) +14. A) remove repo folder from android, remove annex,download apk again, reinstall +15. A) run annex, select folder, add the "share with other devices repository", login with google account +16. L) See fail syncing on linux fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. -17A) android seems that it finished syncig, asks for remote repository -18A) specify my rsync account with correct folder "android_docs" -19A) Could not resolve hostname git-annex-$servername-$username_$port_$directory +17. A) android seems that it finished syncig, asks for remote repository +18. A) specify my rsync account with correct folder "android_docs" +19. A) Could not resolve hostname git-annex-$servername-$username_$port_$directory I am starting to thing, that randomly creating and removing repositories is not the way forward, so I'd like to get to clean state and redo my setup :) From 0b5401549df85a247b38957bd53eec2185820645 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawldUCypSR21BObbzC0Uf8NVd1vZnjYlXZc" Date: Fri, 3 Oct 2014 09:01:24 +0000 Subject: [PATCH 115/370] --- ...er_unworking_annex_assistant_configuration_attempt__63__.mdwn | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__.mdwn b/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__.mdwn index 9c2331cb7e..b0d68ed49d 100644 --- a/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__.mdwn +++ b/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__.mdwn @@ -4,6 +4,7 @@ I keep failing horribly :-) I followed http://git-annex.branchable.com/assistant but I seem to either do the steps in wrong order, because I never managed to materialize the files on my Android device. Steps went thusly: + 1. L) install annex on linux and run assistant and select repository dir 2. L) add rsync remote, set folder to android_docs 3. L) add jabber account -> I see progress bars and it seems to sync just fine From 65e528fb294a9eee28b7a8be78484f3a342716a1 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawldUCypSR21BObbzC0Uf8NVd1vZnjYlXZc" Date: Fri, 3 Oct 2014 09:02:05 +0000 Subject: [PATCH 116/370] --- ...rking_annex_assistant_configuration_attempt__63__.mdwn | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__.mdwn b/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__.mdwn index b0d68ed49d..cf5a5c8be4 100644 --- a/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__.mdwn +++ b/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__.mdwn @@ -20,13 +20,7 @@ Steps went thusly: 13. A) start annex assistant, hangs in terminal (don't remember error message :-/) 14. A) remove repo folder from android, remove annex,download apk again, reinstall 15. A) run annex, select folder, add the "share with other devices repository", login with google account -16. L) See fail syncing on linux - -fatal: Could not read from remote repository. - -Please make sure you have the correct access rights -and the repository exists. - +16. L) See fail syncing on linux "fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists." 17. A) android seems that it finished syncig, asks for remote repository 18. A) specify my rsync account with correct folder "android_docs" 19. A) Could not resolve hostname git-annex-$servername-$username_$port_$directory From 8036f97d9d652e763252d484f2c05aaf9afcb3d5 Mon Sep 17 00:00:00 2001 From: tdussa Date: Fri, 3 Oct 2014 12:22:46 +0000 Subject: [PATCH 117/370] --- doc/forum/Equivalent_to_git_bundle__63__.mdwn | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/forum/Equivalent_to_git_bundle__63__.mdwn diff --git a/doc/forum/Equivalent_to_git_bundle__63__.mdwn b/doc/forum/Equivalent_to_git_bundle__63__.mdwn new file mode 100644 index 0000000000..d16b91cad9 --- /dev/null +++ b/doc/forum/Equivalent_to_git_bundle__63__.mdwn @@ -0,0 +1,10 @@ +Hi, + +git provides a neat way to create archives of git repos (or parts thereof): git bundle. + +git bundle obviously works with git annex as well, BUT those bundles don't include the actual content (in other words, only the symlinks are bundled up). + +Is there a way to get the git bundle functionality with git annex? + +THX & Cheers, +Toby. From 541d2b42836a7e95c1319912413f3c72e77f0286 Mon Sep 17 00:00:00 2001 From: Bram Date: Fri, 3 Oct 2014 13:44:50 +0000 Subject: [PATCH 118/370] Added a comment: tar --- .../comment_1_e42936a9bc36fbee69f48e32df303dee._comment | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 doc/forum/Equivalent_to_git_bundle__63__/comment_1_e42936a9bc36fbee69f48e32df303dee._comment diff --git a/doc/forum/Equivalent_to_git_bundle__63__/comment_1_e42936a9bc36fbee69f48e32df303dee._comment b/doc/forum/Equivalent_to_git_bundle__63__/comment_1_e42936a9bc36fbee69f48e32df303dee._comment new file mode 100644 index 0000000000..af3cf569bf --- /dev/null +++ b/doc/forum/Equivalent_to_git_bundle__63__/comment_1_e42936a9bc36fbee69f48e32df303dee._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="Bram" + ip="81.20.68.186" + subject="tar" + date="2014-10-03T13:44:50Z" + content=""" +I would say you're just looking for 'tar cf' or 'tar czf' of the root directory of your repository. +Unless the (delta) compression that 'git bundle' would perform is a must-have... +"""]] From e6a432bb56dfd48aa58a2ec2859424f20f6b017f Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 3 Oct 2014 14:12:01 -0400 Subject: [PATCH 119/370] rewrote and expanded package description --- debian/control | 19 ++++++++++++------- git-annex.cabal | 19 ++++++++++++------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/debian/control b/debian/control index 3b4ee9e847..4cfccaaa1f 100644 --- a/debian/control +++ b/debian/control @@ -108,10 +108,15 @@ Description: manage files with git, without checking their contents into git dealing with files larger than git can currently easily handle, whether due to limitations in memory, time, or disk space. . - Even without file content tracking, being able to manage files with git, - move files around and delete files with versioned directory trees, and use - branches and distributed clones, are all very handy reasons to use git. And - annexed files can co-exist in the same git repository with regularly - versioned files, which is convenient for maintaining documents, Makefiles, - etc that are associated with annexed files but that benefit from full - revision control. + It can store large files in many places, from local hard drives, to a + large number of cloud storage services, including S3, WebDAV, + and rsync, with a dozen cloud storage providers usable via plugins. + Files can be stored encrypted with gpg, so that the cloud storage + provider cannot see your data. git-annex keeps track of where each file + is stored, so it knows how many copies are available, and has many + facilities to ensure your data is preserved. + . + git-annex can also be used to keep a folder in sync between computers, + noticing when files are changed, and automatically committing them + to git and transferring them to other computers. The git-annex webapp + makes it easy to set up and use git-annex this way. diff --git a/git-annex.cabal b/git-annex.cabal index fe5a8bb276..ce0e8279b6 100644 --- a/git-annex.cabal +++ b/git-annex.cabal @@ -18,13 +18,18 @@ Description: dealing with files larger than git can currently easily handle, whether due to limitations in memory, time, or disk space. . - Even without file content tracking, being able to manage files with git, - move files around and delete files with versioned directory trees, and use - branches and distributed clones, are all very handy reasons to use git. And - annexed files can co-exist in the same git repository with regularly - versioned files, which is convenient for maintaining documents, Makefiles, - etc that are associated with annexed files but that benefit from full - revision control. + It can store large files in many places, from local hard drives, to a + large number of cloud storage services, including S3, WebDAV, + and rsync, with a dozen cloud storage providers usable via plugins. + Files can be stored encrypted with gpg, so that the cloud storage + provider cannot see your data. git-annex keeps track of where each file + is stored, so it knows how many copies are available, and has many + facilities to ensure your data is preserved. + . + git-annex can also be used to keep a folder in sync between computers, + noticing when files are changed, and automatically committing them + to git and transferring them to other computers. The git-annex webapp + makes it easy to set up and use git-annex this way. Flag S3 Description: Enable S3 support From 36e3f80a1c258877f6dfd74e6880d2ff8d969685 Mon Sep 17 00:00:00 2001 From: tdussa Date: Fri, 3 Oct 2014 20:40:45 +0000 Subject: [PATCH 120/370] Added a comment: tar -- not really --- ...ment_2_2b8b5c237d8572fdd27202f3502bea96._comment | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 doc/forum/Equivalent_to_git_bundle__63__/comment_2_2b8b5c237d8572fdd27202f3502bea96._comment diff --git a/doc/forum/Equivalent_to_git_bundle__63__/comment_2_2b8b5c237d8572fdd27202f3502bea96._comment b/doc/forum/Equivalent_to_git_bundle__63__/comment_2_2b8b5c237d8572fdd27202f3502bea96._comment new file mode 100644 index 0000000000..167353df3e --- /dev/null +++ b/doc/forum/Equivalent_to_git_bundle__63__/comment_2_2b8b5c237d8572fdd27202f3502bea96._comment @@ -0,0 +1,13 @@ +[[!comment format=mdwn + username="tdussa" + ip="217.84.78.25" + subject="tar -- not really" + date="2014-10-03T20:40:45Z" + content=""" +Hi, + +THX for your suggestion. Unfortunately, git bundle is able to carve out particular slices of a repo, which a simple tar obviously cannot do. This functionality is much desired. + +Cheers, +Toby. +"""]] From e874022aa305262028a87d3ba550313c803d1a5e Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawn0hu_TPhLcUM1Ivvn7iIoZ_iD3g_5WDcs" Date: Fri, 3 Oct 2014 20:58:10 +0000 Subject: [PATCH 121/370] --- doc/bugs/git_clone_ignores_annex.mdwn | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 doc/bugs/git_clone_ignores_annex.mdwn diff --git a/doc/bugs/git_clone_ignores_annex.mdwn b/doc/bugs/git_clone_ignores_annex.mdwn new file mode 100644 index 0000000000..7c6b7bbfa3 --- /dev/null +++ b/doc/bugs/git_clone_ignores_annex.mdwn @@ -0,0 +1,23 @@ +### Please describe the problem. + +More of a feature request than a bug. It would be nice if when creating a local clone with git clone this would run automatically: + +ln -s ../../annex/.git/annex .git/annex + +to hook up the annex. Just a minor thing, but I'd be nice. + +### What steps will reproduce the problem? + + +### What version of git-annex are you using? On what operating system? + + +### Please provide any additional information below. + +[[!format sh """ +# If you can, paste a complete transcript of the problem occurring here. +# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log + + +# End of transcript or log. +"""]] From f4dbf62ceb8b8a66e56fcb70c949b5b8f605e4a0 Mon Sep 17 00:00:00 2001 From: ghen1 Date: Sat, 4 Oct 2014 03:25:20 +0000 Subject: [PATCH 122/370] --- doc/forum/Broken_symlinks_remain_after_drop.mdwn | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 doc/forum/Broken_symlinks_remain_after_drop.mdwn diff --git a/doc/forum/Broken_symlinks_remain_after_drop.mdwn b/doc/forum/Broken_symlinks_remain_after_drop.mdwn new file mode 100644 index 0000000000..bc24049010 --- /dev/null +++ b/doc/forum/Broken_symlinks_remain_after_drop.mdwn @@ -0,0 +1,7 @@ +This is a newb question. I don't know whether this is a bug or the way git-annex is intended to function. + +I have two annex repos connected to each other. My idea was to have the first repository add files, which would then be moved to the second repository for storage. After moving, repo1 would be empty again, empty and clean of any symlinks. + +But after I 'git-annex move * --to repo2' broken symlinks remain in repo1. I don't want any broken/unused symlinks to remain in repo1 for object data it doesn't currently have (even if those files remain in the repository itself). + +Is there a way I can clean/remove broken symlinks to object data when those objects aren't present, so the directory only contains symlinks when the repo currently has the object data for those files? From 27b0e608127f7205b4ee133785d7624d492d0b9b Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawldUCypSR21BObbzC0Uf8NVd1vZnjYlXZc" Date: Sat, 4 Oct 2014 10:12:01 +0000 Subject: [PATCH 123/370] Added a comment: Ok, found it :-) --- ..._1_d77fbbbe3a7438a1e79f175df1f69ef3._comment | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__/comment_1_d77fbbbe3a7438a1e79f175df1f69ef3._comment diff --git a/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__/comment_1_d77fbbbe3a7438a1e79f175df1f69ef3._comment b/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__/comment_1_d77fbbbe3a7438a1e79f175df1f69ef3._comment new file mode 100644 index 0000000000..8dc0692e63 --- /dev/null +++ b/doc/forum/Is_there_a_way_to_get_back_to_clean-state_after_unworking_annex_assistant_configuration_attempt__63__/comment_1_d77fbbbe3a7438a1e79f175df1f69ef3._comment @@ -0,0 +1,17 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawldUCypSR21BObbzC0Uf8NVd1vZnjYlXZc" + nickname="Adam" + subject="Ok, found it :-)" + date="2014-10-04T10:11:55Z" + content=""" +I think I found reliable although a bit excessive way to get back to clean state: + +1. stop all the running daemons +2. on android, remove folder git-annex.home +3. on linux, remove ~/.config/git-annex and ~/.ssh/git-annex +4. on both attempted repositories I removed .git folder +5. I removed everything I have stored on rsync.net + +Then I re-did the steps on good wifi network an plugged in to power source on both devices :-) +It seems that important step is to wait for the annex to share the remote repo with the other device (took ~5 minutes) +"""]] From bd00c747b4a419712a7494cc061c395d0f905cee Mon Sep 17 00:00:00 2001 From: "https://id.koumbit.net/anarcat" Date: Sat, 4 Oct 2014 22:23:30 +0000 Subject: [PATCH 124/370] add usage and commandline parsing --- .../git-annex-xbmc-playcount.pl | 229 +++++++++++++++--- 1 file changed, 195 insertions(+), 34 deletions(-) diff --git a/doc/tips/dumb_metadata_extraction_from_xbmc/git-annex-xbmc-playcount.pl b/doc/tips/dumb_metadata_extraction_from_xbmc/git-annex-xbmc-playcount.pl index 3e2bd9bce0..9df8db9fe0 100644 --- a/doc/tips/dumb_metadata_extraction_from_xbmc/git-annex-xbmc-playcount.pl +++ b/doc/tips/dumb_metadata_extraction_from_xbmc/git-annex-xbmc-playcount.pl @@ -1,45 +1,206 @@ #! /usr/bin/perl -w -# we want to operate on relative links, so set this to the common prefix -# to the git annex repo -my $prefix="/home/media/video/"; -# this is the directory for the XBMC database -my $path = '/home/video/.xbmc/userdata/Database/'; +use Getopt::Long; +use Pod::Usage; -# no user-serviceable parts below +my $help = 0; +my $usage = 0; +my $dryrun = 0; +my $path = ''; +my $annex = ''; +my $home = $ENV{'HOME'}; + +sub main() { + checkargs(); + if (!$path) { + $path = $home . '/.xbmc/userdata/Database'; + } + $dbpath = finddb($path); + if (!$dbpath) { + pod2usage("$0: can't find a XBMC database in '$path'."); + } + checkdb(); +} # list videos database, find the latest one # modified version of # http://stackoverflow.com/questions/4651092/getting-the-list-of-files-sorted-by-modification-date-in-perl -opendir my($dirh), $path or die "can't opendir $path: $!"; -my @flist = sort { -M $a <=> -M $b } # Sort by modification time - map { "$path/$_" } # We need full paths for sorting - grep { /^MyVideos.*\.db$/ } - readdir $dirh; -closedir $dirh; - -my $dbpath=$flist[0]; - -my @lines = `echo 'SELECT playCount, path.strPath, files.strFileName FROM movie JOIN files ON files.idFile=movie.idFile JOIN path ON path.idPath=files.idPath;' | sqlite3 $dbpath`; -for (@lines) { - my ($count, $dir, $file) = split /\|/; - chomp $file; - # empty or non-numeric count is zero - if ($count !~ /[0-9]/) { - $count = 0; - } - if ($file =~ s#stack://##) { - for (split /,/, $file) { - s/$prefix//; - s/^ //; - s/ $//; - my @cmd = (qw(git annex metadata --set), "playCount=$count", $_); - system(@cmd); - } +sub finddb($) { + my $path = shift(@_); + opendir my($dirh), $path or die "can't opendir $path: $!"; + my @flist = sort { -M $a <=> -M $b } # Sort by modification time + map { "$path/$_" } # We need full paths for sorting + grep { /^MyVideos.*\.db$/ } + readdir $dirh; + closedir $dirh; + if ($#flist > 0) { + return $flist[0]; } else { - $dir =~ s/$prefix//; - my @cmd = (qw(git annex metadata --set), "playCount=$count", "$dir$file"); - system(@cmd); + return 0; } } + +sub checkargs() { + pod2usage(1) if $help; + pod2usage(-exitval => 0, -verbose => 2) if $usage; + + GetOptions('h|?' => \$help, + 'help|usage' => \$usage, + # we want to operate on relative links, so set this to + # the common annex to the git annex repo + 'annex=s' => \$annex, + 'path=s' => \$path, + 'home=s' => \$home, + 'dryrun|n' => \$dryrun, + ) + or die("Error parsing commandline\n"); +} + +sub checkdb() { + my @lines = `echo 'SELECT playCount, path.strPath, files.strFileName FROM movie JOIN files ON files.idFile=movie.idFile JOIN path ON path.idPath=files.idPath;' | sqlite3 $dbpath`; + for (@lines) { + my ($count, $dir, $file) = split /\|/; + chomp $file; + # empty or non-numeric count is zero + if ($count !~ /[0-9]/) { + $count = 0; + } + if ($file =~ s#stack://##) { + for (split /,/, $file) { + s/$annex//; + s/^ //; + s/ $//; + my @cmd = (qw(git annex metadata --set), "playCount=$count", $_); + if ($dryrun) { + print join(' ', @cmd) . "\n"; + } + else { + system(@cmd); + } + } + } + else { + $dir =~ s/$annex//; + my @cmd = (qw(git annex metadata --set), "playCount=$count", "$dir$file"); + if ($dryrun) { + print join(' ', @cmd) . "\n"; + } + else { + system(@cmd); + } + } + } +} + +main(); + +__END__ +=encoding utf8 + +=head1 NAME + +git-annex-xbmc-playcount - register XBMC playcounts as git-annex metadata + +=head1 SYNOPSIS + +git-annex-xbmc-playcount [--path .xbmc/userdata/Database] + + Options: + -h short usage + --help complete help + --dryrun, -n do nothing and show the commands that would be ran + --annex path to the git-annex repo + --home the home directory where the .xbmc directory is located + --path the location of the Database directory of XBMC, overrides --home + +=head1 DESCRIPTION + +This program will look into the XBMC database for the "playcount" +field to register that number as metadata in the git-annex repository. + +=head1 OPTIONS + +=over 8 + +=item B<--dryrun> + +Do nothing but show all the steps that would be ran. The output can be +piped through a POSIX shell after inspection. B<-n> is an alias of +this command. Example: + + git-annex-xbmc-playcount -n | tee runme + # inspect the output + sh < runme + +=item B<--annex> + +This option allows the user to specify the root of the git-annex +repository, which is then stripped off the paths found in the XBMC +database. + +=item B<--home> + +Home of the user running XBMC. If not specified, defaults to the $HOME +environment variables. The script will look into +B<$home/.xbmc/userdata/Database> for a file matching +B<^MyVideos.*\.db$> and will fail if none is found. + +=item B<--path> + +Manually specify the path to B<.xbmc/userdata/Database>. This +overrides B<--home>. + +Note that this doesn't point directly to the datbase itself, because +there are usually many database files and we want to automatically +find the latest. This may be a stupid limitation. + +=back + +=head1 EXAMPLES + +You have a git annex in B and XBMC is ran as the +B