summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CmdLine/Batch.hs41
-rw-r--r--Command/ContentLocation.hs11
-rw-r--r--Command/ExamineKey.hs9
-rw-r--r--Command/LookupKey.hs12
-rw-r--r--Utility/SafeCommand.hs27
-rw-r--r--Utility/Url.hs26
-rw-r--r--debian/changelog4
-rw-r--r--debian/patches/standalone-build16
-rwxr-xr-xdebian/rules2
-rw-r--r--doc/Android/comment_6_455bcbd36c7b5eeb905cc56da4666b07._comment30
-rw-r--r--doc/bugs/git-annex_deletes_file_when_using___34__git_annex_get__34___after___34__git_annex_addurl_--file__34__.mdwn7
-rw-r--r--doc/bugs/git-annex_deletes_file_when_using___34__git_annex_get__34___after___34__git_annex_addurl_--file__34__/comment_1_dca81d5db9a966fc992ed28bb3c2a242._comment19
-rw-r--r--doc/bugs/local_pair_fails_if_non-ascii_characters_present_on_annex_path/comment_2_89f25f787558c77201fa6226cc7af5f5._comment14
-rw-r--r--doc/forum/Where_did_my_files_go__63__.mdwn20
-rw-r--r--doc/forum/Where_did_my_files_go__63__/comment_1_3ff3ffa95eb2745ff9ec2a903e071d97._comment9
-rw-r--r--doc/forum/__96__git_annex_sync__96___uses_too_much_space__63__.mdwn43
-rw-r--r--doc/forum/__96__git_annex_sync__96___uses_too_much_space__63__/comment_2_7a24236bc511cbfa869aaeb431a003d2._comment18
-rw-r--r--doc/forum/git_annex_windows_and_rsync.mdwn26
-rw-r--r--doc/forum/possible_gpg_issue/comment_7_f095eadcd9f6947f64e6830acea8228e._comment11
-rw-r--r--doc/forum/pre-commit_hook_to_use_git_annex_for_only_large_files.mdwn55
-rw-r--r--doc/forum/pre-commit_hook_to_use_git_annex_for_only_large_files/comment_1_01db183b1f1d081066d88332e2b6166a._comment15
-rw-r--r--doc/forum/pre-commit_hook_to_use_git_annex_for_only_large_files/comment_2_2b76809869e0289f78f137afbdcf36c8._comment8
-rw-r--r--doc/git-annex-contentlocation.mdwn11
-rw-r--r--doc/git-annex-examinekey.mdwn5
-rw-r--r--doc/git-annex-lookupkey.mdwn10
-rw-r--r--doc/metadata/comment_5_fd30444aecfc4792eb4dbfdebc230786._comment9
-rw-r--r--doc/todo/ability_to_set_metadata_from_json.mdwn6
-rw-r--r--doc/todo/patch:_Add_names_to_.mailmap_to_remove_duplicates_from_git_shortlog.mdwn141
-rw-r--r--doc/todo/patch:_Add_names_to_.mailmap_to_remove_duplicates_from_git_shortlog/comment_1_031c5a4afe9453a5b62004c85e7e7192._comment8
-rw-r--r--doc/trust/comment_2_2262eaa830306d3dc75999bc0433b6a8._comment8
30 files changed, 539 insertions, 82 deletions
diff --git a/CmdLine/Batch.hs b/CmdLine/Batch.hs
new file mode 100644
index 000000000..836472eb0
--- /dev/null
+++ b/CmdLine/Batch.hs
@@ -0,0 +1,41 @@
+{- git-annex batch commands
+ -
+ - Copyright 2015 Joey Hess <id@joeyh.name>
+ -
+ - Licensed under the GNU GPL version 3 or higher.
+ -}
+
+module CmdLine.Batch where
+
+import Common.Annex
+import Command
+
+batchOption :: Option
+batchOption = flagOption [] "batch" "enable batch mode"
+
+data BatchMode = Batch | NoBatch
+type Batchable t = BatchMode -> t -> CommandStart
+
+-- A Batchable command can run in batch mode, or not.
+-- In batch mode, one line at a time is read, parsed, and a reply output to
+-- stdout. In non batch mode, the command's parameters are parsed and
+-- a reply output for each.
+batchable :: ((t -> CommandStart) -> CommandSeek) -> Batchable t -> CommandSeek
+batchable seeker starter params = ifM (getOptionFlag batchOption)
+ ( batchloop
+ , seeker (starter NoBatch) params
+ )
+ where
+ batchloop = do
+ mp <- liftIO $ catchMaybeIO getLine
+ case mp of
+ Nothing -> return ()
+ Just p -> do
+ seeker (starter Batch) [p]
+ batchloop
+
+-- bad input is indicated by an empty line in batch mode. In non batch
+-- mode, exit on bad input.
+batchBadInput :: BatchMode -> Annex ()
+batchBadInput NoBatch = liftIO exitFailure
+batchBadInput Batch = liftIO $ putStrLn ""
diff --git a/Command/ContentLocation.hs b/Command/ContentLocation.hs
index 3f4775f57..10879f5b1 100644
--- a/Command/ContentLocation.hs
+++ b/Command/ContentLocation.hs
@@ -9,19 +9,20 @@ module Command.ContentLocation where
import Common.Annex
import Command
+import CmdLine.Batch
import Annex.Content
cmd :: [Command]
-cmd = [noCommit $ noMessages $
+cmd = [withOptions [batchOption] $ noCommit $ noMessages $
command "contentlocation" (paramRepeating paramKey) seek
SectionPlumbing "looks up content for a key"]
seek :: CommandSeek
-seek = withKeys start
+seek = batchable withKeys start
-start :: Key -> CommandStart
-start k = do
- liftIO . maybe exitFailure putStrLn
+start :: Batchable Key
+start batchmode k = do
+ maybe (batchBadInput batchmode) (liftIO . putStrLn)
=<< inAnnex' (pure True) Nothing check k
stop
where
diff --git a/Command/ExamineKey.hs b/Command/ExamineKey.hs
index 00d4d3a95..05db9817a 100644
--- a/Command/ExamineKey.hs
+++ b/Command/ExamineKey.hs
@@ -9,21 +9,22 @@ module Command.ExamineKey where
import Common.Annex
import Command
+import CmdLine.Batch
import qualified Utility.Format
import Command.Find (formatOption, getFormat, showFormatted, keyVars)
import Types.Key
cmd :: [Command]
-cmd = [noCommit $ noMessages $ withOptions [formatOption, jsonOption] $
+cmd = [noCommit $ noMessages $ withOptions [formatOption, jsonOption, batchOption] $
command "examinekey" (paramRepeating paramKey) seek
SectionPlumbing "prints information from a key"]
seek :: CommandSeek
seek ps = do
format <- getFormat
- withKeys (start format) ps
+ batchable withKeys (start format) ps
-start :: Maybe Utility.Format.Format -> Key -> CommandStart
-start format key = do
+start :: Maybe Utility.Format.Format -> Batchable Key
+start format _ key = do
showFormatted format (key2file key) (keyVars key)
stop
diff --git a/Command/LookupKey.hs b/Command/LookupKey.hs
index 0485232ae..6e7f07049 100644
--- a/Command/LookupKey.hs
+++ b/Command/LookupKey.hs
@@ -9,18 +9,20 @@ module Command.LookupKey where
import Common.Annex
import Command
+import CmdLine.Batch
import Annex.CatFile
import Types.Key
cmd :: [Command]
-cmd = [notBareRepo $ noCommit $ noMessages $
+cmd = [withOptions [batchOption] $ notBareRepo $ noCommit $ noMessages $
command "lookupkey" (paramRepeating paramFile) seek
SectionPlumbing "looks up key used for file"]
seek :: CommandSeek
-seek = withStrings start
+seek = batchable withStrings start
-start :: String -> CommandStart
-start file = do
- liftIO . maybe exitFailure (putStrLn . key2file) =<< catKeyFile file
+start :: Batchable String
+start batchmode file = do
+ maybe (batchBadInput batchmode) (liftIO . putStrLn . key2file)
+ =<< catKeyFile file
stop
diff --git a/Utility/SafeCommand.hs b/Utility/SafeCommand.hs
index f44112b82..9eaa53084 100644
--- a/Utility/SafeCommand.hs
+++ b/Utility/SafeCommand.hs
@@ -1,6 +1,6 @@
{- safely running shell commands
-
- - Copyright 2010-2013 Joey Hess <id@joeyh.name>
+ - Copyright 2010-2015 Joey Hess <id@joeyh.name>
-
- License: BSD-2-clause
-}
@@ -44,23 +44,32 @@ toCommand = concatMap unwrap
- if it succeeded or failed.
-}
boolSystem :: FilePath -> [CommandParam] -> IO Bool
-boolSystem command params = boolSystemEnv command params Nothing
+boolSystem command params = boolSystem' command params id
-boolSystemEnv :: FilePath -> [CommandParam] -> Maybe [(String, String)] -> IO Bool
-boolSystemEnv command params environ = dispatch <$> safeSystemEnv command params environ
+boolSystem' :: FilePath -> [CommandParam] -> (CreateProcess -> CreateProcess) -> IO Bool
+boolSystem' command params mkprocess = dispatch <$> safeSystem' command params mkprocess
where
dispatch ExitSuccess = True
dispatch _ = False
+boolSystemEnv :: FilePath -> [CommandParam] -> Maybe [(String, String)] -> IO Bool
+boolSystemEnv command params environ = boolSystem' command params $
+ \p -> p { env = environ }
+
{- Runs a system command, returning the exit status. -}
safeSystem :: FilePath -> [CommandParam] -> IO ExitCode
-safeSystem command params = safeSystemEnv command params Nothing
+safeSystem command params = safeSystem' command params id
-safeSystemEnv :: FilePath -> [CommandParam] -> Maybe [(String, String)] -> IO ExitCode
-safeSystemEnv command params environ = do
- (_, _, _, pid) <- createProcess (proc command $ toCommand params)
- { env = environ }
+safeSystem' :: FilePath -> [CommandParam] -> (CreateProcess -> CreateProcess) -> IO ExitCode
+safeSystem' command params mkprocess = do
+ (_, _, _, pid) <- createProcess p
waitForProcess pid
+ where
+ p = mkprocess $ proc command (toCommand params)
+
+safeSystemEnv :: FilePath -> [CommandParam] -> Maybe [(String, String)] -> IO ExitCode
+safeSystemEnv command params environ = safeSystem' command params $
+ \p -> p { env = environ }
{- Wraps a shell command line inside sh -c, allowing it to be run in a
- login shell that may not support POSIX shell, eg csh. -}
diff --git a/Utility/Url.hs b/Utility/Url.hs
index 1b0c394b7..1d34b558f 100644
--- a/Utility/Url.hs
+++ b/Utility/Url.hs
@@ -25,6 +25,9 @@ module Utility.Url (
) where
import Common
+import Utility.Tmp
+import qualified Build.SysConfig
+
import Network.URI
import Network.HTTP.Conduit
import Network.HTTP.Types
@@ -32,8 +35,6 @@ import qualified Data.CaseInsensitive as CI
import qualified Data.ByteString as B
import qualified Data.ByteString.UTF8 as B8
-import qualified Build.SysConfig
-
type URLString = String
type Headers = [String]
@@ -122,10 +123,14 @@ getUrlInfo url uo = case parseURIRelaxed url of
| Build.SysConfig.curl -> do
output <- catchDefaultIO "" $
readProcess "curl" $ toCommand curlparams
+ let len = extractlencurl output
+ let good = found len Nothing
case lastMaybe (lines output) of
- Just ('2':_:_) -> found
- (extractlencurl output)
- Nothing
+ Just ('2':_:_) -> good
+ -- don't try to parse ftp status
+ -- codes; if curl got a length,
+ -- it's good
+ _ | "ftp" `isInfixOf` uriScheme u && isJust len -> good
_ -> dne
| otherwise -> dne
Nothing -> dne
@@ -242,8 +247,15 @@ download' quiet url file uo = do
writeFile file ""
go "curl" $ headerparams ++ quietopt "-s" ++
[Params "-f -L -C - -# -o"]
- go cmd opts = boolSystem cmd $
- addUserAgent uo $ reqParams uo++opts++[File file, File url]
+
+ {- Run wget in a temp directory because it has been buggy
+ - and overwritten files in the current directory, even though
+ - it was asked to write to a file elsewhere. -}
+ go cmd opts = withTmpDir "downloadurl" $ \tmp -> do
+ relfile <- relPathDirToFile tmp file
+ let ps = addUserAgent uo $ reqParams uo++opts++[File relfile, File url]
+ boolSystem' cmd ps $ \p -> p { cwd = Just tmp }
+
quietopt s
| quiet = [Param s]
| otherwise = []
diff --git a/debian/changelog b/debian/changelog
index 82243d93d..f9a0aee93 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -27,6 +27,10 @@ git-annex (5.20150421) UNRELEASED; urgency=medium
the end.
* assistant: Added --autostop to complement --autostart.
* Android: Updated bundled ssh from 6.1p1 to 6.4p1.
+ * Work around wget bug #784348 which could cause it to clobber git-annex
+ symlinks when downloading from ftp.
+ * Support checking ftp urls for file presence.
+ * contentlocation, examinekey, lookupkey: Added --batch mode option.
-- Joey Hess <id@joeyh.name> Tue, 21 Apr 2015 15:54:10 -0400
diff --git a/debian/patches/standalone-build b/debian/patches/standalone-build
index 81d94561b..c195c55b1 100644
--- a/debian/patches/standalone-build
+++ b/debian/patches/standalone-build
@@ -6,7 +6,7 @@ Last-Update: 2015-04-20
--- a/debian/control
+++ b/debian/control
-@@ -87,11 +87,13 @@ Vcs-Git: git://git.kitenet.net/git-annex
+@@ -89,11 +89,13 @@ Vcs-Git: git://git.kitenet.net/git-annex
Homepage: http://git-annex.branchable.com/
XS-Testsuite: autopkgtest
@@ -23,7 +23,7 @@ Last-Update: 2015-04-20
rsync,
wget,
curl,
-@@ -110,7 +112,7 @@ Suggests:
+@@ -112,7 +114,7 @@ Suggests:
bup,
tahoe-lafs,
libnss-mdns,
@@ -32,7 +32,7 @@ Last-Update: 2015-04-20
git-annex allows managing files with git, without checking the file
contents into git. While that may seem paradoxical, it is useful when
dealing with files larger than git can currently easily handle, whether due
-@@ -128,3 +130,7 @@ Description: manage files with git, with
+@@ -130,3 +132,7 @@ Description: manage files with git, with
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.
@@ -54,9 +54,9 @@ Last-Update: 2015-04-20
+debian/git-annex-standalone/usr/lib/git-annex.linux/usr/share/man/man1/git-annex*
--- a/debian/rules
+++ b/debian/rules
-@@ -12,6 +12,15 @@ export RELEASE_BUILD=1
- # Rules for providing a standalone build of annex.
- #
+@@ -8,6 +8,15 @@ export RELEASE_BUILD=1
+ %:
+ dh $@
+override_dh_auto_build:
+ make linuxstandalone
@@ -67,6 +67,6 @@ Last-Update: 2015-04-20
+override_dh_fixperms:
+ dh_fixperms -Xld-linux
+
+ # Run this target to build git-annex-standalone.deb
build-standalone:
- [ -e .git ]
- git checkout debian/changelog
+ test -e .git
diff --git a/debian/rules b/debian/rules
index 0105f94db..26f244812 100755
--- a/debian/rules
+++ b/debian/rules
@@ -13,7 +13,7 @@ build-standalone:
test -e .git
git checkout debian/changelog
quilt pop -a || true
- QUILT_SERIES=series.standalone-build quilt push -a
+ QUILT_PATCHES=debian/patches QUILT_SERIES=series.standalone-build quilt push -a
debian/create-standalone-changelog
dpkg-buildpackage -rfakeroot
quilt pop -a
diff --git a/doc/Android/comment_6_455bcbd36c7b5eeb905cc56da4666b07._comment b/doc/Android/comment_6_455bcbd36c7b5eeb905cc56da4666b07._comment
new file mode 100644
index 000000000..75a1db4c2
--- /dev/null
+++ b/doc/Android/comment_6_455bcbd36c7b5eeb905cc56da4666b07._comment
@@ -0,0 +1,30 @@
+[[!comment format=mdwn
+ username="madduck"
+ subject="Weirdness when run from adb shell"
+ date="2015-05-06T14:28:43Z"
+ content="""
+How is this designed to work in the contact of Androids crap permissions?
+
+ shell@kminilte:/ $ /data/data/ga.androidterm/runshell
+ /system/bin/sh: /data/data/ga.androidterm/runshell: can't execute: Permission denied
+
+ 126|shell@kminilte:/ $ /system/bin/sh /data/data/ga.androidterm/runshell
+ Falling back to hardcoded app location; cannot find expected files in /data/app-lib
+
+ shell@kminilte:/sdcard/git-annex.home $ git
+ /system/bin/sh: git: not found
+
+ 127|shell@kminilte:/sdcard/git-annex.home $ echo $PATH
+ /data/data/ga.androidterm/bin:/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
+
+ shell@kminilte:/sdcard/git-annex.home $ /data/data/ga.androidterm/bin/git <
+ /data/data/ga.androidterm/bin/git: Permission denied
+
+ shell@kminilte:/sdcard/git-annex.home $ ls -l /data/data/ga.androidterm/bin -d
+ drwx------ u0_a255 u0_a255 2015-05-05 07:58 bin
+
+ shell@kminilte:/sdcard/git-annex.home $ id
+ uid=2000(shell) gid=2000(shell) groups=1003(graphics),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats) context=u:r:shell:s0
+
+
+"""]]
diff --git a/doc/bugs/git-annex_deletes_file_when_using___34__git_annex_get__34___after___34__git_annex_addurl_--file__34__.mdwn b/doc/bugs/git-annex_deletes_file_when_using___34__git_annex_get__34___after___34__git_annex_addurl_--file__34__.mdwn
index 0c9755385..1081b7acf 100644
--- a/doc/bugs/git-annex_deletes_file_when_using___34__git_annex_get__34___after___34__git_annex_addurl_--file__34__.mdwn
+++ b/doc/bugs/git-annex_deletes_file_when_using___34__git_annex_get__34___after___34__git_annex_addurl_--file__34__.mdwn
@@ -103,3 +103,10 @@ $
# End of transcript or log.
"""]]
+
+> workaround in place; [[done]] --[[Joey]]
+
+> Also, fixed it to allow dropping the file if the ftp server seems
+> to reply with a successful result (it's replying with 350, which is not
+> unambiguously good, but since curl is able to get the right file length,
+> the file is presumably still on the ftp server. --[[Joey]]
diff --git a/doc/bugs/git-annex_deletes_file_when_using___34__git_annex_get__34___after___34__git_annex_addurl_--file__34__/comment_1_dca81d5db9a966fc992ed28bb3c2a242._comment b/doc/bugs/git-annex_deletes_file_when_using___34__git_annex_get__34___after___34__git_annex_addurl_--file__34__/comment_1_dca81d5db9a966fc992ed28bb3c2a242._comment
new file mode 100644
index 000000000..65ebab1f2
--- /dev/null
+++ b/doc/bugs/git-annex_deletes_file_when_using___34__git_annex_get__34___after___34__git_annex_addurl_--file__34__/comment_1_dca81d5db9a966fc992ed28bb3c2a242._comment
@@ -0,0 +1,19 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-05-05T17:11:38Z"
+ content="""
+Thanks for a great bug report!
+
+Unfortunately, this turns out to be a bug in wget, as shown by this transcript:
+
+ joey@darkstar:~/tmp/y>ls
+ README@
+ joey@darkstar:~/tmp/y>wget -q --show-progress --clobber -c -O .git/annex/tmp/SHA256E-s1495--8822780b87a880ca9956ac108812557044618859cecb07df488df57e8134e34f ftp://ftp.funet.fi/pub/Linux/mirrors/debian/README --user-agent git-annex/5.20150505-gcdb212f
+ joey@darkstar:~/tmp/y>ls
+ joey@darkstar:~/tmp/y>
+
+I have filed a bug report on wget <http://bugs.debian.org/784348>,
+and I guess I'll try to work around it in git-annex by running wget
+inside an empty temp directory.
+"""]]
diff --git a/doc/bugs/local_pair_fails_if_non-ascii_characters_present_on_annex_path/comment_2_89f25f787558c77201fa6226cc7af5f5._comment b/doc/bugs/local_pair_fails_if_non-ascii_characters_present_on_annex_path/comment_2_89f25f787558c77201fa6226cc7af5f5._comment
new file mode 100644
index 000000000..d922d1722
--- /dev/null
+++ b/doc/bugs/local_pair_fails_if_non-ascii_characters_present_on_annex_path/comment_2_89f25f787558c77201fa6226cc7af5f5._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="http://xgm.de/oid/"
+ nickname="Horus"
+ subject="comment 2"
+ date="2015-05-05T17:35:37Z"
+ content="""
+I have the same problem without any special characters in my path (besides ~ of $HOME)
+Debug Log gives:
+
+ illegal control characters in pairing message; ignoring
+ [2015-05-05 19:11:40 CEST] PairListener: received \"PairMsg (Verifiable {verifiableVal = (PairReq,PairData {remoteHostName = Just \\"asaru\\", remoteUserName = \\"florian\\", remoteDirectory = \\"~/Desktop/annex\\", remoteSshPubKey = \\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDE8cd+cThzgRD+9RuiFhbL6UbPP+gvyNcUdrwVZoqfn2AE0niOe6XwsvqNrL4BZE50ySIo71XHyyAtRPiW3h0R8NjJo8+VFha2KL9vCXySNjq0Ib6HinfCDNUp5hI35F+LnUtUAVkhhhVqfJj4C6K3JTjXQ9J/hgiYRpNCY+2hV0+sF/e643SsyNlkUhiNxfCd4LQ5bedX6FeSCYBwteVgtZQzyByeawFpj1uajqBbDgDBLmclXDNrb4DwqavLRj+L+XxPtNqSKXSp8Q2/oypr/GQeTjmHEb8K/7qSjNHcBDAHH9fUI5lhDDhyxc4lMfap0lseSWtlwldhKjGqPnB9 florian@asaru\\n\\", pairUUID = UUID \\"0b1e8007-4a8d-4cc4-9ca1-320f4f700081\\"},IPv4Addr 347252928), verifiableDigest = \\"dff64a76c0333223cc3909f13bbdb3e1a70ddaa4\\"})\"
+
+I'll be very happy to provide any other help...
+"""]]
diff --git a/doc/forum/Where_did_my_files_go__63__.mdwn b/doc/forum/Where_did_my_files_go__63__.mdwn
new file mode 100644
index 000000000..f7d811d8f
--- /dev/null
+++ b/doc/forum/Where_did_my_files_go__63__.mdwn
@@ -0,0 +1,20 @@
+I import some files that I've seen before somewhere:
+
+ $ git annex import --deduplicate .../download
+ ...
+ import download/What_is_The_Digital_Fiction_Factory-Conker_Media.pdf (duplicate) ok
+ ...
+
+But the resulting download directory is empty, and `list` doesn't show any of the files:
+
+ $ git annex list --allrepos What_is_The_Digital_Fiction_Factory-Conker_Media.pdf
+ here
+ |...
+ |...
+ |...
+ |...
+ |...
+ |...
+ git-annex: What_is_The_Digital_Fiction_Factory-Conker_Media.pdf not found
+
+How do I find out where this file can be found?
diff --git a/doc/forum/Where_did_my_files_go__63__/comment_1_3ff3ffa95eb2745ff9ec2a903e071d97._comment b/doc/forum/Where_did_my_files_go__63__/comment_1_3ff3ffa95eb2745ff9ec2a903e071d97._comment
new file mode 100644
index 000000000..f0b2ae3e7
--- /dev/null
+++ b/doc/forum/Where_did_my_files_go__63__/comment_1_3ff3ffa95eb2745ff9ec2a903e071d97._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawnVnsqEy82M-MuS2gLri-az83wSQ6lXSrc"
+ nickname="Jean"
+ subject="comment 1"
+ date="2015-05-06T09:21:19Z"
+ content="""
+I did a dump of all known files: `$ git annex whereis > ../git-annex-whereis`
+No sign of the imported file.
+"""]]
diff --git a/doc/forum/__96__git_annex_sync__96___uses_too_much_space__63__.mdwn b/doc/forum/__96__git_annex_sync__96___uses_too_much_space__63__.mdwn
deleted file mode 100644
index 303cbb8be..000000000
--- a/doc/forum/__96__git_annex_sync__96___uses_too_much_space__63__.mdwn
+++ /dev/null
@@ -1,43 +0,0 @@
-When I create a new blank annex and try to sync it, I immediately run out of
-space.
-
-This is the original:
-
- $ git annex info
- repository mode: indirect
- trusted repositories: 0
- semitrusted repositories: 4
- 00000000-0000-0000-0000-000000000001 -- web
- ...
- untrusted repositories: 0
- transfers in progress: none
- available local disk space: 50.51 gigabytes (+1 megabyte reserved)
- local annex keys: 2581
- local annex size: 135.87 gigabytes
- annexed files in working tree: 4672
- size of annexed files in working tree: 231.16 gigabytes
- bloom filter size: 16 mebibytes (0.5% full)
- backend usage:
- SHA256E: 7253
-
-Then I try to sync on the newly created annex:
-
- $ git annex sync
- commit ok
- pull laptop
- warning: no common commits
- remote: Counting objects: 28801, done.
- remote: Compressing objects: 100% (20301/20301), done.
- fatal: write error: No space left on device22 MiB | 13.30 MiB/s
- fatal: index-pack failed
- failed
- git-annex: sync: 1 failed
-
-Now `.git` in the new annex is using 487M (this is the total size of mounted disk):
-
- $ du -sh .git/
- 487M .git/
-
-How big should the target annex be? Is it a multiple of the remote?
-
-As far as I understand, `sync` should get only the metadata, not the file contents. How can this be bigger than the entire source annex?
diff --git a/doc/forum/__96__git_annex_sync__96___uses_too_much_space__63__/comment_2_7a24236bc511cbfa869aaeb431a003d2._comment b/doc/forum/__96__git_annex_sync__96___uses_too_much_space__63__/comment_2_7a24236bc511cbfa869aaeb431a003d2._comment
new file mode 100644
index 000000000..60e1f22af
--- /dev/null
+++ b/doc/forum/__96__git_annex_sync__96___uses_too_much_space__63__/comment_2_7a24236bc511cbfa869aaeb431a003d2._comment
@@ -0,0 +1,18 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-05-05T16:42:43Z"
+ content="""
+It's failing to pull the git repository from the remote because that
+git repository is apparently larger than 487 mb. That is not usual
+when using git-annex, or even when using git unless you have millions
+of files in the git repository.
+
+Since you only have a few thousand files in the git repository,
+my guess is you have committed some large files directly to git,
+instead of using git-annex. So, you're seeing why git-annex exists...
+
+You should find the files in your git repository that are not git-annex
+symlinks, and are large files. You may need to use `git filter-branch`
+to remove the from your repository's history.
+"""]]
diff --git a/doc/forum/git_annex_windows_and_rsync.mdwn b/doc/forum/git_annex_windows_and_rsync.mdwn
new file mode 100644
index 000000000..c45cd8d2d
--- /dev/null
+++ b/doc/forum/git_annex_windows_and_rsync.mdwn
@@ -0,0 +1,26 @@
+Issue with getting files from a Linux ssh/rsync repo.
+
+I have a centralized repo on a small linux VM that I synchronize my workstations with, most are linux machines but one is a windows one. I installed msysgit and git-annex for windows, and then run the following:
+
+
+ git clone ssh://user@IP.ADDRESS/home/user/annex annex
+ cd annex
+ git annex init 'windows'
+ git annex copy --from origin
+
+
+So basically I am just trying to get a copy of the central repo onto this windows machine for starters and get:
+
+
+ rsync: connection unexpectedly closed (0 bytes received so far) [sender]
+ rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.1]
+ rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
+ rsync error: error in rsync protoco rsync failed -- run git annex again to resume file transfer
+ l dafailed
+ ta stream (code 12) atcopy
+
+
+And I get this message for every file.
+
+
+I do have cygwin with rsync and ssh installed on this machine previously so I tried on a separate machine thinking there may be compatibility issues with no avail either. I am not sure if this is an existing issue/work in progress with Windows/git-annex or if it is something I am just experiencing.
diff --git a/doc/forum/possible_gpg_issue/comment_7_f095eadcd9f6947f64e6830acea8228e._comment b/doc/forum/possible_gpg_issue/comment_7_f095eadcd9f6947f64e6830acea8228e._comment
new file mode 100644
index 000000000..c262c9b52
--- /dev/null
+++ b/doc/forum/possible_gpg_issue/comment_7_f095eadcd9f6947f64e6830acea8228e._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="ka7"
+ subject="comment 7"
+ date="2015-05-05T16:58:42Z"
+ content="""
+is on the \"SMB share\" running something special ? ..like virus-scanner, quota, backup-in-progress
+
+and.. smb like SAMBA or Windows ?
+
+in theory you can do lots of funny stuff to get a smb share: sharing a samba which is a webdav mounted via nfs on a clamFS. (*scary*)
+"""]]
diff --git a/doc/forum/pre-commit_hook_to_use_git_annex_for_only_large_files.mdwn b/doc/forum/pre-commit_hook_to_use_git_annex_for_only_large_files.mdwn
new file mode 100644
index 000000000..2a8135d99
--- /dev/null
+++ b/doc/forum/pre-commit_hook_to_use_git_annex_for_only_large_files.mdwn
@@ -0,0 +1,55 @@
+I've wanted to use git-annex for the longest time, but I really only wanted to use it if the files were over a certain size, otherwise, I just want to use regular git.
+
+After writing this pre-commit hook, I wanted to share and get some feedback.
+
+This would be saved as `.git/hooks/pre-commit`
+
+ #!/bin/sh
+ let MAX=1*1024*1024 # 1048576 == 1 MB
+ if [ ! -d '.git/annex/' ]; then
+ /usr/local/bin/git annex init >/dev/null 2>&1
+ fi
+ if git rev-parse --verify HEAD >/dev/null 2>&1; then
+ against=HEAD
+ else
+ # Initial commit: diff against an empty tree object
+ against=$(/usr/local/bin/git hash-object -t tree /dev/null)
+ fi
+ /usr/local/bin/git diff-index --cached $against | \
+ /usr/bin/tr '\t' ' ' | \
+ /usr/bin/cut -d ' ' -f4,6- | \
+ while read line; do
+ sha1=$(/usr/bin/cut -d ' ' -f1 <<< "$line")
+ if [ "$sha1" == "0000000000000000000000000000000000000000" ]; then
+ continue
+ fi
+ size=$(/usr/local/bin/git cat-file -s "$sha1")
+ if [ $size -ge $MAX ]; then
+ file=$(/usr/bin/cut -d ' ' -f2- <<< "$line")
+ /usr/local/bin/git update-index --force-remove "$file"
+ /usr/local/bin/git annex add "$file"
+ /usr/bin/killall -TERM Finder
+ fi
+ done
+ /usr/local/bin/git annex pre-commit .
+
+I also wrote an `Unlock Git Annex File.workflow` service for OS X:
+
+ set gitAnnex to "/Applications/git-annex.app/Contents/MacOS/git-annex"
+
+ tell application "Finder"
+ repeat with theItem in (get selection)
+ if file type of theItem is "slnk" then
+ set theFolder to quoted form of POSIX path of (container of theItem as alias)
+ set filePath to do shell script "/usr/bin/basename " & quoted form of POSIX path of (theItem as text)
+ set theCommand to "cd " & theFolder & "; " & gitAnnex & " unlock '" & filePath & "'"
+ do shell script theCommand
+ end if
+ end repeat
+ end tell
+
+Use Automator to create a new service that receives selected "files or folders" in "Finder.app". Then drag the "Run AppleScript" action to the workflow panel. The script above should be copied into the code area replacing all the default content.
+
+Am I all alone in wanting these types of scripts?
+
+- Peter
diff --git a/doc/forum/pre-commit_hook_to_use_git_annex_for_only_large_files/comment_1_01db183b1f1d081066d88332e2b6166a._comment b/doc/forum/pre-commit_hook_to_use_git_annex_for_only_large_files/comment_1_01db183b1f1d081066d88332e2b6166a._comment
new file mode 100644
index 000000000..98618cd51
--- /dev/null
+++ b/doc/forum/pre-commit_hook_to_use_git_annex_for_only_large_files/comment_1_01db183b1f1d081066d88332e2b6166a._comment
@@ -0,0 +1,15 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-05-05T18:46:42Z"
+ content="""
+The problem with this pre-commit hook is that by the time you run `git add
+largfile`, it has copied it into the git repository. Your hook will prevent
+it getting into a commit, so the repository will eventually garbage collect
+the copy away, but this can take some time or manual work to do.
+
+Recent versions of `git-annex add` will look at the annex.largefiles
+configuration and if the file does not match, add it to git directly.
+So that's an alternate workflow, where you `git annex add` files and let
+git-annex decide whether to put them in the annex or the git repository.
+"""]]
diff --git a/doc/forum/pre-commit_hook_to_use_git_annex_for_only_large_files/comment_2_2b76809869e0289f78f137afbdcf36c8._comment b/doc/forum/pre-commit_hook_to_use_git_annex_for_only_large_files/comment_2_2b76809869e0289f78f137afbdcf36c8._comment
new file mode 100644
index 000000000..7ed0c5768
--- /dev/null
+++ b/doc/forum/pre-commit_hook_to_use_git_annex_for_only_large_files/comment_2_2b76809869e0289f78f137afbdcf36c8._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-05-05T18:56:33Z"
+ content="""
+For the Finder script, there's a page collecting such stuff,
+[[tips/file_manager_integration]]
+"""]]
diff --git a/doc/git-annex-contentlocation.mdwn b/doc/git-annex-contentlocation.mdwn
index 128622bc8..a090e3754 100644
--- a/doc/git-annex-contentlocation.mdwn
+++ b/doc/git-annex-contentlocation.mdwn
@@ -16,6 +16,17 @@ Note that in direct mode, the file will typically be in the git work
tree, and while its content should correspond to the key, the file
could become modified at any time after git-annex checks it.
+# OPTIONS
+
+* `--batch`
+
+ Enable batch mode, in which a line containing the key is read from
+ stdin, the filename to its content is output to stdout (with a trailing
+ newline), and repeat.
+
+ Note that if a key's content is not present, an empty line is output to
+ stdout instead.
+
# SEE ALSO
[[git-annex]](1)
diff --git a/doc/git-annex-examinekey.mdwn b/doc/git-annex-examinekey.mdwn
index 3a8159f66..49bc95711 100644
--- a/doc/git-annex-examinekey.mdwn
+++ b/doc/git-annex-examinekey.mdwn
@@ -33,6 +33,11 @@ that can be determined purely by looking at the key.
Enable JSON output. This is intended to be parsed by programs that use
git-annex. Each line of output is a JSON object.
+* `--batch`
+
+ Enable batch mode, in which a line containing a key is read from stdin,
+ the information about it is output to stdout, and repeat.
+
# EXAMPLES
The location a key's value is stored (in indirect mode)
diff --git a/doc/git-annex-lookupkey.mdwn b/doc/git-annex-lookupkey.mdwn
index 568bbdc05..154b4a753 100644
--- a/doc/git-annex-lookupkey.mdwn
+++ b/doc/git-annex-lookupkey.mdwn
@@ -13,6 +13,16 @@ index. The key is output to stdout. If there is no key (because
the file is not present in the index, or is not a git-annex managed file),
nothing is output, and it exits nonzero.
+# OPTIONS
+
+* `--batch`
+
+ Enable batch mode, in which a line containing the filename is read from
+ stdin, the key is output to stdout (with a trailing newline), and repeat.
+
+ Note that is there is no key corresponding to the file, an empty line is
+ output to stdout instead.
+
# SEE ALSO
[[git-annex]](1)
diff --git a/doc/metadata/comment_5_fd30444aecfc4792eb4dbfdebc230786._comment b/doc/metadata/comment_5_fd30444aecfc4792eb4dbfdebc230786._comment
new file mode 100644
index 000000000..195eea278
--- /dev/null
+++ b/doc/metadata/comment_5_fd30444aecfc4792eb4dbfdebc230786._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="madduck"
+ subject="TODO written"
+ date="2015-05-06T14:24:56Z"
+ content="""
+@joeyh, yes, it would overwrite all metadata. The idea would be to export with --json, manipulate, import…
+
+http://git-annex.branchable.com/todo/ability_to_set_metadata_from_json/?updated
+"""]]
diff --git a/doc/todo/ability_to_set_metadata_from_json.mdwn b/doc/todo/ability_to_set_metadata_from_json.mdwn
new file mode 100644
index 000000000..ee4d68823
--- /dev/null
+++ b/doc/todo/ability_to_set_metadata_from_json.mdwn
@@ -0,0 +1,6 @@
+I can export metadata to JSON format, which is nice as this can now be read into any other tool and manipulated. But I cannot find a way to set the metadata from JSON and so I am left to figure out what changes need to be made via the g-a interface to get to the desired state, and that is hard to get right.
+
+Maybe g-a metadata could grow an import-json function which would set (overwrite) the metadata for the given file(s) from JSON input.
+
+Thanks,
+-m
diff --git a/doc/todo/patch:_Add_names_to_.mailmap_to_remove_duplicates_from_git_shortlog.mdwn b/doc/todo/patch:_Add_names_to_.mailmap_to_remove_duplicates_from_git_shortlog.mdwn
new file mode 100644
index 000000000..241a07ff2
--- /dev/null
+++ b/doc/todo/patch:_Add_names_to_.mailmap_to_remove_duplicates_from_git_shortlog.mdwn
@@ -0,0 +1,141 @@
+Hi,
+these three patches sort .mailmap to get consistent ordering, add nine
+names with proper emails to it, and then there is the third one, which
+contains all the joeyh changes. I put them in a separate patch in case
+you have other opinions about that.
+
+I notice you're not a fan of GitHub pull requests, and attachments
+wasn't allowed here, so I just paste a `cat 000* >all.patch` here, hope
+that's ok. The branches are also available from
+<https://github.com/sunny256/git-annex> as the branches "edit-mailmap"
+(this version) and "edit-mailmap.wip" (the whole process) in case that's
+easier.
+
+There will be more "useful" patches in the future, have started browsing
+"Learn you a Haskell for great good", it's awesome. I'll have to get the
+build working first, though. There is some dependency problem:
+
+[[!format hs """
+
+$ make
+if [ "cabal " = ./Setup ]; then ghc --make Setup; fi
+cabal configure
+Resolving dependencies...
+
+Utility/Exception.hs:25:18:
+ Could not find module `Control.Monad.Catch'
+ Perhaps you meant
+ Control.Monad.CatchIO (from MonadCatchIO-mtl-0.3.0.4)
+ Control.Monad.Cont (needs flag -package mtl-2.1.1)
+ Control.Monad.State (needs flag -package mtl-2.1.1)
+ Use -v to see a list of the files searched for.
+make: *** [Build/SysConfig.hs] Error 1
+
+"""]]
+
+Mentioning it just in case you have a quick solution. Have tried to fix
+it by summoning cabal in various ways, but no luck yet. The OS used is
+Debian GNU/Linux 7.8 (wheezy) on x86_64.
+
+[[!format sh """
+
+From 20317aff9fbb8662aaeda4aa2285f92e728adc58 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=98yvind=20A=2E=20Holm?= <sunny@sunbase.org>
+Date: Sat, 2 May 2015 17:22:48 +0200
+Subject: [PATCH 1/3] Filter .mailmap through "sort -u" for predictability
+
+---
+ .mailmap | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/.mailmap b/.mailmap
+index 275b236..5d51042 100644
+--- a/.mailmap
++++ b/.mailmap
+@@ -1,7 +1,7 @@
+ Joey Hess <id@joeyh.name> http://joey.kitenet.net/ <joey@web>
+-Joey Hess <id@joeyh.name> http://joeyh.name/ <joey@web>
+ Joey Hess <id@joeyh.name> http://joeyh.name/ <http://joeyh.name/@web>
++Joey Hess <id@joeyh.name> http://joeyh.name/ <joey@web>
++Richard Hartmann <richih@debian.org> https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U <Richard@web>
+ Yaroslav Halchenko <debian@onerussian.com>
+ Yaroslav Halchenko <debian@onerussian.com> http://yarikoptic.myopenid.com/ <site-myopenid@web>
+ Yaroslav Halchenko <debian@onerussian.com> https://www.google.com/accounts/o8/id?id=AItOawnx8kHW66N3BqmkVpgtXDlYMvr8TJ5VvfY <Yaroslav@web>
+-Richard Hartmann <richih@debian.org> https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U <Richard@web>
+--
+2.4.0
+
+From b216bfdb3ab65f025e46c7fcdc86db3a3440b0af Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=98yvind=20A=2E=20Holm?= <sunny@sunbase.org>
+Date: Mon, 4 May 2015 15:36:41 +0200
+Subject: [PATCH 2/3] .mailmap: Add nine more uncontroversial names
+
+Including only those with a proper email where there is no doubt about
+which is the correct one.
+---
+ .mailmap | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/.mailmap b/.mailmap
+index 5d51042..2dafcea 100644
+--- a/.mailmap
++++ b/.mailmap
+@@ -1,7 +1,20 @@
++Antoine Beaupré <anarcat@koumbit.org> anarcat <anarcat@web>
++Antoine Beaupré <anarcat@koumbit.org> https://id.koumbit.net/anarcat <https://id.koumbit.net/anarcat@web>
++Greg Grossmeier <greg@grossmeier.net> http://grossmeier.net/ <greg@web>
++Jimmy Tang <jtang@tchpc.tcd.ie> jtang <jtang@web>
++Joachim Breitner <mail@joachim-breitner.de> http://www.joachim-breitner.de/ <nomeata@web>
+ Joey Hess <id@joeyh.name> http://joey.kitenet.net/ <joey@web>
+ Joey Hess <id@joeyh.name> http://joeyh.name/ <http://joeyh.name/@web>
+ Joey Hess <id@joeyh.name> http://joeyh.name/ <joey@web>
++Johan Kiviniemi <devel@johan.kiviniemi.name> http://johan.kiviniemi.name/ <Johan@web>
++Johan Kiviniemi <devel@johan.kiviniemi.name> http://johan.kiviniemi.name/ <http://johan.kiviniemi.name/@web>
++Nicolas Pouillard <nicolas.pouillard@gmail.com> http://ertai.myopenid.com/ <npouillard@web>
++Peter Simons <simons@cryp.to> Peter Simons <simons@ubuntu-12.04>
++Peter Simons <simons@cryp.to> http://peter-simons.myopenid.com/ <http://peter-simons.myopenid.com/@web>
++Philipp Kern <pkern@debian.org> http://phil.0x539.de/ <Philipp_Kern@web>
+ Richard Hartmann <richih@debian.org> https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U <Richard@web>
+ Yaroslav Halchenko <debian@onerussian.com>
+ Yaroslav Halchenko <debian@onerussian.com> http://yarikoptic.myopenid.com/ <site-myopenid@web>
+ Yaroslav Halchenko <debian@onerussian.com> https://www.google.com/accounts/o8/id?id=AItOawnx8kHW66N3BqmkVpgtXDlYMvr8TJ5VvfY <Yaroslav@web>
++Øyvind A. Holm <sunny@sunbase.org> http://sunny256.sunbase.org/ <sunny256@web>
++Øyvind A. Holm <sunny@sunbase.org> https://sunny256.wordpress.com/ <sunny256@web>
+--
+2.4.0
+
+From b730720bf85217051b0bd6414650f3bfd5928edb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=98yvind=20A=2E=20Holm?= <sunny@sunbase.org>
+Date: Mon, 4 May 2015 15:46:29 +0200
+Subject: [PATCH 3/3] .mailmap: Add all variations for Joey Hess
+
+---
+ .mailmap | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/.mailmap b/.mailmap
+index 2dafcea..3013a39 100644
+--- a/.mailmap
++++ b/.mailmap
+@@ -3,9 +3,17 @@ Antoine Beaupré <anarcat@koumbit.org> https://id.koumbit.net/anarcat <https://i
+ Greg Grossmeier <greg@grossmeier.net> http://grossmeier.net/ <greg@web>
+ Jimmy Tang <jtang@tchpc.tcd.ie> jtang <jtang@web>
+ Joachim Breitner <mail@joachim-breitner.de> http://www.joachim-breitner.de/ <nomeata@web>
++Joey Hess <id@joeyh.name> Joey Hess <joey@gnu.kitenet.net>
++Joey Hess <id@joeyh.name> Joey Hess <joey@kitenet.net>
++Joey Hess <id@joeyh.name> Joey Hess <joeyh@debian.org>
++Joey Hess <id@joeyh.name> Joey Hess <joeyh@fischer.debian.org>
++Joey Hess <id@joeyh.name> Joey Hess <joeyh@joeyh.name>
++Joey Hess <id@joeyh.name> Joey Hess <joeyh@oberon.tam-lin.net>
++Joey Hess <id@joeyh.name> Joey Hess <joeyh@oberon.underhill.private>
+ Joey Hess <id@joeyh.name> http://joey.kitenet.net/ <joey@web>
+ Joey Hess <id@joeyh.name> http://joeyh.name/ <http://joeyh.name/@web>
+ Joey Hess <id@joeyh.name> http://joeyh.name/ <joey@web>
++Joey Hess <id@joeyh.name> https://www.google.com/accounts/o8/id?id=AItOawmJfIszzreLNvCqzqzvTayA9_9L6gb9RtY <Joey@web>
+ Johan Kiviniemi <devel@johan.kiviniemi.name> http://johan.kiviniemi.name/ <Johan@web>
+ Johan Kiviniemi <devel@johan.kiviniemi.name> http://johan.kiviniemi.name/ <http://johan.kiviniemi.name/@web>
+ Nicolas Pouillard <nicolas.pouillard@gmail.com> http://ertai.myopenid.com/ <npouillard@web>
+--
+2.4.0
+
+"""]]
diff --git a/doc/todo/patch:_Add_names_to_.mailmap_to_remove_duplicates_from_git_shortlog/comment_1_031c5a4afe9453a5b62004c85e7e7192._comment b/doc/todo/patch:_Add_names_to_.mailmap_to_remove_duplicates_from_git_shortlog/comment_1_031c5a4afe9453a5b62004c85e7e7192._comment
new file mode 100644
index 000000000..474c61c1e
--- /dev/null
+++ b/doc/todo/patch:_Add_names_to_.mailmap_to_remove_duplicates_from_git_shortlog/comment_1_031c5a4afe9453a5b62004c85e7e7192._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://sunny256.wordpress.com/"
+ nickname="sunny256"
+ subject="Character encoding error"
+ date="2015-05-06T14:53:50Z"
+ content="""
+Hm, seems as there are some character encoding problem there, two names (Antoine Beaupré and mine) in the second patch. The infamous 'Ø' strikes again. Just wanted to mention it so the patch doesn't introduce errors. Maybe it's safest to fetch it from GitHub.
+"""]]
diff --git a/doc/trust/comment_2_2262eaa830306d3dc75999bc0433b6a8._comment b/doc/trust/comment_2_2262eaa830306d3dc75999bc0433b6a8._comment
new file mode 100644
index 000000000..b2136f43e
--- /dev/null
+++ b/doc/trust/comment_2_2262eaa830306d3dc75999bc0433b6a8._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-05-05T18:07:02Z"
+ content="""
+You can use `remote.<name>.annex-trustlevel` as documented in the git-annex
+man page.
+"""]]