git-annex 5.20150409 → 5.20150420
raw patch · 213 files changed
+1738/−869 lines, 213 filesdep −SHAdep ~containersdep ~cryptohash
Dependencies removed: SHA
Dependency ranges changed: containers, cryptohash
Files
- Annex/AutoMerge.hs +1/−1
- Annex/Content.hs +14/−12
- Annex/Content/Direct.hs +1/−1
- Annex/Difference.hs +2/−2
- Annex/DirHashes.hs +1/−1
- Annex/FileMatcher.hs +2/−2
- Annex/Init.hs +5/−5
- Annex/MetaData.hs +2/−2
- Annex/Notification.hs +1/−1
- Annex/View.hs +1/−1
- Assistant.hs +0/−1
- Assistant/Pairing.hs +2/−0
- Assistant/Pairing/Network.hs +4/−4
- Assistant/Threads/Committer.hs +1/−1
- Assistant/Threads/PairListener.hs +1/−1
- Assistant/Threads/XMPPPusher.hs +2/−1
- Assistant/WebApp/Configurators/Pairing.hs +2/−2
- Build/Configure.hs +9/−6
- Build/NullSoftInstaller.hs +20/−5
- Build/Version.hs +3/−0
- Build/mdwn2man +1/−0
- CHANGELOG +36/−0
- CmdLine/GitAnnex.hs +2/−0
- Command/ContentLocation.hs +0/−1
- Command/Fsck.hs +36/−10
- Command/GroupWanted.hs +3/−21
- Command/Info.hs +87/−37
- Command/Required.hs +17/−0
- Command/Wanted.hs +30/−22
- Command/WebApp.hs +2/−2
- Config/NumCopies.hs +8/−3
- Creds.hs +2/−2
- Crypto.hs +2/−2
- Database/Fsck.hs +1/−1
- Git.hs +3/−3
- Git/CatFile.hs +1/−1
- Git/DiffTree.hs +2/−2
- Git/LsFiles.hs +7/−6
- Git/Remote/Remove.hs +1/−1
- Git/UnionMerge.hs +3/−3
- Locations.hs +1/−1
- Logs/Activity.hs +1/−1
- Remote.hs +3/−4
- Remote/BitTorrent.hs +1/−1
- Remote/Directory.hs +7/−3
- Remote/GCrypt.hs +1/−1
- Remote/Git.hs +14/−6
- Remote/Helper/Chunked.hs +1/−1
- Test.hs +6/−0
- Types/Crypto.hs +2/−25
- Types/Difference.hs +2/−2
- Types/Distribution.hs +1/−1
- Types/Remote.hs +2/−1
- Utility/CopyFile.hs +6/−1
- Utility/DataUnits.hs +1/−0
- Utility/DirWatcher.hs +5/−5
- Utility/Directory.hs +1/−1
- Utility/FileMode.hs +1/−1
- Utility/Hash.hs +39/−2
- Utility/Metered.hs +1/−1
- Utility/Path.hs +8/−1
- Utility/Touch.hsc +3/−3
- Utility/Verifiable.hs +6/−5
- build.bat +1/−1
- debian/changelog +36/−0
- debian/control +1/−2
- debian/create-standalone-changelog +17/−0
- debian/patches/series.standalone-build +1/−0
- debian/patches/standalone-build +72/−0
- debian/rules +10/−0
- doc/bugs/--list-tests_runs_tests.mdwn +0/−28
- doc/bugs/Can__39__t_get_content_from_S3_with_s3-aws_library.mdwn +57/−0
- doc/bugs/Proxy_support.mdwn +23/−0
- doc/bugs/addurl_+_sync_vs_addurl_+_commit.mdwn +24/−0
- doc/bugs/addurl_magnet_could_not_download_torrent_file.mdwn +49/−0
- doc/bugs/encryption__61__none_doesn__39__t_work_with_enableremote.mdwn +2/−0
- doc/bugs/false_positives_from_fsck_in_bare_repo.mdwn +2/−0
- doc/bugs/fsck_reports_unsolvable_problem.mdwn +20/−0
- doc/bugs/git-annex-shell_doesn__39__t_work_as_expected.mdwn +2/−0
- doc/bugs/git-annex_unused_--from_s3_doesn__39__t.mdwn +2/−0
- doc/bugs/list-tests_runs_tests.mdwn +28/−0
- doc/devblog/day_274__concurrent_annex_state.mdwn +42/−0
- doc/devblog/day_275-276__mostly_Windows.mdwn +20/−0
- doc/devblog/day_277__thanks.mdwn +20/−0
- doc/forum/Cant_see_git-annex-shell_via_SSH_in_OSX.mdwn +119/−0
- doc/forum/How_do_I_hide_files_not_present_in_the_local_annex__63__.mdwn +2/−0
- doc/forum/__34__git_annex_sync__34___synced_after_8_hours.mdwn +40/−0
- doc/forum/ga-ncdu/comment_3_c5ce3b663de76b50754de70b3fb23bf0._comment +15/−0
- doc/git-annex-expire.mdwn +1/−1
- doc/git-annex-fromkey.mdwn +1/−1
- doc/git-annex-info.mdwn +4/−0
- doc/git-annex-lock.mdwn +1/−1
- doc/git-annex-preferred-content.mdwn +8/−1
- doc/git-annex-readpresentkey.mdwn +1/−1
- doc/git-annex-required.mdwn +29/−0
- doc/git-annex-shell.mdwn +1/−1
- doc/git-annex.mdwn +8/−0
- doc/git-union-merge.mdwn +1/−1
- doc/install/Windows.mdwn +4/−1
- doc/news/version_5.20150317.mdwn +0/−45
- doc/news/version_5.20150420.mdwn +33/−0
- doc/preferred_content.mdwn +3/−3
- doc/privacy.mdwn +1/−1
- doc/related_software.mdwn +2/−2
- doc/required_content.mdwn +2/−1
- doc/tips/Synology_NAS_and_git_annex.mdwn +1/−1
- doc/tips/file_manager_integration.mdwn +4/−4
- doc/tips/megaannex.mdwn +1/−1
- doc/tips/using_gitolite_with_git-annex.mdwn +1/−1
- doc/tips/using_the_web_as_a_special_remote.mdwn +1/−1
- doc/todo/addurl___8211__force-torrent_option.mdwn +1/−0
- doc/todo/command_line_interface_for_required_content_setthings.mdwn +2/−0
- doc/todo/git-annex-standalone_Debian_package.mdwn +3/−0
- doc/transferring_data.mdwn +1/−1
- doc/trust.mdwn +2/−2
- doc/upgrades.mdwn +2/−2
- git-annex.cabal +4/−4
- man/git-annex-add.1 +3/−3
- man/git-annex-addunused.1 +2/−2
- man/git-annex-addurl.1 +2/−2
- man/git-annex-assistant.1 +5/−5
- man/git-annex-checkpresentkey.1 +2/−2
- man/git-annex-contentlocation.1 +3/−3
- man/git-annex-copy.1 +6/−6
- man/git-annex-dead.1 +2/−2
- man/git-annex-describe.1 +4/−4
- man/git-annex-diffdriver.1 +4/−4
- man/git-annex-direct.1 +2/−2
- man/git-annex-drop.1 +6/−6
- man/git-annex-dropkey.1 +2/−2
- man/git-annex-dropunused.1 +3/−3
- man/git-annex-edit.1 +2/−2
- man/git-annex-enableremote.1 +2/−2
- man/git-annex-examinekey.1 +3/−3
- man/git-annex-expire.1 +8/−8
- man/git-annex-find.1 +4/−4
- man/git-annex-findref.1 +4/−4
- man/git-annex-fix.1 +3/−3
- man/git-annex-forget.1 +7/−7
- man/git-annex-fromkey.1 +4/−4
- man/git-annex-fsck.1 +5/−5
- man/git-annex-fuzztest.1 +2/−2
- man/git-annex-get.1 +8/−8
- man/git-annex-group.1 +3/−3
- man/git-annex-groupwanted.1 +2/−2
- man/git-annex-import.1 +5/−5
- man/git-annex-importfeed.1 +3/−3
- man/git-annex-indirect.1 +3/−3
- man/git-annex-info.1 +7/−4
- man/git-annex-init.1 +3/−3
- man/git-annex-initremote.1 +4/−4
- man/git-annex-list.1 +3/−3
- man/git-annex-lock.1 +3/−3
- man/git-annex-log.1 +3/−3
- man/git-annex-lookupkey.1 +3/−3
- man/git-annex-map.1 +3/−3
- man/git-annex-matching-options.1 +10/−10
- man/git-annex-merge.1 +2/−2
- man/git-annex-metadata.1 +4/−4
- man/git-annex-migrate.1 +3/−3
- man/git-annex-mirror.1 +4/−4
- man/git-annex-move.1 +5/−5
- man/git-annex-numcopies.1 +4/−4
- man/git-annex-pre-commit.1 +2/−2
- man/git-annex-preferred-content.1 +17/−10
- man/git-annex-proxy.1 +3/−3
- man/git-annex-readpresentkey.1 +4/−4
- man/git-annex-registerurl.1 +2/−2
- man/git-annex-reinit.1 +2/−2
- man/git-annex-reinject.1 +2/−2
- man/git-annex-rekey.1 +2/−2
- man/git-annex-remotedaemon.1 +6/−6
- man/git-annex-repair.1 +6/−6
- man/git-annex-required.1 +26/−0
- man/git-annex-resolvemerge.1 +2/−2
- man/git-annex-rmurl.1 +2/−2
- man/git-annex-schedule.1 +4/−4
- man/git-annex-semitrust.1 +2/−2
- man/git-annex-setpresentkey.1 +3/−3
- man/git-annex-shell.1 +16/−16
- man/git-annex-status.1 +3/−3
- man/git-annex-sync.1 +4/−4
- man/git-annex-test.1 +4/−4
- man/git-annex-testremote.1 +2/−2
- man/git-annex-transferkey.1 +2/−2
- man/git-annex-transferkeys.1 +3/−3
- man/git-annex-trust.1 +2/−2
- man/git-annex-unannex.1 +3/−3
- man/git-annex-undo.1 +2/−2
- man/git-annex-ungroup.1 +2/−2
- man/git-annex-uninit.1 +4/−4
- man/git-annex-unlock.1 +3/−3
- man/git-annex-untrust.1 +2/−2
- man/git-annex-unused.1 +3/−3
- man/git-annex-upgrade.1 +7/−7
- man/git-annex-vadd.1 +6/−6
- man/git-annex-vcycle.1 +6/−6
- man/git-annex-version.1 +7/−7
- man/git-annex-vfilter.1 +6/−6
- man/git-annex-vicfg.1 +4/−4
- man/git-annex-view.1 +7/−7
- man/git-annex-vpop.1 +6/−6
- man/git-annex-wanted.1 +3/−3
- man/git-annex-watch.1 +2/−2
- man/git-annex-webapp.1 +4/−4
- man/git-annex-whereis.1 +4/−4
- man/git-annex-xmppgit.1 +3/−3
- man/git-annex.1 +164/−157
- standalone/android/cabal.config +2/−3
- standalone/linux/cabal.config +2/−3
- standalone/linux/skel/runshell +12/−10
- standalone/osx/git-annex.app/Contents/MacOS/runshell +12/−10
- standalone/windows/build.sh +7/−1
Annex/AutoMerge.hs view
@@ -37,7 +37,7 @@ - Callers should use Git.Branch.changed first, to make sure that - there are changed from the current branch to the branch being merged in. -}-autoMergeFrom :: Git.Ref -> (Maybe Git.Ref) -> Git.Branch.CommitMode -> Annex Bool+autoMergeFrom :: Git.Ref -> Maybe Git.Ref -> Git.Branch.CommitMode -> Annex Bool autoMergeFrom branch currbranch commitmode = do showOutput case currbranch of
Annex/Content.hs view
@@ -280,17 +280,19 @@ {- Checks that there is disk space available to store a given key, - in a destination (or the annex) printing a warning if not. -} checkDiskSpace :: Maybe FilePath -> Key -> Integer -> Annex Bool-checkDiskSpace destination key alreadythere = do- reserve <- annexDiskReserve <$> Annex.getGitConfig- free <- liftIO . getDiskFree =<< dir- force <- Annex.getState Annex.force- case (free, keySize key) of- (Just have, Just need) -> do- let ok = (need + reserve <= have + alreadythere) || force- unless ok $- needmorespace (need + reserve - have - alreadythere)- return ok- _ -> return True+checkDiskSpace destination key alreadythere = ifM (Annex.getState Annex.force)+ ( return True+ , do+ reserve <- annexDiskReserve <$> Annex.getGitConfig+ free <- liftIO . getDiskFree =<< dir+ case (free, fromMaybe 1 (keySize key)) of+ (Just have, need) -> do+ let ok = (need + reserve <= have + alreadythere)+ unless ok $+ needmorespace (need + reserve - have - alreadythere)+ return ok+ _ -> return True+ ) where dir = maybe (fromRepo gitAnnexDir) return destination needmorespace n =@@ -538,7 +540,7 @@ -} getstate direct = do when direct $- void $ inodesChanged+ void inodesChanged Annex.getState id {- Things to do to record changes to content when shutting down.
Annex/Content/Direct.hs view
@@ -257,7 +257,7 @@ annexSentinalFile = do sentinalfile <- fromRepo gitAnnexInodeSentinal sentinalcachefile <- fromRepo gitAnnexInodeSentinalCache- return $ SentinalFile+ return SentinalFile { sentinalFile = sentinalfile , sentinalCacheFile = sentinalcachefile }
Annex/Difference.hs view
@@ -38,10 +38,10 @@ ( do oldds <- recordedDifferencesFor u when (ds /= oldds) $- warning $ "Cannot change tunable parameters in already initialized repository."+ warning "Cannot change tunable parameters in already initialized repository." return oldds , if otherds == mempty- then ifM (not . null . filter (/= u) . M.keys <$> uuidMap)+ then ifM (any (/= u) . M.keys <$> uuidMap) ( do warning "Cannot change tunable parameters in a clone of an existing repository." return mempty
Annex/DirHashes.hs view
@@ -46,7 +46,7 @@ | otherwise = def branchHashDir :: GitConfig -> Key -> String-branchHashDir config key = hashDirLower (branchHashLevels config) key+branchHashDir = hashDirLower . branchHashLevels {- Two different directory hashes may be used. The mixed case hash - came first, and is fine, except for the problem of case-strict
Annex/FileMatcher.hs view
@@ -24,10 +24,10 @@ import Data.Either import qualified Data.Set as S -checkFileMatcher :: (FileMatcher Annex) -> FilePath -> Annex Bool+checkFileMatcher :: FileMatcher Annex -> FilePath -> Annex Bool checkFileMatcher matcher file = checkMatcher matcher Nothing (Just file) S.empty True -checkMatcher :: (FileMatcher Annex) -> Maybe Key -> AssociatedFile -> AssumeNotPresent -> Bool -> Annex Bool+checkMatcher :: FileMatcher Annex -> Maybe Key -> AssociatedFile -> AssumeNotPresent -> Bool -> Annex Bool checkMatcher matcher mkey afile notpresent d | isEmpty matcher = return d | otherwise = case (mkey, afile) of
Annex/Init.hs view
@@ -57,15 +57,15 @@ initialize :: Maybe String -> Annex () initialize mdescription = do+ {- This will make the first commit to git, so ensure git is set up+ - properly to allow commits when running it. -}+ ensureCommit $ Annex.Branch.create+ prepUUID initialize' u <- getUUID- {- This will make the first commit to git, so ensure git is set up- - properly to allow commits when running it. -}- ensureCommit $ do- Annex.Branch.create- describeUUID u =<< genDescription mdescription+ describeUUID u =<< genDescription mdescription -- Everything except for uuid setup. initialize' :: Annex ()
Annex/MetaData.hs view
@@ -36,7 +36,7 @@ -} genMetaData :: Key -> FilePath -> FileStatus -> Annex () genMetaData key file status = do- maybe noop (flip copyMetaData key) =<< catKeyFileHEAD file+ maybe noop (`copyMetaData` key) =<< catKeyFileHEAD file whenM (annexGenMetaData <$> Annex.getGitConfig) $ do curr <- getCurrentMetaData key addMetaData key (dateMetaData mtime curr)@@ -52,4 +52,4 @@ ] where isnew (f, _) = S.null (currentMetaDataValues f old)- (y, m, _d) = toGregorian $ utctDay $ mtime+ (y, m, _d) = toGregorian $ utctDay mtime
Annex/Notification.hs view
@@ -43,7 +43,7 @@ return ok else a NotifyWitness #else-notifyTransfer _ (Just _) a = do a NotifyWitness+notifyTransfer _ (Just _) a = a NotifyWitness #endif notifyDrop :: Maybe FilePath -> Bool -> Annex ()
Annex/View.hs view
@@ -314,7 +314,7 @@ - branch for the view. -} applyView :: View -> Annex Git.Branch-applyView view = applyView' viewedFileFromReference getWorkTreeMetaData view+applyView = applyView' viewedFileFromReference getWorkTreeMetaData {- Generates a new branch for a View, which must be a more narrow - version of the View originally used to generate the currently
Assistant.hs view
@@ -57,7 +57,6 @@ #ifdef mingw32_HOST_OS import Utility.Env import Annex.Path-import Config.Files import System.Environment (getArgs) #endif
Assistant/Pairing.hs view
@@ -81,6 +81,8 @@ } deriving (Show) +data AddrClass = IPv4AddrClass | IPv6AddrClass+ data SomeAddr = IPv4Addr HostAddress {- My Android build of the Network library does not currently have IPV6 - support. -}
Assistant/Pairing/Network.hs view
@@ -33,9 +33,9 @@ {- Goal: Reach all hosts on the same network segment. - Method: Use same address that avahi uses. Other broadcast addresses seem - to not be let through some routers. -}-multicastAddress :: SomeAddr -> HostName-multicastAddress (IPv4Addr _) = "224.0.0.251"-multicastAddress (IPv6Addr _) = "ff02::fb"+multicastAddress :: AddrClass -> HostName+multicastAddress IPv4AddrClass = "224.0.0.251"+multicastAddress IPv6AddrClass = "ff02::fb" {- Multicasts a message repeatedly on all interfaces, with a 2 second - delay between each transmission. The message is repeated forever@@ -62,7 +62,7 @@ sendinterface cache i = void $ tryIO $ withSocketsDo $ bracket setup cleanup use where- setup = multicastSender (multicastAddress i) pairingPort+ setup = multicastSender (multicastAddress IPv4AddrClass) pairingPort cleanup (sock, _) = sClose sock -- FIXME does not work use (sock, addr) = do setInterface sock (showAddr i)
Assistant/Threads/Committer.hs view
@@ -196,7 +196,7 @@ maxCommitSize = 5000 {- Decide if now is a good time to make a commit.- - Note that the list of changes has an undefined order.+ - Note that the list of changes has a random order. - - Current strategy: If there have been 10 changes within the past second, - a batch activity is taking place, so wait for later.
Assistant/Threads/PairListener.hs view
@@ -31,7 +31,7 @@ where {- Note this can crash if there's no network interface, - or only one like lo that doesn't support multicast. -}- getsock = multicastReceiver (multicastAddress $ IPv4Addr undefined) pairingPort+ getsock = multicastReceiver (multicastAddress IPv4AddrClass) pairingPort go reqs cache sock = liftIO (getmsg sock []) >>= \msg -> case readish msg of Nothing -> go reqs cache sock
Assistant/Threads/XMPPPusher.hs view
@@ -78,4 +78,5 @@ (Pushing clientid _) | Just clientid /= lastpushedto -> (m, rejected ++ ms) _ -> go (m:rejected) ms- go [] [] = undefined+ go [] [] = error "empty push queue"+
Assistant/WebApp/Configurators/Pairing.hs view
@@ -39,7 +39,7 @@ import qualified Data.Text as T #ifdef WITH_PAIRING import qualified Data.Text.Encoding as T-import qualified Data.ByteString.Lazy as B+import qualified Data.ByteString as B import Data.Char import qualified Control.Exception as E import Control.Concurrent@@ -304,7 +304,7 @@ | otherwise = Nothing toSecret :: Text -> Secret-toSecret s = B.fromChunks [T.encodeUtf8 $ T.toLower $ T.filter isAlphaNum s]+toSecret s = T.encodeUtf8 $ T.toLower $ T.filter isAlphaNum s {- From Dickens -} sampleQuote :: Text
Build/Configure.hs view
@@ -94,12 +94,15 @@ return $ Config "upgradelocation" $ MaybeStringConfig e getGitVersion :: Test-getGitVersion = do- v <- Git.Version.installed- let oldestallowed = Git.Version.normalize "1.7.1.0"- when (v < oldestallowed) $- error $ "installed git version " ++ show v ++ " is too old! (Need " ++ show oldestallowed ++ " or newer)"- return $ Config "gitversion" $ StringConfig $ show v+getGitVersion = go =<< getEnv "FORCE_GIT_VERSION"+ where+ go (Just s) = return $ Config "gitversion" $ StringConfig s+ go Nothing = do+ v <- Git.Version.installed+ let oldestallowed = Git.Version.normalize "1.7.1.0"+ when (v < oldestallowed) $+ error $ "installed git version " ++ show v ++ " is too old! (Need " ++ show oldestallowed ++ " or newer)"+ return $ Config "gitversion" $ StringConfig $ show v checkWgetQuietProgress :: Test checkWgetQuietProgress = Config "wgetquietprogress" . BoolConfig
Build/NullSoftInstaller.hs view
@@ -85,9 +85,15 @@ gitInstallDir :: Exp FilePath gitInstallDir = fromString "$PROGRAMFILES\\Git" +-- This intentionall has a different name than git-annex or +-- git-annex-webapp, since it is itself treated as an executable file. +-- Also, on XP, the filename is displayed, not the description. startMenuItem :: Exp FilePath -startMenuItem = "$SMPROGRAMS/git-annex.lnk" +startMenuItem = "$SMPROGRAMS/Git Annex (Webapp).lnk" +oldStartMenuItem :: Exp FilePath +oldStartMenuItem = "$SMPROGRAMS/git-annex.lnk" + autoStartItem :: Exp FilePath autoStartItem = "$SMSTARTUP/git-annex-autostart.lnk" @@ -125,8 +131,9 @@ , StartOptions "SW_SHOWNORMAL" , IconFile "$INSTDIR/cmd/git-annex.exe" , IconIndex 2 - , Description "git-annex webapp" + , Description "Git Annex (Webapp)" ] + delete [RebootOK] $ oldStartMenuItem createShortcut autoStartItem [ Target "wscript.exe" , Parameters "\"$INSTDIR/git-annex-autostart.vbs\"" @@ -184,22 +191,30 @@ , "cygintl-8.dll" , "cygwind-0.dll" , "cyggssapi-3.dll" + , "cyggssapi_krb5-2.dll" , "cygkrb5-26.dll" , "cygz.dll" , "cygidn-11.dll" - , "libcurl-4.dll" - , "cyggnutls-26.dll" + , "cyggnutls-28.dll" , "libcrypto.dll" , "libssl.dll" , "cyggcrypt-11.dll" , "cyggpg-error-0.dll" , "cygp11-kit-0.dll" - , "cygtasn1-3.dll" , "cygffi-6.dll" , "cygbz2-1.dll" , "cygreadline7.dll" , "cygncursesw-10.dll" , "cygusb0.dll" + , "cyghogweed-2.dll" + , "cygk5crypto-3.dll" + , "cygkrb5support-0.dll" + , "cyggmp-10.dll" + , "cygkrb5-3.dll" + , "cygnettle-4.dll" + , "cygtasn1-6.dll" + , "cygpcre-1.dll" + , "cyguuid-1.dll" ] -- msysgit opens Program Files/Git/doc/git/html/git-annex.html
Build/Version.hs view
@@ -67,3 +67,6 @@ | otherwise = s where fullfield = field ++ ": "++main :: IO ()+main = putStr =<< getVersion
Build/mdwn2man view
@@ -20,6 +20,7 @@ s/^[ \n]+//; s/^\t/ /; s/-/\\-/g;+ s/git\\-annex/git-annex/g; s/^Warning:.*//g; s/^$/.PP\n/; s/^\*\s+(.*)/.IP "$1"/;
CHANGELOG view
@@ -1,3 +1,39 @@+git-annex (5.20150420) unstable; urgency=medium++ * Fix activity log parsing, which caused the log to not retain+ activity from other uuids.+ * Union merge could fall over if there was a file in the repository+ with the same name as a git ref. Now fixed.+ * info dir: Added information about repositories that+ contain files in the specified directory.+ * info: Added --bytes option.+ * bittorrent: Fix handling of magnet links.+ * When a key's size is unknown, still check the annex.diskreserve,+ and avoid getting content if the disk is too full.+ * Fix fsck --from a git remote in a local directory, and from+ a directory special remote.+ This was a reversion caused by the relative path changes in 5.20150113.+ * fsck --from remote: When bad content is found in the remote,+ and the local repo does not have a copy of the content, preserve+ the bad content in .git/annex/bad/ to avoid further data loss.+ * fsck --from remote: Avoid downloading a key if it would go over+ the annex.diskreserve limit.+ * required: New command, like wanted, but for required content.+ * Removed dependency on haskell SHA library,+ instead using cryptohash >= 0.11.0.+ * Make repo init more robust.+ * New debian/rules build-standalone target, which generates a+ git-annex-standalone.deb that should work on many old Debian etc+ systems. Thanks, Yaroslav Halchenko.+ * Windows: Renamed start menu file to avoid loop in some versions+ of Windows where the menu file is treated as a git-annex program.+ * Windows: Fixed support of remotes on other drives.+ (A reversion introduced in version 5.20150113.)+ * Windows: Bundled versions of rsync, wget, ssh, and gpg from+ cygwin all updated. Thanks, Yury V. Zaytsev.++ -- Joey Hess <id@joeyh.name> Mon, 20 Apr 2015 14:44:04 -0400+ git-annex (5.20150409) unstable; urgency=medium * This fixes a bug in the assistant introduced by the literal pathspec
CmdLine/GitAnnex.hs view
@@ -74,6 +74,7 @@ import qualified Command.Group import qualified Command.Wanted import qualified Command.GroupWanted+import qualified Command.Required import qualified Command.Schedule import qualified Command.Ungroup import qualified Command.Vicfg@@ -149,6 +150,7 @@ , Command.Group.cmd , Command.Wanted.cmd , Command.GroupWanted.cmd+ , Command.Required.cmd , Command.Schedule.cmd , Command.Ungroup.cmd , Command.Vicfg.cmd
Command/ContentLocation.hs view
@@ -10,7 +10,6 @@ import Common.Annex import Command import Annex.Content-import Types.Key cmd :: [Command] cmd = [noCommit $ noMessages $
Command/Fsck.hs view
@@ -31,6 +31,7 @@ import Types.Key import Types.CleanupActions import Utility.HumanTime+import Utility.CopyFile import Git.FilePath import Utility.PID import qualified Database.Fsck as FsckDb@@ -134,14 +135,16 @@ let cleanup = liftIO $ catchIO (removeFile tmp) (const noop) cleanup cleanup `after` a tmp- getfile tmp =- ifM (Remote.retrieveKeyFileCheap remote key tmp)+ getfile tmp = ifM (checkDiskSpace (Just tmp) key 0)+ ( ifM (Remote.retrieveKeyFileCheap remote key tmp) ( return True , ifM (Annex.getState Annex.fast) ( return False , Remote.retrieveKeyFile remote key Nothing tmp dummymeter ) )+ , return False+ ) dummymeter _ = noop startKey :: Incremental -> Key -> NumCopies -> CommandStart@@ -273,7 +276,7 @@ checkKeySizeRemote :: Key -> Remote -> Maybe FilePath -> Annex Bool checkKeySizeRemote _ _ Nothing = return True checkKeySizeRemote key remote (Just file) =- checkKeySizeOr (badContentRemote remote) key file+ checkKeySizeOr (badContentRemote remote file) key file checkKeySizeOr :: (Key -> Annex String) -> Key -> FilePath -> Annex Bool checkKeySizeOr bad key file = case Types.Key.keySize key of@@ -318,7 +321,7 @@ checkBackendRemote :: Backend -> Key -> Remote -> Maybe FilePath -> Annex Bool checkBackendRemote backend key remote = maybe (return True) go where- go = checkBackendOr (badContentRemote remote) backend key+ go file = checkBackendOr (badContentRemote remote file) backend key file checkBackendOr :: (Key -> Annex String) -> Backend -> Key -> FilePath -> Annex Bool checkBackendOr bad backend key file =@@ -380,13 +383,36 @@ logStatus key InfoMissing return "left in place for you to examine" -badContentRemote :: Remote -> Key -> Annex String-badContentRemote remote key = do- ok <- Remote.removeKey remote key- when ok $+{- Bad content is dropped from the remote. We have downloaded a copy+ - from the remote to a temp file already (in some cases, it's just a+ - symlink to a file in the remote). To avoid any further data loss,+ - that temp file is moved to the bad content directory unless + - the local annex has a copy of the content. -}+badContentRemote :: Remote -> FilePath -> Key -> Annex String+badContentRemote remote localcopy key = do+ bad <- fromRepo gitAnnexBadDir+ let destbad = bad </> key2file key+ movedbad <- ifM (inAnnex key <||> liftIO (doesFileExist destbad))+ ( return False+ , do+ createAnnexDirectory (parentDir destbad)+ liftIO $ catchDefaultIO False $+ ifM (isSymbolicLink <$> getSymbolicLinkStatus localcopy)+ ( copyFileExternal CopyTimeStamps localcopy destbad+ , do+ moveFile localcopy destbad+ return True+ )+ )++ dropped <- Remote.removeKey remote key+ when dropped $ Remote.logStatus remote key InfoMissing- return $ (if ok then "dropped from " else "failed to drop from ")- ++ Remote.name remote+ return $ case (movedbad, dropped) of+ (True, True) -> "moved from " ++ Remote.name remote +++ " to " ++ destbad+ (False, True) -> "dropped from " ++ Remote.name remote+ (_, False) -> "failed to drop from" ++ Remote.name remote runFsck :: Incremental -> FilePath -> Key -> Annex Bool -> CommandStart runFsck inc file key a = ifM (needFsck inc key)
Command/GroupWanted.hs view
@@ -8,13 +8,9 @@ module Command.GroupWanted where import Common.Annex-import qualified Annex import Command import Logs.PreferredContent-import Types.Messages-import Types.Group--import qualified Data.Map as M+import Command.Wanted (performGet, performSet) cmd :: [Command] cmd = [command "groupwanted" (paramPair paramGroup (paramOptional paramExpression)) seek@@ -24,22 +20,8 @@ seek = withWords start start :: [String] -> CommandStart-start (g:[]) = next $ performGet g+start (g:[]) = next $ performGet groupPreferredContentMapRaw g start (g:expr:[]) = do showStart "groupwanted" g- next $ performSet g expr+ next $ performSet groupPreferredContentSet expr g start _ = error "Specify a group."--performGet :: Group -> CommandPerform-performGet g = do- Annex.setOutput QuietOutput- m <- groupPreferredContentMapRaw- liftIO $ putStrLn $ fromMaybe "" $ M.lookup g m- next $ return True--performSet :: Group -> String -> CommandPerform-performSet g expr = case checkPreferredContentExpression expr of- Just e -> error $ "Parse error: " ++ e- Nothing -> do- groupPreferredContentSet g expr- next $ return True
Command/Info.hs view
@@ -10,7 +10,7 @@ module Command.Info where import "mtl" Control.Monad.State.Strict-import qualified Data.Map as M+import qualified Data.Map.Strict as M import Text.JSON import Data.Tuple import Data.Ord@@ -66,7 +66,7 @@ data StatInfo = StatInfo { presentData :: Maybe KeyData , referencedData :: Maybe KeyData- , remoteData :: M.Map UUID KeyData+ , repoData :: M.Map UUID KeyData , numCopiesStats :: Maybe NumCopiesStats } @@ -77,7 +77,7 @@ type StatState = StateT StatInfo Annex cmd :: [Command]-cmd = [noCommit $ dontCheck repoExists $ withOptions (jsonOption : annexedMatchingOptions) $+cmd = [noCommit $ dontCheck repoExists $ withOptions (jsonOption : bytesOption : annexedMatchingOptions) $ command "info" (paramOptional $ paramRepeating paramItem) seek SectionQuery "shows information about the specified item or the repository as a whole"] @@ -156,9 +156,9 @@ global_fast_stats :: [Stat] global_fast_stats = [ repository_mode- , remote_list Trusted- , remote_list SemiTrusted- , remote_list UnTrusted+ , repo_list Trusted+ , repo_list SemiTrusted+ , repo_list UnTrusted , transfer_list , disk_size ]@@ -184,6 +184,7 @@ dir_slow_stats :: [FilePath -> Stat] dir_slow_stats = [ const numcopies_stats+ , const reposizes_stats ] file_stats :: FilePath -> Key -> [Stat]@@ -245,8 +246,8 @@ ) ) -remote_list :: TrustLevel -> Stat-remote_list level = stat n $ nojson $ lift $ do+repo_list :: TrustLevel -> Stat+repo_list level = stat n $ nojson $ lift $ do us <- filter (/= NoUUID) . M.keys <$> (M.union <$> uuidMap <*> remoteMap Remote.name) rs <- fst <$> trustPartition level us@@ -290,7 +291,7 @@ local_annex_size :: Stat local_annex_size = simpleStat "local annex size" $- showSizeKeys <$> cachedPresentData+ lift . showSizeKeys =<< cachedPresentData remote_annex_keys :: UUID -> Stat remote_annex_keys u = stat "remote annex keys" $ json show $@@ -298,7 +299,7 @@ remote_annex_size :: UUID -> Stat remote_annex_size u = simpleStat "remote annex size" $- showSizeKeys <$> cachedRemoteData u+ lift . showSizeKeys =<< cachedRemoteData u known_annex_files :: Stat known_annex_files = stat "annexed files in working tree" $ json show $@@ -306,7 +307,7 @@ known_annex_size :: Stat known_annex_size = simpleStat "size of annexed files in working tree" $- showSizeKeys <$> cachedReferencedData+ lift . showSizeKeys =<< cachedReferencedData tmp_size :: Stat tmp_size = staleSize "temporary object directory size" gitAnnexTmpObjectDir@@ -315,7 +316,7 @@ bad_data_size = staleSize "bad keys size" gitAnnexBadDir key_size :: Key -> Stat-key_size k = simpleStat "size" $ pure $ showSizeKeys $ foldKeys [k]+key_size k = simpleStat "size" $ lift $ showSizeKeys $ foldKeys [k] key_name :: Key -> Stat key_name k = simpleStat "key" $ pure $ key2file k@@ -331,7 +332,8 @@ -- Two bloom filters are used at the same time, so double the size -- of one.- size <- roughSize memoryUnits False . (* 2) . fromIntegral . fst <$>+ sizer <- lift mkSizer+ size <- sizer memoryUnits False . (* 2) . fromIntegral . fst <$> lift Command.Unused.bloomBitsHashes return $ size ++ note@@ -358,13 +360,14 @@ calcfree <$> (annexDiskReserve <$> Annex.getGitConfig) <*> inRepo (getDiskFree . gitAnnexDir)+ <*> mkSizer where- calcfree reserve (Just have) = unwords- [ roughSize storageUnits False $ nonneg $ have - reserve- , "(+" ++ roughSize storageUnits False reserve+ calcfree reserve (Just have) sizer = unwords+ [ sizer storageUnits False $ nonneg $ have - reserve+ , "(+" ++ sizer storageUnits False reserve , "reserved)" ] - calcfree _ _ = "unknown"+ calcfree _ _ _ = "unknown" nonneg x | x >= 0 = x@@ -389,6 +392,26 @@ . map (\(variance, count) -> show variance ++ ": " ++ show count) . sortBy (flip (comparing snd)) . M.toList +reposizes_stats :: Stat+reposizes_stats = stat "repositories containing these files" $ nojson $+ calc+ <$> lift uuidDescriptions+ <*> lift mkSizer+ <*> cachedRepoData+ where+ calc descm sizer = multiLine+ . format+ . map (\(u, d) -> line descm sizer u d)+ . sortBy (flip (comparing (sizeKeys . snd))) . M.toList+ line descm sizer u d = (sz, fromUUID u ++ " -- " ++ desc)+ where+ sz = sizer storageUnits True (sizeKeys d)+ desc = fromMaybe "" (M.lookup u descm)+ format l = map (\(c1, c2) -> lpad maxc1 c1 ++ ": " ++ c2 ) l+ where+ maxc1 = maximum (map (length . fst) l)+ lpad n s = (replicate (n - length s) ' ') ++ s+ cachedPresentData :: StatState KeyData cachedPresentData = do s <- get@@ -402,11 +425,11 @@ cachedRemoteData :: UUID -> StatState KeyData cachedRemoteData u = do s <- get- case M.lookup u (remoteData s) of+ case M.lookup u (repoData s) of Just v -> return v Nothing -> do v <- foldKeys <$> lift (loggedKeysFor u)- put s { remoteData = M.insert u v (remoteData s) }+ put s { repoData = M.insert u v (repoData s) } return v cachedReferencedData :: StatState KeyData@@ -424,17 +447,21 @@ cachedNumCopiesStats :: StatState (Maybe NumCopiesStats) cachedNumCopiesStats = numCopiesStats <$> get +-- currently only available for directory info+cachedRepoData :: StatState (M.Map UUID KeyData)+cachedRepoData = repoData <$> get+ getDirStatInfo :: FilePath -> Annex StatInfo getDirStatInfo dir = do fast <- Annex.getState Annex.fast matcher <- Limit.getMatcher- (presentdata, referenceddata, numcopiesstats) <-+ (presentdata, referenceddata, numcopiesstats, repodata) <- Command.Unused.withKeysFilesReferencedIn dir initial (update matcher fast)- return $ StatInfo (Just presentdata) (Just referenceddata) M.empty (Just numcopiesstats)+ return $ StatInfo (Just presentdata) (Just referenceddata) repodata (Just numcopiesstats) where- initial = (emptyKeyData, emptyKeyData, emptyNumCopiesStats)- update matcher fast key file vs@(presentdata, referenceddata, numcopiesstats) =+ initial = (emptyKeyData, emptyKeyData, emptyNumCopiesStats, M.empty)+ update matcher fast key file vs@(presentdata, referenceddata, numcopiesstats, repodata) = ifM (matcher $ MatchingFile $ FileInfo file file) ( do !presentdata' <- ifM (inAnnex key)@@ -442,10 +469,13 @@ , return presentdata ) let !referenceddata' = addKey key referenceddata- !numcopiesstats' <- if fast- then return numcopiesstats- else updateNumCopiesStats key file numcopiesstats- return $! (presentdata', referenceddata', numcopiesstats')+ (!numcopiesstats', !repodata') <- if fast+ then return (numcopiesstats, repodata)+ else do+ locs <- Remote.keyLocations key+ nc <- updateNumCopiesStats file numcopiesstats locs+ return (nc, updateRepoData key locs repodata)+ return $! (presentdata', referenceddata', numcopiesstats', repodata') , return vs ) @@ -465,22 +495,32 @@ {- All calculations strict to avoid thunks when repeatedly - applied to many keys. -} !count' = count + 1- !backends' = M.insertWith' (+) (keyBackendName key) 1 backends+ !backends' = M.insertWith (+) (keyBackendName key) 1 backends !size' = maybe size (+ size) ks !unknownsize' = maybe (unknownsize + 1) (const unknownsize) ks ks = keySize key -updateNumCopiesStats :: Key -> FilePath -> NumCopiesStats -> Annex NumCopiesStats-updateNumCopiesStats key file (NumCopiesStats m) = do- !variance <- Variance <$> numCopiesCheck file key (-)- let !m' = M.insertWith' (+) variance 1 m+updateRepoData :: Key -> [UUID] -> M.Map UUID KeyData -> M.Map UUID KeyData+updateRepoData key locs m = m'+ where+ !m' = M.unionWith (\_old new -> new) m $+ M.fromList $ zip locs (map update locs)+ update loc = addKey key (fromMaybe emptyKeyData $ M.lookup loc m)++updateNumCopiesStats :: FilePath -> NumCopiesStats -> [UUID] -> Annex NumCopiesStats+updateNumCopiesStats file (NumCopiesStats m) locs = do+ have <- trustExclude UnTrusted locs+ !variance <- Variance <$> numCopiesCheck' file (-) have+ let !m' = M.insertWith (+) variance 1 m let !ret = NumCopiesStats m' return ret -showSizeKeys :: KeyData -> String-showSizeKeys d = total ++ missingnote+showSizeKeys :: KeyData -> Annex String+showSizeKeys d = do+ sizer <- mkSizer+ return $ total sizer ++ missingnote where- total = roughSize storageUnits False $ sizeKeys d+ total sizer = sizer storageUnits False $ sizeKeys d missingnote | unknownSizeKeys d == 0 = "" | otherwise = aside $@@ -494,8 +534,9 @@ go keys = onsize =<< sum <$> keysizes keys onsize 0 = nostat onsize size = stat label $- json (++ aside "clean up with git-annex unused") $- return $ roughSize storageUnits False size+ json (++ aside "clean up with git-annex unused") $ do+ sizer <- lift mkSizer+ return $ sizer storageUnits False size keysizes keys = do dir <- lift $ fromRepo dirspec liftIO $ forM keys $ \k -> catchDefaultIO 0 $@@ -506,3 +547,12 @@ multiLine :: [String] -> String multiLine = concatMap (\l -> "\n\t" ++ l)++mkSizer :: Annex ([Unit] -> Bool -> ByteSize -> String)+mkSizer = ifM (getOptionFlag bytesOption)+ ( return (const $ const show)+ , return roughSize+ )++bytesOption :: Option+bytesOption = flagOption [] "bytes" "display file sizes in bytes"
+ Command/Required.hs view
@@ -0,0 +1,17 @@+{- git-annex command+ -+ - Copyright 2015 Joey Hess <id@joeyh.name>+ -+ - Licensed under the GNU GPL version 3 or higher.+ -}++module Command.Required where++import Command+import Logs.PreferredContent+import qualified Command.Wanted++cmd :: [Command]+cmd = Command.Wanted.cmd' "required" "get or set required content expression"+ requiredContentMapRaw+ requiredContentSet
Command/Wanted.hs view
@@ -1,6 +1,6 @@ {- git-annex command -- - Copyright 2013 Joey Hess <id@joeyh.name>+ - Copyright 2013-2015 Joey Hess <id@joeyh.name> - - Licensed under the GNU GPL version 3 or higher. -}@@ -13,39 +13,47 @@ import qualified Remote import Logs.PreferredContent import Types.Messages+import Types.StandardGroups import qualified Data.Map as M cmd :: [Command]-cmd = [command "wanted" (paramPair paramRemote (paramOptional paramExpression)) seek- SectionSetup "get or set preferred content expression"]--seek :: CommandSeek-seek = withWords start+cmd = cmd' "wanted" "get or set preferred content expression" + preferredContentMapRaw+ preferredContentSet -start :: [String] -> CommandStart-start = parse+cmd'+ :: String+ -> String+ -> Annex (M.Map UUID PreferredContentExpression)+ -> (UUID -> PreferredContentExpression -> Annex ())+ -> [Command]+cmd' name desc getter setter = [command name pdesc seek SectionSetup desc] where- parse (name:[]) = go name performGet- parse (name:expr:[]) = go name $ \uuid -> do- showStart "wanted" name- performSet expr uuid- parse _ = error "Specify a repository."+ pdesc = paramPair paramRemote (paramOptional paramExpression) - go name a = do- u <- Remote.nameToUUID name+ seek = withWords start++ start (rname:[]) = go rname (performGet getter)+ start (rname:expr:[]) = go rname $ \uuid -> do+ showStart name rname+ performSet setter expr uuid+ start _ = error "Specify a repository."+ + go rname a = do+ u <- Remote.nameToUUID rname next $ a u -performGet :: UUID -> CommandPerform-performGet uuid = do+performGet :: Ord a => Annex (M.Map a PreferredContentExpression) -> a -> CommandPerform+performGet getter a = do Annex.setOutput QuietOutput- m <- preferredContentMapRaw- liftIO $ putStrLn $ fromMaybe "" $ M.lookup uuid m+ m <- getter+ liftIO $ putStrLn $ fromMaybe "" $ M.lookup a m next $ return True -performSet :: String -> UUID -> CommandPerform-performSet expr uuid = case checkPreferredContentExpression expr of+performSet :: Ord a => (a -> PreferredContentExpression -> Annex ()) -> String -> a -> CommandPerform+performSet setter expr a = case checkPreferredContentExpression expr of Just e -> error $ "Parse error: " ++ e Nothing -> do- preferredContentSet uuid expr+ setter a expr next $ return True
Command/WebApp.hs view
@@ -143,10 +143,10 @@ firstRun listenhost = do checkEnvironmentIO {- Without a repository, we cannot have an Annex monad, so cannot- - get a ThreadState. Using undefined is only safe because the+ - get a ThreadState. This is only safe because the - webapp checks its noAnnex field before accessing the - threadstate. -}- let st = undefined+ let st = error "annex state not available" {- Get a DaemonStatus without running in the Annex monad. -} dstatus <- atomically . newTMVar =<< newDaemonStatus d <- newAssistantData st dstatus
Config/NumCopies.hs view
@@ -11,9 +11,10 @@ getFileNumCopies, getGlobalFileNumCopies, getNumCopies,- numCopiesCheck, deprecatedNumCopies,- defaultNumCopies+ defaultNumCopies,+ numCopiesCheck,+ numCopiesCheck', ) where import Common.Annex@@ -75,6 +76,10 @@ - belived to exist, and the configured value. -} numCopiesCheck :: FilePath -> Key -> (Int -> Int -> v) -> Annex v numCopiesCheck file key vs = do- NumCopies needed <- getFileNumCopies file have <- trustExclude UnTrusted =<< Remote.keyLocations key+ numCopiesCheck' file vs have++numCopiesCheck' :: FilePath -> (Int -> Int -> v) -> [UUID] -> Annex v+numCopiesCheck' file vs have = do+ NumCopies needed <- getFileNumCopies file return $ length have `vs` needed
Creds.hs view
@@ -179,13 +179,13 @@ Just _ -> do let (uenv, penv) = credPairEnvironment storage ret $ "from environment variables (" ++ unwords [uenv, penv] ++ ")"- Nothing -> case (\ck -> M.lookup ck c) =<< credPairRemoteKey storage of+ Nothing -> case (`M.lookup` c) =<< credPairRemoteKey storage of Nothing -> ifM (existsCacheCredPair storage) ( ret "stored locally" , ret "not available" ) Just _ -> case extractCipher c of- Just (EncryptedCipher _ _ _) -> ret "embedded in git repository (gpg encrypted)"+ Just (EncryptedCipher {}) -> ret "embedded in git repository (gpg encrypted)" _ -> ret "embedded in git repository (not encrypted)" where ret s = return $ ("creds", s) : info
Crypto.hs view
@@ -34,7 +34,7 @@ ) where import qualified Data.ByteString.Lazy as L-import Data.ByteString.Lazy.UTF8 (fromString)+import Data.ByteString.UTF8 (fromString) import Control.Applicative import qualified Data.Map as M import Control.Monad.IO.Class@@ -93,7 +93,7 @@ {- Updates an existing Cipher, re-encrypting it to add or remove keyids, - depending on whether the first component is True or False. -} updateEncryptedCipher :: [(Bool, String)] -> StorableCipher -> IO StorableCipher-updateEncryptedCipher _ SharedCipher{} = undefined+updateEncryptedCipher _ SharedCipher{} = error "Cannot update shared cipher" updateEncryptedCipher [] encipher = return encipher updateEncryptedCipher newkeys encipher@(EncryptedCipher _ variant (KeyIds ks)) = do dropKeys <- listKeyIds [ k | (False, k) <- newkeys ]
Database/Fsck.hs view
@@ -55,7 +55,7 @@ - - This may fail, if other fsck processes are currently running using the - database. Removing the database in that situation would lead to crashes- - or undefined behavior.+ - or unknown behavior. -} newPass :: UUID -> Annex Bool newPass u = isJust <$> tryExclusiveLock (gitAnnexFsckDbLock u) go
Git.hs view
@@ -60,7 +60,7 @@ repoLocation Repo { location = Local { worktree = Just dir } } = dir repoLocation Repo { location = Local { gitdir = dir } } = dir repoLocation Repo { location = LocalUnknown dir } = dir-repoLocation Repo { location = Unknown } = undefined+repoLocation Repo { location = Unknown } = error "unknown repoLocation" {- Path to a repository. For non-bare, this is the worktree, for bare, - it's the gitdir, and for URL repositories, is the path on the remote@@ -70,12 +70,12 @@ repoPath Repo { location = Local { worktree = Just d } } = d repoPath Repo { location = Local { gitdir = d } } = d repoPath Repo { location = LocalUnknown dir } = dir-repoPath Repo { location = Unknown } = undefined+repoPath Repo { location = Unknown } = error "unknown repoPath" {- Path to a local repository's .git directory. -} localGitDir :: Repo -> FilePath localGitDir Repo { location = Local { gitdir = d } } = d-localGitDir _ = undefined+localGitDir _ = error "unknown localGitDir" {- Some code needs to vary between URL and normal repos, - or bare and non-bare, these functions help with that. -}
Git/CatFile.hs view
@@ -110,4 +110,4 @@ parsemodefile b = let (modestr, file) = separate (== ' ') (decodeBS b) in (file, readmode modestr)- readmode = fst . fromMaybe (0, undefined) . headMaybe . readOct+ readmode = fromMaybe 0 . fmap fst . headMaybe . readOct
Git/DiffTree.hs view
@@ -36,12 +36,12 @@ {- Diffs two tree Refs. -} diffTree :: Ref -> Ref -> Repo -> IO ([DiffTreeItem], IO Bool) diffTree src dst = getdiff (Param "diff-tree")- [Param (fromRef src), Param (fromRef dst)]+ [Param (fromRef src), Param (fromRef dst), Param "--"] {- Diffs two tree Refs, recursing into sub-trees -} diffTreeRecursive :: Ref -> Ref -> Repo -> IO ([DiffTreeItem], IO Bool) diffTreeRecursive src dst = getdiff (Param "diff-tree")- [Param "-r", Param (fromRef src), Param (fromRef dst)]+ [Param "-r", Param (fromRef src), Param (fromRef dst), Param "--"] {- Diffs between a tree and the index. Does nothing if there is not yet a - commit in the repository. -}
Git/LsFiles.hs view
@@ -181,12 +181,13 @@ | otherwise = case words metadata of (rawblobtype:rawsha:rawstage:_) -> do stage <- readish rawstage :: Maybe Int- unless (stage == 2 || stage == 3) $- fail undefined -- skip stage 1- blobtype <- readBlobType rawblobtype- sha <- extractSha rawsha- return $ InternalUnmerged (stage == 2) file- (Just blobtype) (Just sha)+ if stage /= 2 && stage /= 3+ then Nothing+ else do+ blobtype <- readBlobType rawblobtype+ sha <- extractSha rawsha+ return $ InternalUnmerged (stage == 2) file+ (Just blobtype) (Just sha) _ -> Nothing where (metadata, file) = separate (== '\t') s
Git/Remote/Remove.hs view
@@ -1,4 +1,4 @@-{- git remote stuff+{- git remote removal - - Copyright 2012 Joey Hess <id@joeyh.name> -
Git/UnionMerge.hs view
@@ -51,12 +51,12 @@ {- For merging two trees. -} mergeTrees :: Ref -> Ref -> CatFileHandle -> Repo -> Streamer-mergeTrees (Ref x) (Ref y) h = doMerge h $ "diff-tree":diffOpts ++ [x, y]+mergeTrees (Ref x) (Ref y) h = doMerge h $ "diff-tree":diffOpts ++ [x, y, "--"] {- For merging a single tree into the index. -} mergeTreeIndex :: Ref -> CatFileHandle -> Repo -> Streamer-mergeTreeIndex (Ref x) h = doMerge h $- "diff-index" : diffOpts ++ ["--cached", x]+mergeTreeIndex (Ref r) h = doMerge h $+ "diff-index" : diffOpts ++ ["--cached", r, "--"] diffOpts :: [String] diffOpts = ["--raw", "-z", "-r", "--no-renames", "-l0"]
Locations.hs view
@@ -165,7 +165,7 @@ {- This special case is for git submodules on filesystems not - supporting symlinks; generate link target that will - work portably. -}- | coreSymlinks config == False && needsSubmoduleFixup r =+ | not (coreSymlinks config) && needsSubmoduleFixup r = fromMaybe whoops $ absNormPathUnix currdir $ Git.repoPath r </> ".git" | otherwise = Git.localGitDir r
Logs/Activity.hs view
@@ -26,7 +26,7 @@ recordActivity act uuid = do ts <- liftIO getPOSIXTime Annex.Branch.change activityLog $- showLog id . changeLog ts uuid (show act) . parseLog readish+ showLog show . changeLog ts uuid act . parseLog readish lastActivities :: Maybe Activity -> Annex (Log Activity) lastActivities wantact = parseLog onlywanted <$> Annex.Branch.get activityLog
Remote.hs view
@@ -83,7 +83,7 @@ Nothing -> Nothing Just k -> Just (k, mkv r) -{- Map of UUIDs of remotes and their descriptions.+{- Map of UUIDs of repositories and their descriptions. - The names of Remotes are added to suppliment any description that has - been set for a repository. -} uuidDescriptions :: Annex (M.Map UUID String)@@ -130,8 +130,7 @@ byNameOrGroup :: RemoteName -> Annex [Remote] byNameOrGroup n = go =<< getConfigMaybe (ConfigKey ("remotes." ++ n)) where- go (Just l) = concatMap maybeToList <$>- mapM (byName . Just) (split " " l)+ go (Just l) = catMaybes <$> mapM (byName . Just) (split " " l) go Nothing = maybeToList <$> byName (Just n) {- Only matches remote name, not UUID -}@@ -343,4 +342,4 @@ let web = Prelude.head $ filter (\r -> uuid r == webUUID) rs fromMaybe web <$> firstM checkclaim rs where- checkclaim = maybe (pure False) (flip id url) . claimUrl+ checkclaim = maybe (pure False) (`id` url) . claimUrl
Remote/BitTorrent.hs view
@@ -212,7 +212,7 @@ downloadMagnetLink :: URLString -> FilePath -> FilePath -> Annex Bool downloadMagnetLink u metadir dest = ifM download ( liftIO $ do- ts <- filter (".torrent" `isPrefixOf`)+ ts <- filter (".torrent" `isSuffixOf`) <$> dirContents metadir case ts of (t:[]) -> do
Remote/Directory.hs view
@@ -162,9 +162,13 @@ retrieveCheap _ (LegacyChunks _) _ _ = return False #ifndef mingw32_HOST_OS retrieveCheap d NoChunks k f = liftIO $ catchBoolIO $ do- file <- getLocation d k- createSymbolicLink file f- return True+ file <- absPath =<< getLocation d k+ ifM (doesFileExist file)+ ( do+ createSymbolicLink file f+ return True+ , return False+ ) #else retrieveCheap _ _ _ _ = return False #endif
Remote/GCrypt.hs view
@@ -397,7 +397,7 @@ | Git.repoIsLocal r || Git.repoIsLocalUnknown r = extract <$> liftIO (catchMaybeIO $ Git.Config.read r) | not fast = extract . liftM fst <$> getM (eitherToMaybe <$>)- [ Ssh.onRemote r (Git.Config.fromPipe r, return (Left undefined)) "configlist" [] []+ [ Ssh.onRemote r (Git.Config.fromPipe r, return (Left $ error "configlist failed")) "configlist" [] [] , getConfigViaRsync r gc ] | otherwise = return (Nothing, r)
Remote/Git.hs view
@@ -199,7 +199,7 @@ tryGitConfigRead r | haveconfig r = return r -- already read | Git.repoIsSsh r = store $ do- v <- Ssh.onRemote r (pipedconfig, return (Left undefined)) "configlist" [] []+ v <- Ssh.onRemote r (pipedconfig, return (Left $ error "configlist failed")) "configlist" [] [] case v of Right r' | haveconfig r' -> return r'@@ -228,9 +228,10 @@ uo <- Url.getUrlOptions v <- liftIO $ withTmpFile "git-annex.tmp" $ \tmpfile h -> do hClose h- ifM (Url.downloadQuiet (Git.repoLocation r ++ "/config") tmpfile uo)+ let url = Git.repoLocation r ++ "/config"+ ifM (Url.downloadQuiet url tmpfile uo) ( pipedconfig "git" [Param "config", Param "--null", Param "--list", Param "--file", File tmpfile]- , return $ Left undefined+ , return $ Left $ error $ "unable to load config from " ++ url ) case v of Left _ -> do@@ -445,10 +446,17 @@ copyFromRemoteCheap :: Remote -> Key -> FilePath -> Annex Bool #ifndef mingw32_HOST_OS copyFromRemoteCheap r key file- | not $ Git.repoIsUrl (repo r) = guardUsable (repo r) (return False) $ do- loc <- liftIO $ gitAnnexLocation key (repo r) $+ | not $ Git.repoIsUrl (repo r) = guardUsable (repo r) (return False) $ liftIO $ do+ loc <- gitAnnexLocation key (repo r) $ fromJust $ remoteGitConfig $ gitconfig r- liftIO $ catchBoolIO $ createSymbolicLink loc file >> return True+ ifM (doesFileExist loc)+ ( do+ absloc <- absPath loc+ catchBoolIO $ do+ createSymbolicLink absloc file+ return True+ , return False+ ) | Git.repoIsSsh (repo r) = ifM (Annex.Content.preseedTmp key file) ( copyFromRemote' r key Nothing file
Remote/Helper/Chunked.hs view
@@ -72,7 +72,7 @@ nextChunkKeyStream :: ChunkKeyStream -> (Key, ChunkKeyStream) nextChunkKeyStream (ChunkKeyStream (k:l)) = (k, ChunkKeyStream l)-nextChunkKeyStream (ChunkKeyStream []) = undefined -- stream is infinite!+nextChunkKeyStream (ChunkKeyStream []) = error "expected infinite ChunkKeyStream" takeChunkKeyStream :: ChunkCount -> ChunkKeyStream -> [Key] takeChunkKeyStream n (ChunkKeyStream l) = genericTake n l
Test.hs view
@@ -156,6 +156,7 @@ , testProperty "prop_read_show_TrustLevel" Types.TrustLevel.prop_read_show_TrustLevel , testProperty "prop_parse_show_TrustLog" Logs.Trust.prop_parse_show_TrustLog , testProperty "prop_hashes_stable" Utility.Hash.prop_hashes_stable+ , testProperty "prop_mac_stable" Utility.Hash.prop_mac_stable , testProperty "prop_schedule_roundtrips" Utility.Scheduled.prop_schedule_roundtrips , testProperty "prop_past_sane" Utility.Scheduled.prop_past_sane , testProperty "prop_duration_roundtrips" Utility.HumanTime.prop_duration_roundtrips@@ -199,6 +200,7 @@ , testCase "fsck (bare)" test_fsck_bare , testCase "fsck (local untrusted)" test_fsck_localuntrusted , testCase "fsck (remote untrusted)" test_fsck_remoteuntrusted+ , testCase "fsck --from remote" test_fsck_fromremote , testCase "migrate" test_migrate , testCase "migrate (via gitattributes)" test_migrate_via_gitattributes , testCase "unused" test_unused@@ -612,6 +614,10 @@ git_annex "fsck" [] @? "fsck failed with numcopies=2 and 2 copies" git_annex "untrust" ["origin"] @? "untrust of origin failed" fsck_should_fail "content not replicated to enough non-untrusted repositories"++test_fsck_fromremote :: Assertion+test_fsck_fromremote = intmpclonerepo $ do+ git_annex "fsck" ["--from", "origin"] @? "fsck --from origin failed" fsck_should_fail :: String -> Assertion fsck_should_fail m = not <$> git_annex "fsck" []
Types/Crypto.hs view
@@ -1,6 +1,6 @@ {- git-annex crypto types -- - Copyright 2011-2012 Joey Hess <id@joeyh.name>+ - Copyright 2011-2015 Joey Hess <id@joeyh.name> - - Licensed under the GNU GPL version 3 or higher. -}@@ -17,9 +17,7 @@ calcMac, ) where -import qualified Data.ByteString.Lazy as L-import Data.Digest.Pure.SHA-+import Utility.Hash import Utility.Gpg (KeyIds(..)) -- XXX ideally, this would be a locked memory region@@ -31,13 +29,6 @@ data EncryptedCipherVariant = Hybrid | PubKey deriving (Ord, Eq) -{- File names are (client-side) MAC'ed on special remotes.- - The chosen MAC algorithm needs to be same for all files stored on the- - remote.- -}-data Mac = HmacSha1 | HmacSha224 | HmacSha256 | HmacSha384 | HmacSha512- deriving (Eq)- defaultMac :: Mac defaultMac = HmacSha1 @@ -57,17 +48,3 @@ readMac "HMACSHA384" = Just HmacSha384 readMac "HMACSHA512" = Just HmacSha512 readMac _ = Nothing--calcMac- :: Mac -- ^ MAC- -> L.ByteString -- ^ secret key- -> L.ByteString -- ^ message- -> String -- ^ MAC'ed message, in hexadecimal-calcMac mac = case mac of- HmacSha1 -> showDigest $* hmacSha1- HmacSha224 -> showDigest $* hmacSha224- HmacSha256 -> showDigest $* hmacSha256- HmacSha384 -> showDigest $* hmacSha384- HmacSha512 -> showDigest $* hmacSha512- where- ($*) g f x y = g $ f x y
Types/Difference.hs view
@@ -62,8 +62,8 @@ readDifferences = maybe UnknownDifferences Differences . readish getDifferences :: Git.Repo -> Differences-getDifferences r = Differences $ S.fromList $ catMaybes $- map getmaybe [minBound .. maxBound]+getDifferences r = Differences $ S.fromList $+ mapMaybe getmaybe [minBound .. maxBound] where getmaybe d = case Git.Config.isTrue =<< Git.Config.getMaybe (differenceConfigKey d) r of Just True -> Just d
Types/Distribution.hs view
@@ -25,7 +25,7 @@ data AutoUpgrade = AskUpgrade | AutoUpgrade | NoAutoUpgrade deriving (Eq) -toAutoUpgrade :: (Maybe String) -> AutoUpgrade+toAutoUpgrade :: Maybe String -> AutoUpgrade toAutoUpgrade Nothing = AskUpgrade toAutoUpgrade (Just s) | s == "ask" = AskUpgrade
Types/Remote.hs view
@@ -66,7 +66,8 @@ -- (The MeterUpdate does not need to be used if it retrieves -- directly to the file, and not to an intermediate file.) retrieveKeyFile :: Key -> AssociatedFile -> FilePath -> MeterUpdate -> a Bool,- -- retrieves a key's contents to a tmp file, if it can be done cheaply+ -- Retrieves a key's contents to a tmp file, if it can be done cheaply.+ -- It's ok to create a symlink or hardlink. retrieveKeyFileCheap :: Key -> FilePath -> a Bool, -- removes a key's contents (succeeds if the contents are not present) removeKey :: Key -> a Bool,
Utility/CopyFile.hs view
@@ -16,7 +16,12 @@ import Common import qualified Build.SysConfig as SysConfig -data CopyMetaData = CopyTimeStamps | CopyAllMetaData+data CopyMetaData + -- Copy timestamps when possible, but no other metadata, and+ -- when copying a symlink, makes a copy of its content.+ = CopyTimeStamps+ -- Copy all metadata when possible.+ | CopyAllMetaData deriving (Eq) {- The cp command is used, because I hate reinventing the wheel,
Utility/DataUnits.hs view
@@ -42,6 +42,7 @@ bandwidthUnits, oldSchoolUnits, Unit(..),+ ByteSize, roughSize, compareSizes,
Utility/DirWatcher.hs view
@@ -57,7 +57,7 @@ #if (WITH_KQUEUE || WITH_FSEVENTS) eventsCoalesce = True #else-eventsCoalesce = undefined+eventsCoalesce = error "eventsCoalesce not defined" #endif #endif @@ -78,7 +78,7 @@ #if WITH_KQUEUE closingTracked = False #else-closingTracked = undefined+closingTracked = error "closingTracked not defined" #endif #endif @@ -93,7 +93,7 @@ #if WITH_KQUEUE modifyTracked = False #else-modifyTracked = undefined+modifyTracked = error "modifyTracked not defined" #endif #endif @@ -131,7 +131,7 @@ #else type DirWatcherHandle = () watchDir :: FilePath -> Pruner -> Bool -> WatchHooks -> (IO () -> IO ()) -> IO DirWatcherHandle-watchDir = undefined+watchDir = error "watchDir not defined" #endif #endif #endif@@ -150,7 +150,7 @@ #if WITH_WIN32NOTIFY stopWatchDir = Win32Notify.killWatchManager #else-stopWatchDir = undefined+stopWatchDir = error "stopWatchDir not defined" #endif #endif #endif
Utility/Directory.hs view
@@ -111,7 +111,7 @@ -- But, mv will move into a directory if -- dest is one, which is not desired. whenM (isdir dest) rethrow- viaTmp mv dest undefined+ viaTmp mv dest "" where rethrow = throwM e mv tmp _ = do
Utility/FileMode.hs view
@@ -124,7 +124,7 @@ #endif combineModes :: [FileMode] -> FileMode-combineModes [] = undefined+combineModes [] = 0 combineModes [m] = m combineModes (m:ms) = foldl unionFileModes m ms
Utility/Hash.hs view
@@ -9,13 +9,16 @@ skein256, skein512, md5,- prop_hashes_stable+ prop_hashes_stable,+ Mac(..),+ calcMac,+ prop_mac_stable, ) where import qualified Data.ByteString.Lazy as L import qualified Data.Text as T import qualified Data.Text.Encoding as T-+import qualified Data.ByteString as S import Crypto.Hash sha1 :: L.ByteString -> Digest SHA1@@ -60,3 +63,37 @@ ] where foo = L.fromChunks [T.encodeUtf8 $ T.pack "foo"]++{- File names are (client-side) MAC'ed on special remotes.+ - The chosen MAC algorithm needs to be same for all files stored on the+ - remote.+ -}+data Mac = HmacSha1 | HmacSha224 | HmacSha256 | HmacSha384 | HmacSha512+ deriving (Eq)++calcMac+ :: Mac -- ^ MAC+ -> S.ByteString -- ^ secret key+ -> S.ByteString -- ^ message+ -> String -- ^ MAC'ed message, in hexadecimal+calcMac mac = case mac of+ HmacSha1 -> use SHA1+ HmacSha224 -> use SHA224+ HmacSha256 -> use SHA256+ HmacSha384 -> use SHA384+ HmacSha512 -> use SHA512+ where+ use alg k m = show (hmacGetDigest (hmacAlg alg k m))++-- Check that all the MACs continue to produce the same.+prop_mac_stable :: Bool+prop_mac_stable = all (\(mac, result) -> calcMac mac key msg == result)+ [ (HmacSha1, "46b4ec586117154dacd49d664e5d63fdc88efb51")+ , (HmacSha224, "4c1f774863acb63b7f6e9daa9b5c543fa0d5eccf61e3ffc3698eacdd")+ , (HmacSha256, "f9320baf0249169e73850cd6156ded0106e2bb6ad8cab01b7bbbebe6d1065317")+ , (HmacSha384, "3d10d391bee2364df2c55cf605759373e1b5a4ca9355d8f3fe42970471eca2e422a79271a0e857a69923839015877fc6")+ , (HmacSha512, "114682914c5d017dfe59fdc804118b56a3a652a0b8870759cf9e792ed7426b08197076bf7d01640b1b0684df79e4b67e37485669e8ce98dbab60445f0db94fce")+ ]+ where+ key = T.encodeUtf8 $ T.pack "foo"+ msg = T.encodeUtf8 $ T.pack "bar"
Utility/Metered.hs view
@@ -144,7 +144,7 @@ defaultChunkSize = 32 * k - chunkOverhead where k = 1024- chunkOverhead = 2 * sizeOf (undefined :: Int) -- GHC specific+ chunkOverhead = 2 * sizeOf (1 :: Int) -- GHC specific data OutputHandler = OutputHandler { quietMode :: Bool
Utility/Path.hs view
@@ -138,9 +138,15 @@ {- This requires the first path to be absolute, and the - second path cannot contain ../ or ./+ -+ - On Windows, if the paths are on different drives,+ - a relative path is not possible and the path is simply+ - returned as-is. -} relPathDirToFileAbs :: FilePath -> FilePath -> FilePath-relPathDirToFileAbs from to = join s $ dotdots ++ uncommon+relPathDirToFileAbs from to+ | takeDrive from /= takeDrive to = to+ | otherwise = join s $ dotdots ++ uncommon where s = [pathSeparator] pfrom = split s from@@ -153,6 +159,7 @@ prop_relPathDirToFile_basics :: FilePath -> FilePath -> Bool prop_relPathDirToFile_basics from to+ | null from || null to = True | from == to = null r | otherwise = not (null r) where
Utility/Touch.hsc view
@@ -54,8 +54,8 @@ -- use the larger alignment of the two types in the struct alignment _ = max sec_alignment nsec_alignment where- sec_alignment = alignment (undefined::CTime)- nsec_alignment = alignment (undefined::CLong)+ sec_alignment = alignment (1::CTime)+ nsec_alignment = alignment (1::CLong) sizeOf _ = #{size struct timespec} peek ptr = do sec <- #{peek struct timespec, tv_sec} ptr@@ -92,7 +92,7 @@ -} instance Storable TimeSpec where- alignment _ = alignment (undefined::CLong)+ alignment _ = alignment (1::CLong) sizeOf _ = #{size struct timeval} peek ptr = do sec <- #{peek struct timeval, tv_sec} ptr
Utility/Verifiable.hs view
@@ -7,11 +7,12 @@ module Utility.Verifiable where -import Data.Digest.Pure.SHA-import Data.ByteString.Lazy.UTF8 (fromString)-import qualified Data.ByteString.Lazy as L+import Data.ByteString.UTF8 (fromString)+import qualified Data.ByteString as S -type Secret = L.ByteString+import Utility.Hash++type Secret = S.ByteString type HMACDigest = String {- A value, verifiable using a HMAC digest and a secret. -}@@ -28,7 +29,7 @@ verify v secret = v == mkVerifiable (verifiableVal v) secret calcDigest :: String -> Secret -> HMACDigest-calcDigest v secret = showDigest $ hmacSha1 secret $ fromString v+calcDigest v secret = calcMac HmacSha1 secret (fromString v) {- for quickcheck -} prop_verifiable_sane :: String -> String -> Bool
build.bat view
@@ -1,1 +1,1 @@-C:\MINGW\MSYS\1.0\BIN\SH.EXE standalone/windows/build-simple.sh+C:\CYGWIN\BIN\SH.EXE standalone/windows/build-simple.sh
debian/changelog view
@@ -1,3 +1,39 @@+git-annex (5.20150420) unstable; urgency=medium++ * Fix activity log parsing, which caused the log to not retain+ activity from other uuids.+ * Union merge could fall over if there was a file in the repository+ with the same name as a git ref. Now fixed.+ * info dir: Added information about repositories that+ contain files in the specified directory.+ * info: Added --bytes option.+ * bittorrent: Fix handling of magnet links.+ * When a key's size is unknown, still check the annex.diskreserve,+ and avoid getting content if the disk is too full.+ * Fix fsck --from a git remote in a local directory, and from+ a directory special remote.+ This was a reversion caused by the relative path changes in 5.20150113.+ * fsck --from remote: When bad content is found in the remote,+ and the local repo does not have a copy of the content, preserve+ the bad content in .git/annex/bad/ to avoid further data loss.+ * fsck --from remote: Avoid downloading a key if it would go over+ the annex.diskreserve limit.+ * required: New command, like wanted, but for required content.+ * Removed dependency on haskell SHA library,+ instead using cryptohash >= 0.11.0.+ * Make repo init more robust.+ * New debian/rules build-standalone target, which generates a+ git-annex-standalone.deb that should work on many old Debian etc+ systems. Thanks, Yaroslav Halchenko.+ * Windows: Renamed start menu file to avoid loop in some versions+ of Windows where the menu file is treated as a git-annex program.+ * Windows: Fixed support of remotes on other drives.+ (A reversion introduced in version 5.20150113.)+ * Windows: Bundled versions of rsync, wget, ssh, and gpg from+ cygwin all updated. Thanks, Yury V. Zaytsev.++ -- Joey Hess <id@joeyh.name> Mon, 20 Apr 2015 14:44:04 -0400+ git-annex (5.20150409) unstable; urgency=medium * This fixes a bug in the assistant introduced by the literal pathspec
debian/control view
@@ -10,8 +10,7 @@ libghc-data-default-dev, libghc-hslogger-dev, libghc-pcre-light-dev,- libghc-sha-dev,- libghc-cryptohash-dev,+ libghc-cryptohash-dev (>= 0.11.0), libghc-dataenc-dev, libghc-utf8-string-dev, libghc-aws-dev (>= 0.9.2-2~),
+ debian/create-standalone-changelog view
@@ -0,0 +1,17 @@+#!/bin/bash+#+# A little helper script to build a package with standalone git-annex+# It relies on being run within git-annex's git repository+#+set -eu++umask 022++# This is the same method that the configure script uses when git-annex is+# built from git master.+ANNEX_VERSION=$(runghc Build/Version.hs)++ANNEX_NDVERSION=$( echo ${ANNEX_VERSION} | sed -e 's,-,+git,' -e 's,$,-1~ndall+1,')++dch --noconf -v ${ANNEX_NDVERSION} \+ --force-bad-version --force-distribution -D neurodebian "Backported fresh snapshot"
+ debian/patches/series.standalone-build view
@@ -0,0 +1,1 @@+standalone-build
+ debian/patches/standalone-build view
@@ -0,0 +1,72 @@+From: Yaroslav Halchenko <debian@onerussian.com>+Subject: Patch debian/ to provide a standalone build of git-annex++Origin: NeuroDebian+Last-Update: 2015-04-20++--- a/debian/control++++ b/debian/control+@@ -87,11 +87,13 @@ Vcs-Git: git://git.kitenet.net/git-annex+ Homepage: http://git-annex.branchable.com/+ XS-Testsuite: autopkgtest+ +-Package: git-annex++Package: git-annex-standalone+ Architecture: any+ Section: utils+-Depends: ${misc:Depends}, ${shlibs:Depends},+- git (>= 1:1.8.1),++Conflicts: git-annex++Provides: git-annex++Depends: ${misc:Depends},++ git,+ rsync,+ wget,+ curl,+@@ -110,7 +112,7 @@ Suggests:+ bup,+ tahoe-lafs,+ libnss-mdns,+-Description: manage files with git, without checking their contents into git++Description: manage files with git, without checking their contents into git -- standalone build+ 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+ 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.++ .++ This package provides a standalone bundle build of git-annex, which++ should be installable on any more or less recent Debian or Ubuntu++ release.+--- /dev/null++++ b/debian/install+@@ -0,0 +1 @@++tmp/git-annex.linux usr/lib+--- /dev/null++++ b/debian/links+@@ -0,0 +1 @@++/usr/lib/git-annex.linux/git-annex /usr/bin/git-annex+--- /dev/null++++ b/debian/manpages+@@ -0,0 +1 @@++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.+ #+ ++override_dh_auto_build:++ make linuxstandalone++++override_dh_auto_install:++ : # nothing to do, we just need to copy the beast, as instructed in debian/install++++override_dh_fixperms:++ dh_fixperms -Xld-linux+++ build-standalone:+ [ -e .git ]+ git checkout debian/changelog
debian/rules view
@@ -7,3 +7,13 @@ %: dh $@++# Run this target to build git-annex-standalone.deb+build-standalone:+ test -e .git+ git checkout debian/changelog+ quilt pop -a || true+ QUILT_SERIES=series.standalone-build quilt push -a+ debian/create-standalone-changelog+ dpkg-buildpackage -rfakeroot+ quilt pop -a
− doc/bugs/--list-tests_runs_tests.mdwn
@@ -1,28 +0,0 @@-### Please describe the problem.-Running "git annex test --list-tests" seems to produce the same output as "git annex test" rather than list tests.--### What steps will reproduce the problem?-git annex test --list-tests--### What version of git-annex are you using? On what operating system?-5.20150317-g237d5b0 on Centos 6.6 and Ubuntu 12.04.5--5.20141125 on Mac OS X 10.10.2--### Please provide any additional information below.--[[!format sh """-# this is version 5.20150317-g237d5b0 on Ubuntu-$ ./git-annex test --list-tests-Tests- QuickCheck- prop_idempotent_deencode_git: OK (0.15s)- +++ OK, passed 1000 tests.- prop_idempotent_deencode: OK (0.12s)- +++ OK, passed 1000 tests.-[snip all the passing tests]-All 140 tests passed (305.69s)-"""]]--> [[fixed|done]] although I don't understand why tasty needs the-> `listingTests` ingredient to come first for it to work. --[[Joey]]
+ doc/bugs/Can__39__t_get_content_from_S3_with_s3-aws_library.mdwn view
@@ -0,0 +1,57 @@+### Please describe the problem.+I have lots of content stored in Amazon S3. Using git-annex from before commit 911ba8d972e4e7b151385d30c198598e1a0dfaca, I am able to ``git annex get`` from S3 and files are downloaded.+Using a more recent version (eg that commit, or the current master, or release 20150409), I am unable to download the content.++I'm not sure if my repo or remote is somehow misconfigured, or if there's something else going on here.++--Walter++### What steps will reproduce the problem?+Use a version of git-annex with s3-aws++### What version of git-annex are you using? On what operating system?+Debian, versions as above++### Please provide any additional information below.++[[!format sh """+# If you can, paste a complete transcript of the problem occurring here.+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log++git annex get . --from cloud --debug+[2015-04-19 22:23:37 BST] read: git ["--git-dir=../../../.git","--work-tree=../../..","--literal-pathspecs","show-ref","git-annex"]+[2015-04-19 22:23:37 BST] read: git ["--git-dir=../../../.git","--work-tree=../../..","--literal-pathspecs","show-ref","--hash","refs/heads/git-annex"]+[2015-04-19 22:23:37 BST] read: git ["--git-dir=../../../.git","--work-tree=../../..","--literal-pathspecs","log","refs/heads/git-annex..a51a912223d3d86f19762e387e3eae23c3024d2c","-n1","--pretty=%H"]+[2015-04-19 22:23:37 BST] chat: git ["--git-dir=../../../.git","--work-tree=../../..","--literal-pathspecs","cat-file","--batch"]+[2015-04-19 22:23:37 BST] read: git ["--git-dir=../../../.git","--work-tree=../../..","--literal-pathspecs","ls-files","--cached","-z","--","."]+get IMG_7079.JPG (from cloud...) [2015-04-19 22:23:37 BST] chat: gpg ["--batch","--no-tty","--use-agent","--quiet","--trust-model","always","--decrypt"]++failed +get IMG_7080.JPG (from cloud...) +failed ++++git annex info cloud+remote: cloud+description: [cloud]+uuid: be992080-b1db-11e1-8f79-1b10bb4092ef+trust: semitrusted+cost: 250.0+type: S3+creds: embedded in git repository (gpg encrypted)+bucket: ffffffffffffffffffffffffff+partsize: unlimited+encryption: encrypted (to gpg keys: FFFFFFFFFFFF) (hybrid mode)+chunking: none+remote annex keys: 0+remote annex size: 0 bytes+++git annex fsck -f cloud+fsck IMG_6876.JPG (checking cloud...) (StatusCodeException (Status {statusCode = 301, statusMessage = "Moved Permanently"}) [("x-amz-request-id","275ADF5B1B77D514"),("x-amz-id-2","flWGBHOZYEZAohygAzBIZAYd7nBGkm3HpSMfJuhgRp3txXx20yJz7S4yRlNLwCs1cHUMyWc9JbA="),("Content-Type","application/xml"),("Transfer-Encoding","chunked"),("Date","Sun, 19 Apr 2015 22:23:15 GMT"),("Server","AmazonS3")] (CJ {expose = []})) failed++++# End of transcript or log.+"""]]
doc/bugs/Proxy_support.mdwn view
@@ -17,3 +17,26 @@ I don't use networkmanager if proxy information is obtained from it. There should be a fallback to environment variables. [[!tag confirmed]]++> Here's a patch that shows how to enable proxy support for the+> parts of git-annex that use http-client and http-conduit:+> <https://github.com/kiwiroy/git-annex/commit/18a3ceda1beb7c356541270f37ae4c0d56ada726>+> +> Other parts of git-annex use wget/curl and should already support+> the environment variables.++>> I had a closer look at this, and it turns out that http-client +>> now enables http proxy support by default, when the environment variable+>> is set. Since version 0.4.7. See `defaultProxy`.+>> +>> git-annex uses http-client for all its http access (either directly+>> or through layers like http-conduit and DAV).+>> +>> So I don't need to change+>> git-annex at all; it just needs to be built with a new enough version+>> of http-client. This will happen for the linux autobuilders once the new+>> version reaches Debian. I've updated the OSX autobuilder's http-client+>> so it will already support proxying and anyone can built git-annex+>> using the new http-client and get proxy support.+>>+>> Calling this [[done]] as nothing remains to do in git-annex. --[[Joey]]
+ doc/bugs/addurl_+_sync_vs_addurl_+_commit.mdwn view
@@ -0,0 +1,24 @@+### Please describe the problem.++I think this is what happened; I need to go back and check this again (maybe I was just misreading something) but I want to get it written down first.++I've got a git repository, and I just ran git annex init. Then I ran git annex addurl a bunch of times, followed by git annex sync. The result was apparently a repository where the files downloaded by addurl were added using the SHA256 backend rather than the URL backend. I deleted the branches and tried again, but this time after calling git annex addurl a bunch of times I did a normal git commit. This time everything looked fine; the files were all listed in as present in the web remote.++### What steps will reproduce the problem?++[[!format sh """+git annex init+git annex addurl "https://archive.org/download/emularity_engine_jsmess/messnapple2e.js.gz" --file "messnapple2e.js.gz"+git annex sync+"""]]++### What version of git-annex are you using? On what operating system?++ git-annex version: 5.20150412-g2be4834+ build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV Inotify DBus DesktopNotify XMPP DNS Feeds Quvi TDFA TorrentParser+ key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SKEIN256E SKEIN512E MD5E SHA256 SHA1 SHA512 SHA224 SHA384 SKEIN256 SKEIN512 MD5 WORM URL+ remote types: git gcrypt S3 bup directory rsync web bittorrent webdav tahoe glacier ddar hook external+ local repository version: 5+ supported repository version: 5+ upgrade supported from repository versions: 0 1 2 4+This is on Linux.
+ doc/bugs/addurl_magnet_could_not_download_torrent_file.mdwn view
@@ -0,0 +1,49 @@+### Please describe the problem.++Every time I try to `addurl` with `magnet:` I get this error message:++ could not download torrent file++### What steps will reproduce the problem?++ git-annex addurl "magnet:?xt=urn:btih:b548b3b8efce813d71c9355832b4382680b8abf9"++### What version of git-annex are you using? On what operating system?++* git-annex 5.20150409+* ubuntu 14.04 x64++### Please provide any additional information below.++[[!format sh """++git-annex addurl magnet:?xt=urn:btih:b548b3b8efce813d71c9355832b4382680b8abf9+(downloading torrent file...) ++04/13 17:16:15 [NOTICE] IPv4 DHT: listening on UDP port 6930++04/13 17:16:15 [NOTICE] IPv4 BitTorrent: listening on TCP port 6890++04/13 17:16:15 [NOTICE] IPv6 BitTorrent: listening on TCP port 6890+[#3e3bb9 74KiB/74KiB(100%) CN:13 SD:1] +04/13 17:16:33 [NOTICE] Download complete: [METADATA]b548b3b8efce813d71c9355832b4382680b8abf9++04/13 17:16:33 [NOTICE] Saved metadata as ../.git/annex/misctmp/URL--magnet&c,63xt,61urn&cbtih&cb548b3b8efce813d71c9355832b4382680b8abf9/meta/b548b3b8efce813d71c9355832b4382680b8abf9.torrent.+ +Download Results:+gid |stat|avg speed |path/URI+======+====+===========+=======================================================+3e3bb9|OK | 0B/s|[MEMORY][METADATA]b548b3b8efce813d71c9355832b4382680b8abf9++Status Legend:+(OK):download completed.+addurl magnet:?xt=urn:btih:b548b3b8efce813d71c9355832b4382680b8abf9 + could not download torrent file+failed+git-annex: addurl: 1 failed++"""]]++> Looking at the code, it was looking for a file prefixed by ".torrent",+> but of course that should be suffixed instead. So, [[fixed|done]]+> --[[Joey]]
doc/bugs/encryption__61__none_doesn__39__t_work_with_enableremote.mdwn view
@@ -40,3 +40,5 @@ # End of transcript or log. """]]++[[!tag moreinfo]]
doc/bugs/false_positives_from_fsck_in_bare_repo.mdwn view
@@ -43,3 +43,5 @@ # End of transcript or log. """]]++[[!tag moreinfo]]
+ doc/bugs/fsck_reports_unsolvable_problem.mdwn view
@@ -0,0 +1,20 @@+### Please describe the problem.++On my bare git-annex repo, `git annex fsck -q` reports:++ ** No known copies exist of SHA256E-s1212237--d2edd369f6a9005e23f022c7d797b166c66b90defc561329dbafab9a0fc0c7fc.jpg++`git log -SSA256E...` returns nothing. `git annex repair` and `git annex forget` do not fix the problem.++This means that running `fsck` from cron or a script will now always fail. There should be a way to recover from this situation.++### What steps will reproduce the problem?++According to IRC this "can happen if you annexed a file and then deleted it without ever committing to git".+++### What version of git-annex are you using? On what operating system?++5.20140717 from Ubuntu utopic++[[!tag confirmed]]
doc/bugs/git-annex-shell_doesn__39__t_work_as_expected.mdwn view
@@ -117,3 +117,5 @@ </pre> Turning off `sshcaching` seems to work around the issue. Note that this happens even if the git repo is moved to a non-NFS filesystem, so I have the feeling it's not directly related to [this bugfix](http://source.git-annex.branchable.com/?p=source.git;a=commit;h=bd110516c09d318b298804efc4ee888270f3d601).++> [[done]]
doc/bugs/git-annex_unused_--from_s3_doesn__39__t.mdwn view
@@ -27,3 +27,5 @@ ### Please provide any additional information below. The S3 remote is encrypted with the default "hybrid" method++[[!tag moreinfo]]
+ doc/bugs/list-tests_runs_tests.mdwn view
@@ -0,0 +1,28 @@+### Please describe the problem.+Running "git annex test --list-tests" seems to produce the same output as "git annex test" rather than list tests.++### What steps will reproduce the problem?+git annex test --list-tests++### What version of git-annex are you using? On what operating system?+5.20150317-g237d5b0 on Centos 6.6 and Ubuntu 12.04.5++5.20141125 on Mac OS X 10.10.2++### Please provide any additional information below.++[[!format sh """+# this is version 5.20150317-g237d5b0 on Ubuntu+$ ./git-annex test --list-tests+Tests+ QuickCheck+ prop_idempotent_deencode_git: OK (0.15s)+ +++ OK, passed 1000 tests.+ prop_idempotent_deencode: OK (0.12s)+ +++ OK, passed 1000 tests.+[snip all the passing tests]+All 140 tests passed (305.69s)+"""]]++> [[fixed|done]] although I don't understand why tasty needs the+> `listingTests` ingredient to come first for it to work. --[[Joey]]
+ doc/devblog/day_274__concurrent_annex_state.mdwn view
@@ -0,0 +1,42 @@+Back working on `git annex get --jobs=N` today. It was going very well,+until I realized I had a hard problem on my hands.++The hard problem is that the AnnexState structure at the core of git-annex+is not able to be shared amoung multiple threads at all. There's too much+complicated mutable state going on in there for that to be feasible at all.++In the git-annex assistant, which uses many threads, I long ago worked+around this problem, by having a single shared AnnexState and when a thread+needs to run an Annex action, it blocks until no other thread is using it.+This worked ok for the assistant, with a little bit of thought to avoid+long-duration Annex actions that could stall the rest of it.++That won't work for concurrent `get` etc. I spent a while investigating maybe+making AnnexState thread safe, but it's just not built for it. Too many+ways that can go wrong. For example, there's a CatFileHandle in the+AnnexState. If two threads are running, they can both try to talk to the+same `git cat-file --batch` command at once, with bad results. Worse, yet,+some parts of the code do things like modifying the AnnexState's Git repo+to add environment variables to use when running git commands.++It's not all gloom and doom though. Only very isolated parts of the code+change the working directory or set environment variables. And the+assistant has surely smoked out other thread concurrency problems already.+And, separate `git-annex` programs can be run concurrently with no problems+at all; it uses file locking to avoid different processes getting in+each-others' way. So AnnexState is the only remaining obstacle to concurrency.++So, here's how I've worked around it: When `git annex get -J10` is run,+it will start by allocating 10 job slots. A fresh AnnexState will be+created, and copied into each slot. Each time a job runs, it uses its+slot's own AnnexState. This means 10 `git cat-file` processes,+and maybe some contention over lock files, but generally, a nice, easy,+and hopefully trouble-free multithreaded mode.++And indeed, I've gotten `git annex get -J10` working robustly!+And from there it was trivial to enable -J for `move` and `copy` and `mirror`+too!++The only real blocker to merging the concurrentprogress branch is some bugs+in the ascii-progress library that make it draw very scrambled progress+bars the way git-annex uses it.
+ doc/devblog/day_275-276__mostly_Windows.mdwn view
@@ -0,0 +1,20 @@+Mostly working on Windows recently. Fixed handling of git+repos on different drive letters. Fixed crazy start menu loop. Worked around+stange msysgit version problem.++Also some more work on the `concurrentprogress` branch, making the progress+display prettier.++Added one nice new feature yesterday: `git annex info $dir` now includes a+table of repositories that are storing files in the directory, with their+sizes.++ repositories containing these files: + 288.98 MB: ca9c5d52-f03a-11df-ac14-6b772ffe59f9 -- archive-5+ 288.98 MB: f1c0ce8d-d848-4d21-988c-dd78eed172e8 -- archive-8+ 10.48 MB: 587b9ccf-4548-4d6f-9765-27faecc4105f -- darkstar+ 15.18 kB: 42d47daa-45fd-11e0-9827-9f142c1630b3 -- origin++Nice thing about this feature is it's done for free, with no extra work other+than a little bit of addition. All the heavy location lookup work was already+being done to get the numcopies stats.
+ doc/devblog/day_277__thanks.mdwn view
@@ -0,0 +1,20 @@+Recent work has included improving `fsck --from remote` (and fixing a+reversion caused by the relative path changes in January), and making+annex.diskreserve be checked in more cases. And added a `git annex+required` command for setting [[required_content]].++Also, I want to thank several people for their work:++* Roy sent a patch to enable http proxy support.. despite+ having only learned some haskell by "30 mins with YAHT". I investigated+ that more, and no patch is actually necessary, but just a newer version+ of the http-client library.+* CandyAngel has been posting lots of helpful comments on the website,+ including [this tip](http://git-annex.branchable.com/forum/__34__git_annex_sync__34___synced_after_8_hours/#comment-890ca1381d800ac833ccbb8c5db175ea)+ that significantly speeds up a large git repository.+* Øyvind fixed a lot of typos throughout the git-annex+ documentation.+* Yaroslav has created a `git-annex-standalone.deb` package+ that will work on any system where debian packages can be installed,+ no matter how out of date it is (within reason), using the same+ methods as the standalone tarball.
+ doc/forum/Cant_see_git-annex-shell_via_SSH_in_OSX.mdwn view
@@ -0,0 +1,119 @@+### Sync Problems using SSH remote in OSX++- Im trying to work out SSH remotes by trying to sync up repos on my home network, following the walkthrough. +- I have two machines (mini and mbp ) running OSX Mavericks, with RLogin enabled for all users to enable ssh.+- I can SSH into the remote machine and see *git-annex-shell*, which seems to have ok permissions++```++ johns-mbp:annex johnmccallum$ ssh john@johns-mini-5.home + + Last login: Sun Apr 12 07:31:07 2015 from johns-mbp.home++ johns-mini-5:~ john$ which git-annex-shell++ /usr/local/bin/git-annex-shell++ johns-mini-5:~ john$ ls -l /usr/local/bin/git-annex-shell++ -rwxr-xr-x@ 1 john admin 668 12 Apr 07:03 /usr/local/bin/git-annex-shell++```++- Previously on mini I created and populated a repo++``` ++ 494 mkdir annex++ 495 cd annex++ 496 git init++ 497 git annex init++ 498 cp ~/Pictures/*.png .++ 499 git annex add .++ 500 git commit -a -m 'added png'++```++- I can git clone this repo to MBP by SSH+++```+ johns-mbp:~ johnmccallum$ git clone ssh://john@johns-mini-5.home/Users/john/annex ~/annex++ Cloning into '/Users/johnmccallum/annex'...++ remote: Counting objects: 24, done.++ remote: Compressing objects: 100% (19/19), done.++ remote: Total 24 (delta 3), reused 0 (delta 0)++ Receiving objects: 100% (24/24), done.++ Resolving deltas: 100% (3/3), done.++ Checking connectivity... done++ johns-mbp:~ johnmccallum$ cd annex++ johns-mbp:annex johnmccallum$ git annex init 'MBP'++ init MBP (merging origin/git-annex into git-annex...)++ (recording state in git...)++ ok++ (recording state in git...)++ johns-mbp:annex johnmccallum$ ls -l++ total 16++ lrwxr-xr-x 1 johnmccallum staff 196 12 Apr 08:20 CoGe-Snapshot at 2013-03-22 - 11-27-20.png -> .git/annex/objects/gf/Xp/SHA256E-s367697-- fce3f47f218805cd9855ec3fd4203b52e83587148b34c8e706df512783eb7557.png/SHA256E-s367697--fce3f47f218805cd9855ec3fd4203b52e83587148b34c8e706df512783eb7557.png++ lrwxr-xr-x 1 johnmccallum staff 196 12 Apr 08:20 delicious.png -> .git/annex/objects/ZJ/vX/SHA256E-s112714--057d0faa464f8d588c053dae460838d68ea7803d7eaf7330798679e63f92cecb.png/SHA256E-s112714--057d0faa464f8d588c053dae460838d68ea7803d7eaf7330798679e63f92cecb.png+++```++ **HOWEVER** _git annex get_ fails as follows:++```++ johns-mbp:annex johnmccallum$ git annex get delicious.png ++ get delicious.png bash: git-annex-shell: command not found++ Remote origin does not have git-annex installed; setting annex-ignore++ This could be a problem with the git-annex installation on the remote. Please make sure that git-annex-shell is available in PATH when you ssh into the remote. Once you have fixed the git-annex installation, run: git config remote.origin.annex-ignore false+ (not available) + Try making some of these repositories available:+ 129620b2-91b1-4541-b7b1-9e5a9d31d5d3 -- john@johns-mini-5.home:~/annex+ failed+ git-annex: get: 1 failed++```++This is not the case on the remote host when I SSH in as the same user++```++ johns-mini-5:~ john$ which git-annex-shell+++ /usr/local/bin/git-annex-shell++```+++ The only thread on this seems to be https://git-annex.branchable.com/forum/not_finding_git-annex-shell_on_remote/ and Im at a loss to understand it. ++Any suggestions would be welcome
+ doc/forum/How_do_I_hide_files_not_present_in_the_local_annex__63__.mdwn view
@@ -0,0 +1,2 @@+Files only present in remotes show up as broken symlinks. That's great for knowing what files exist, but sometimes I just want to browse the files that are actually present. In this case, the many broken symlinks are just clutter.+Is there a straightforward way to switch to a view that shows only locally present files?
+ doc/forum/__34__git_annex_sync__34___synced_after_8_hours.mdwn view
@@ -0,0 +1,40 @@+Hi,++The git annex seem has problem with many files.++For synchronize, the operation lasts 8 hours. Here the sample for synchronizing to my local remote server (sbackup)++start at **20:12** / end at **04:13** / total time = ~ **8 hours**++ git annex sync sbackup+ + [2015-04-13 20:12:26 CEST] call: git ["--git-dir=.git","--work-tree=.","push","sbackup","+git-annex:synced/git-annex","master:synced/master"]+ Counting objects: 792155, done.+ Delta compression using up to 4 threads.+ Compressing objects: 100% (789727/789727), done.+ Writing objects: 100% (792155/792155), 75.73 MiB | 2.35 MiB/s, done.+ Total 792155 (delta 449604), reused 1 (delta 0)+ To partage@192.168.253.53:/data/samba/git-annex/docshare+ ae182f0..fad3aca git-annex -> synced/git-annex+ e0e67fe..5226a6f master -> synced/master+ [2015-04-14 04:13:05 CEST] read: git ["--git-dir=.git","--work-tree=.","push","sbackup","git-annex","master"]+ ok++Another problem, I do not know exactly how many files I own (i use **find . | wc -l** )++.git = 1250633++documents = 61124++medias = 199504++it seem i own ~250000 files, but in the .git **1.2 millions files**.++The following command also very slow++ git annex info+++What the best pratices for use git annex with many files > 500 000 or maintenance & reduction/cleaning method++Thanks
+ doc/forum/ga-ncdu/comment_3_c5ce3b663de76b50754de70b3fb23bf0._comment view
@@ -0,0 +1,15 @@+[[!comment format=mdwn+ username="CandyAngel"+ subject="comment 3"+ date="2015-04-12T22:12:53Z"+ content="""+Whelp, didn't realise it had been over two weeks! Got caught up in other stuff (VR).++[Here's the bitbucket repository!](https://bitbucket.org/CandyAngel/ga-ncdu)++I've coded my own JSON output so it doesn't depend on any non-core Perl modules.++Please let me know of any bugs, feature requests etc. Feedback would be appreciated, even just letting me know you are using it would be great!++ ga-ncdu.pl ~/mah_annex | ncdu -f-+"""]]
doc/git-annex-expire.mdwn view
@@ -32,7 +32,7 @@ * `--no-act` - Print out what would be done, but not not actually expite or unexpire+ Print out what would be done, but not not actually expire or unexpire any repositories. * `--activity=Name`
doc/git-annex-fromkey.mdwn view
@@ -13,7 +13,7 @@ If the key and file are not specified on the command line, they are instead read from stdin. Any number of lines can be provided in this-mode, each containing a key and filename, sepearated by a single space.+mode, each containing a key and filename, separated by a single space. # OPTIONS
doc/git-annex-info.mdwn view
@@ -26,6 +26,10 @@ Enable JSON output. This is intended to be parsed by programs that use git-annex. Each line of output is a JSON object. +* `--bytes`++ Show file sizes in bytes, disabling the default nicer units.+ * file matching options When a directory is specified, the [[git-annex-matching-options]](1)
doc/git-annex-lock.mdwn view
@@ -1,6 +1,6 @@ # NAME -git-annex lock - unco unlock command+git-annex lock - undo unlock command # SYNOPSIS
doc/git-annex-preferred-content.mdwn view
@@ -10,6 +10,13 @@ They are used by the `--auto` option, by `git annex sync --content`, and by the git-annex assistant. +While preferred content expresses a preference, it can be overridden+by simply using `git annex drop`. On the other hand, required content+settings are enforced; `git annex drop` will refuse to drop a file if+doing so would violate its required content settings. A repository's+required content can be configured using `git annex vicfg` or+`git annex required`.+ Preferred content expressions are similar, but not identical to the [[git-annex-matching-options]](1), just without the dashes. For example:@@ -18,7 +25,7 @@ The main differences are that `exclude=` and `include=` always match relative to the top of the git repository, and that there is-no equivilant to `--in`.+no equivalent to `--in`. For more details about preferred content expressions, see See <https://git-annex.branchable.com/preferred_content/>
doc/git-annex-readpresentkey.mdwn view
@@ -9,7 +9,7 @@ # DESCRIPTION This plumbing-level command reads git-annex's records about whether-the specified key's content is present in the remote with the speficied+the specified key's content is present in the remote with the specified uuid. It exits 0 if the key is recorded to be present and 1 if not.
+ doc/git-annex-required.mdwn view
@@ -0,0 +1,29 @@+# NAME++git-annex required - get or set required content expression++# SYNOPSIS++git annex required `repository [expression]`++# DESCRIPTION++When run with an expression, configures the content that is required+to be held in the archive. See [[git-annex-preferred-content]](1)++For example:++ git annex required . "include=*.mp3 or include=*.ogg"++Without an expression, displays the current required content setting+of the repository.++# SEE ALSO++[[git-annex]](1)++# AUTHOR++Joey Hess <id@joeyh.name>++Warning: Automatically converted into a man page by mdwn2man. Edit with care.
doc/git-annex-shell.mdwn view
@@ -86,7 +86,7 @@ * -- fields=val fields=val.. -- - Additional fields may be specified this way, to retain compatability with+ Additional fields may be specified this way, to retain compatibility with past versions of git-annex-shell (that ignore these, but would choke on new dashed options).
doc/git-annex.mdwn view
@@ -264,7 +264,15 @@ * `groupwanted groupname [expression]` + Get or set groupwanted expression.+ See [[git-annex-groupwanted]](1) for details.++* `required repository [expression]`+ + Get or set required content expression.+ + See [[git-annex-required]](1) for details. * `schedule repository [expression]`
doc/git-union-merge.mdwn view
@@ -12,7 +12,7 @@ specified newref. The union merge will always succeed, but assumes that files can be merged-simply by concacenating together lines from all the oldrefs, in any order.+simply by concatenating together lines from all the oldrefs, in any order. So, this is useful only for branches containing log-type data. Note that this does not touch the checked out working copy. It operates
doc/install/Windows.mdwn view
@@ -25,7 +25,7 @@ ## building it yourself To build git-annex from source on Windows, you need to install-the Haskell Platform, Mingw, and Cygwin. Use Cygwin to install:+the Haskell Platform and Cygwin. Use Cygwin to install these packages: gcc rsync git wget ssh gnupg Once the prerequisites are installed, run:@@ -34,6 +34,9 @@ git clone git://git-annex.branchable.com/ gitannex cd gitannex build++Note that git from Cygwin is able to clone git-annex's git repository;+Msysgit cannot due to some characters in filenames. (To build the git-annex installer, you also need to install the NullSoft installer system.)
− doc/news/version_5.20150317.mdwn
@@ -1,45 +0,0 @@-git-annex 5.20150317 released with [[!toggle text="these changes"]]-[[!toggleable text="""- * fsck: Incremental fsck uses sqlite to store its records, instead- of abusing the sticky bit. Existing sticky bits are ignored;- incremental fscks started by old versions won't be resumed by- this version.- * fsck: Multiple incremental fscks of different repos (including remotes)- can now be running at the same time in the same repo without it- getting confused about which files have been checked for which remotes.- * unannex: Refuse to unannex when repo is too new to have a HEAD,- since in this case there must be staged changes in the index- (if there is anything to unannex), and the unannex code path- needs to run with a clean index.- * Linux standalone: Set LOCPATH=/dev/null to work around- https://ghc.haskell.org/trac/ghc/ticket/7695- This prevents localization from working, but git-annex- is not localized anyway.- * sync: As well as the synced/git-annex push, attempt a- git-annex:git-annex push, as long as the remote branch- is an ancestor of the local branch, to better support bare git repos.- (This used to be done, but it forgot to do it since version 4.20130909.)- * When re-execing git-annex, use current program location, rather than- ~/.config/git-annex/program, when possible.- * Submodules are now supported by git-annex!- * metadata: Fix encoding problem that led to mojibake when storing- metadata strings that contained both unicode characters and a space- (or '!') character.- * Also potentially fixes encoding problem when embedding credentials- that contain unicode characters.- * sync: Fix committing when in a direct mode repo that has no HEAD ref.- (For example, a newly checked out git submodule.)- * Added SETURIPRESENT and SETURIMISSING to external special remote protocol,- useful for things like ipfs that don't use regular urls.- * addurl: Added --raw option, which bypasses special handling of quvi,- bittorrent etc urls.- * git-annex-shell: Improve error message when the specified repository- doesn't exist or git config fails for some reason.- * fromkey --force: Skip test that the key has its content in the annex.- * fromkey: Add stdin mode.- * registerurl: New plumbing command for mass-adding urls to keys.- * remotedaemon: Fixed support for notifications of changes to gcrypt- remotes, which was never tested and didn't quite work before."""]]--Update: The OSX build for this release was missing the webapp. An updated-build is now available fixing that problem.
+ doc/news/version_5.20150420.mdwn view
@@ -0,0 +1,33 @@+git-annex 5.20150420 released with [[!toggle text="these changes"]]+[[!toggleable text="""+ * Fix activity log parsing, which caused the log to not retain+ activity from other uuids.+ * Union merge could fall over if there was a file in the repository+ with the same name as a git ref. Now fixed.+ * info dir: Added information about repositories that+ contain files in the specified directory.+ * info: Added --bytes option.+ * bittorrent: Fix handling of magnet links.+ * When a key's size is unknown, still check the annex.diskreserve,+ and avoid getting content if the disk is too full.+ * Fix fsck --from a git remote in a local directory, and from+ a directory special remote.+ This was a reversion caused by the relative path changes in 5.20150113.+ * fsck --from remote: When bad content is found in the remote,+ and the local repo does not have a copy of the content, preserve+ the bad content in .git/annex/bad/ to avoid further data loss.+ * fsck --from remote: Avoid downloading a key if it would go over+ the annex.diskreserve limit.+ * required: New command, like wanted, but for required content.+ * Removed dependency on haskell SHA library,+ instead using cryptohash >= 0.11.0.+ * Make repo init more robust.+ * New debian/rules build-standalone target, which generates a+ git-annex-standalone.deb that should work on many old Debian etc+ systems. Thanks, Yaroslav Halchenko.+ * Windows: Renamed start menu file to avoid loop in some versions+ of Windows where the menu file is treated as a git-annex program.+ * Windows: Fixed support of remotes on other drives.+ (A reversion introduced in version 5.20150113.)+ * Windows: Bundled versions of rsync, wget, ssh, and gpg from+ cygwin all updated. Thanks, Yury V. Zaytsev."""]]
doc/preferred_content.mdwn view
@@ -44,7 +44,7 @@ git annex get --include='*.mp3' --and -'(' --not --largerthan=100mb -')' -The equivilant preferred content expression looks like this:+The equivalent preferred content expression looks like this: include=*.mp3 and (not largerthan=100mb) @@ -63,7 +63,7 @@ ### difference: no "in=" -Preferred content expressions have no direct equivilant to `--in`.+Preferred content expressions have no direct equivalent to `--in`. Often, it's best to add repositories to groups, and match against the groups in a preferred content expression. So rather than@@ -146,7 +146,7 @@ group and make its preferred content be "groupwanted" will use it. For example, the archive group only wants to archive 1 copy of each file,-spread amoung every repository in the group.+spread among every repository in the group. Here's how to configure a group named redundantarchive, that instead wants to contain 3 copies of each file:
doc/privacy.mdwn view
@@ -41,7 +41,7 @@ Note that the git-annex assistant *does* sanitize XMPP protocol information logged when debugging is enabled. -If you prefer not to post information publicaly, you can send a GPG+If you prefer not to post information publically, you can send a GPG encrypted mail to Joey Hess <id@joeyh.name> (gpg key ID 2512E3C7). Or you can post a public bug report, and send a followup email with private details.
@@ -4,9 +4,9 @@ * The [[git-annex assistant|assistant]] is included in git-annex, and extends its use cases into new territory. * [gitlab-shell](https://gitlab.com/gitlab-org/gitlab-shell) supports- git-annex. So git-annex can be used with repositries served by Gitlab,+ git-annex. So git-annex can be used with repositories served by GitLab, including gitlab.com, or deploy your own.- [See Gitlab's announcment](https://about.gitlab.com/2015/02/17/gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git/)+ [See GitLab's announcement](https://about.gitlab.com/2015/02/17/gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git/) * Emacs Org mode can auto-commit attached files to git-annex. * [git annex darktable integration](https://github.com/xxv/darktable-git-annex) * [Magit](http://github.com/magit/magit), an Emacs mode for Git, has
doc/required_content.mdwn view
@@ -6,7 +6,8 @@ The format of required content expressions is the same as [[preferred_content]] expressions. -Required content settings can be edited using `git annex vicfg`.+Required content settings can be edited using `git annex vicfg`+or set using `git annex required`. Each repository can have its own settings, and other repositories will try to honor those settings when interacting with it.
doc/tips/Synology_NAS_and_git_annex.mdwn view
@@ -19,7 +19,7 @@ (2) Setup ssh key based authentication with the Synology for each computer you want to sync with it. You want a specific key that is used only by git-annex, for each computer. Again, many good guides online. -(3) In the Synology .ssh/authorized_keys file for your account, add (substituing your username)+(3) In the Synology .ssh/authorized_keys file for your account, add (substituting your username) [[!format sh """ command="/home/$yourusername/.ssh/git-annex-shell" """]]
doc/tips/file_manager_integration.mdwn view
@@ -24,9 +24,9 @@ This is set up by git-annex creating a `~/.kde/share/kde4/services/ServiceMenus/git-annex.desktop file. -## XFCE (Thunar)+## Xfce (Thunar) -XFCE uses the Thunar file manager, which can also be easily configured to+Xfce uses the Thunar file manager, which can also be easily configured to allow for custom actions. Just go to the "Configure custom actions..." item in the "Edit" menu, and create a custom action for get, drop, and undo with the following commands:@@ -72,12 +72,12 @@ <video-files/> </action> -The complete instructions on how to setup actions is [in the XFCE documentation](http://docs.xfce.org/xfce/thunar/custom-actions).+The complete instructions on how to setup actions is [in the Xfce documentation](http://docs.xfce.org/xfce/thunar/custom-actions). ## OS X (Finder) For OS X, it is possible to get context menus in Finder. Due to how OS X-deals with sym links, one needs to operate on folders if using indirect+deals with symlinks, one needs to operate on folders if using indirect mode. Direct mode operation has not been tested. 1. Open Automator and create a new Service.
doc/tips/megaannex.mdwn view
@@ -1,7 +1,7 @@ megaannex 0.2.0 ========= -Hook program for gitannex to use mega.co.nz as backend+Hook program for git-annex to use mega.co.nz as backend # Requirements:
doc/tips/using_gitolite_with_git-annex.mdwn view
@@ -92,7 +92,7 @@ mkdir -p /usr/local/lib/gitolite/adc/ua </pre> -Install the git-annex-shell ADC into the "ua" subdirectory from the gitolie repository.+Install the git-annex-shell ADC into the "ua" subdirectory from the gitolite repository. <pre> cd /usr/local/lib/gitolite/adc/ua/
doc/tips/using_the_web_as_a_special_remote.mdwn view
@@ -81,7 +81,7 @@ Later, in another clone of the repository, you can run `git annex get` on the file and it will also be downloaded with the help of quvi. This works even if the video host has transcoded or otherwise changed the video-in the meantime; the assumption is that these video files are equivilant.+in the meantime; the assumption is that these video files are equivalent. There is an `annex.quvi-options` configuration setting that can be used to pass parameters to quvi. For example, you could set `git config
+ doc/todo/addurl___8211__force-torrent_option.mdwn view
@@ -0,0 +1,1 @@+There are sites that don't provide direct links to `.torrent` files. Currently there is no way to download contents of such torrents with `git annex`, it simply uses web remote instead of bittorrent. Something like `--force-torrent` option could help here.
doc/todo/command_line_interface_for_required_content_setthings.mdwn view
@@ -9,3 +9,5 @@ one when it comes to that. Oh well.) --[[Joey]]++> [[done]] --[[Joey]]
+ doc/todo/git-annex-standalone_Debian_package.mdwn view
@@ -0,0 +1,3 @@+As proposed with a sketch in https://github.com/joeyh/git-annex/pull/39, for DataLad we would need to get recent annex on older Debian/Ubuntu releases to get our testing farm and perspective users equipped with bleeding edge annex++> merged [[done]] --[[Joey]]
doc/transferring_data.mdwn view
@@ -9,7 +9,7 @@ to allow it to be automatically resumed later. It's equally easy to transfer a single file to or from a repository,-or to launch a retrievel of a massive pile of files from whatever+or to launch a retrieval of a massive pile of files from whatever repositories they are scattered amongst. git-annex automatically uses whatever remotes are currently accessible,
doc/trust.mdwn view
@@ -45,7 +45,7 @@ when it makes sense to trust the tracking info is up to you. One way to handle this is just to use `--force` when a command cannot-access a remote you trust. Or to use `--trust` to specify a repisitory to+access a remote you trust. Or to use `--trust` to specify a repository to trust temporarily. To configure a repository as fully and permanently trusted,@@ -55,5 +55,5 @@ This is used to indicate that you have no trust that the repository exists at all. It's appropriate to use when a drive has been lost,-or a directory irretrevably deleted. It will make git-annex avoid+or a directory irretrievably deleted. It will make git-annex avoid even showing the repository as a place where data might still reside.
doc/upgrades.mdwn view
@@ -1,9 +1,9 @@-Occasionally improvments are made to how git-annex stores its data,+Occasionally improvements are made to how git-annex stores its data, that require an upgrade process to convert repositories made with an older version to be used by a newer version. It's annoying, it should happen rarely, but sometimes, it's worth it. -There's a committment that git-annex will always support upgrades from all+There's a commitment that git-annex will always support upgrades from all past versions. After all, you may have offline drives from an earlier git-annex, and might want to use them with a newer git-annex.
git-annex.cabal view
@@ -1,5 +1,5 @@ Name: git-annex-Version: 5.20150409+Version: 5.20150420 Cabal-Version: >= 1.8 License: GPL-3 Maintainer: Joey Hess <id@joeyh.name>@@ -104,13 +104,13 @@ Executable git-annex Main-Is: git-annex.hs Build-Depends: MissingH, hslogger, directory, filepath,- containers, utf8-string, mtl (>= 2),- bytestring, old-locale, time, dataenc, SHA, process, json,+ containers (>= 0.5.0.0), utf8-string, mtl (>= 2),+ bytestring, old-locale, time, dataenc, process, json, base (>= 4.5 && < 4.9), monad-control, exceptions (>= 0.6), transformers, IfElse, text, QuickCheck >= 2.1, bloomfilter, edit-distance, SafeSemaphore, uuid, random, dlist, unix-compat, async, stm (>= 2.3), data-default, case-insensitive, http-conduit, http-types,- cryptohash (>= 0.10.0),+ cryptohash (>= 0.11.0), esqueleto, persistent-sqlite, persistent, persistent-template, monad-logger, resourcet CC-Options: -Wall
man/git-annex-add.1 view
@@ -1,6 +1,6 @@ .TH git-annex-add 1 .SH NAME-git\-annex add \- adds files to the git annex+git-annex add \- adds files to the git annex .PP .SH SYNOPSIS git annex add \fB[path ...]\fP@@ -29,13 +29,13 @@ Specifies which key\-value backend to use. .IP .IP "file matching options"-Many of the git\-annex\-matching\-options(1)+Many of the git-annex\-matching\-options(1) can be used to specify files to add. .IP For example: \fB\-\-largerthan=1GB\fP .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-addunused.1 view
@@ -1,6 +1,6 @@ .TH git-annex-addunused 1 .SH NAME-git\-annex addunused \- add back unused files+git-annex addunused \- add back unused files .PP .SH SYNOPSIS git annex addunused \fB[number|range ...]\fP@@ -12,7 +12,7 @@ The files will have names starting with "unused." .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-addurl.1 view
@@ -1,6 +1,6 @@ .TH git-annex-addurl 1 .SH NAME-git\-annex addurl \- add urls to annex+git-annex addurl \- add urls to annex .PP .SH SYNOPSIS git annex addurl \fB[url ...]\fP@@ -49,7 +49,7 @@ two parts of the url. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-assistant.1 view
@@ -1,6 +1,6 @@ .TH git-annex-assistant 1 .SH NAME-git\-annex assistant \- automatically sync changes+git-annex assistant \- automatically sync changes .PP .SH SYNOPSIS git annex assistant@@ -9,14 +9,14 @@ Watches for changes to files in the current directory and its subdirectories, and automatically syncs them to other remotes. .PP-For more details about the git\-annex assistant, see-<https://git\-annex.branchable.com/assistant/>+For more details about the git-annex assistant, see+<https://git-annex.branchable.com/assistant/> .PP .SH OPTIONS .IP "\fB\-\-autostart\fP" .IP Automatically starts the assistant running in each repository listed-in the file \fB~/.config/git\-annex/autostart\fP+in the file \fB~/.config/git-annex/autostart\fP .IP This is typically started at boot, or when you log in. .IP@@ -31,7 +31,7 @@ Stop a running daemon. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-checkpresentkey.1 view
@@ -1,6 +1,6 @@ .TH git-annex-checkpresentkey 1 .SH NAME-git\-annex checkpresentkey \- check if key is present in remote+git-annex checkpresentkey \- check if key is present in remote .PP .SH SYNOPSIS git annex \fBkey remote\fP@@ -14,7 +14,7 @@ exit code 100 is used, and an error message is output to stderr. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-contentlocation.1 view
@@ -1,6 +1,6 @@ .TH git-annex-contentlocation 1 .SH NAME-git\-annex contentlocation \- looks up content for a key+git-annex contentlocation \- looks up content for a key .PP .SH SYNOPSIS git annex contentlocation \fB[key ...]\fP@@ -12,10 +12,10 @@ .PP 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.+could become modified at any time after git-annex checks it. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-copy.1 view
@@ -1,6 +1,6 @@ .TH git-annex-copy 1 .SH NAME-git\-annex copy \- copy content of files to/from another repository+git-annex copy \- copy content of files to/from another repository .PP .SH SYNOPSIS git annex copy \fB[path ...] [\-\-from=remote|\-\-to=remote]\fP@@ -21,7 +21,7 @@ .IP "\fB\-\-auto\fP" Rather than copying all files, only copy files that don't yet have the desired number of copies, or that are preferred content of the-destination repository. See git\-annex\-preferred\-content(1)+destination repository. See git-annex\-preferred\-content(1) .IP .IP "\fB\-\-fast\fP" Avoid contacting the remote to check if it has every file when copying@@ -34,20 +34,20 @@ Rather than specifying a filename or path to copy, this option can be used to copy all available versions of all files. .IP-This is the default behavior when running git\-annex in a bare repository.+This is the default behavior when running git-annex in a bare repository. .IP .IP "\fB\-\-unused\fP"-Operate on files found by last run of git\-annex unused.+Operate on files found by last run of git-annex unused. .IP .IP "\fB\-\-key=keyname\fP" Use this option to move a specified key. .IP .IP "file matching options"-The git\-annex\-matching\-options(1)+The git-annex\-matching\-options(1) can be used to specify files to copy. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-dead.1 view
@@ -1,6 +1,6 @@ .TH git-annex-dead 1 .SH NAME-git\-annex trust \- hide a lost repository+git-annex trust \- hide a lost repository .PP .SH SYNOPSIS git annex dead \fB[repository ...]\fP@@ -13,7 +13,7 @@ description, or their UUID. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-describe.1 view
@@ -1,6 +1,6 @@ .TH git-annex-describe 1 .SH NAME-git\-annex describe \- change description of a repository+git-annex describe \- change description of a repository .PP .SH SYNOPSIS git annex describe repository description@@ -12,12 +12,12 @@ by uuid. To change the description of the current repository, use "here". .PP-Repository descriptions are displayed by git\-annex in various places.-They are most useful when git\-annex knows about a repository, but there is+Repository descriptions are displayed by git-annex in various places.+They are most useful when git-annex knows about a repository, but there is no git remote corresponding to it. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-diffdriver.1 view
@@ -1,6 +1,6 @@ .TH git-annex-diffdriver 1 .SH NAME-git\-annex diffdriver \- external git diff driver shim+git-annex diffdriver \- external git diff driver shim .PP .SH SYNOPSIS git annex diffdriver \fB\-\- cmd \-\-opts \-\-\fP@@ -12,15 +12,15 @@ smart diffing of their contents. This command works around the problem, by passing the fixed up files to the real external diff driver. .PP-To use, just configure git to use "git\-annex diffdriver \-\- cmd params \-\-"+To use, just configure git to use "git-annex diffdriver \-\- cmd params \-\-" as the external diff command, where cmd is the real external diff command you want to use, and params are any extra parameters to pass to it. Note the trailing "\-\-", which is required. .PP-For example, set \fBGIT_EXTERNAL_DIFF=git\-annex diffdriver \-\- j\-c\-diff \-\-\fP+For example, set \fBGIT_EXTERNAL_DIFF=git-annex diffdriver \-\- j\-c\-diff \-\-\fP .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-direct.1 view
@@ -1,6 +1,6 @@ .TH git-annex-direct 1 .SH NAME-git\-annex direct \- switch repository to direct mode+git-annex direct \- switch repository to direct mode .PP .SH SYNOPSIS git annex direct@@ -16,7 +16,7 @@ commands. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-drop.1 view
@@ -1,6 +1,6 @@ .TH git-annex-drop 1 .SH NAME-git\-annex drop \- indicate content of files not currently wanted+git-annex drop \- indicate content of files not currently wanted .PP .SH SYNOPSIS git annex drop \fB[path ...]\fP@@ -9,7 +9,7 @@ Drops the content of annexed files from this repository, when possible. .PP-git\-annex will refuse to drop content if it cannot verify it is+git-annex will refuse to drop content if it cannot verify it is safe to do so. .PP .SH OPTIONS@@ -22,20 +22,20 @@ .IP "\fB\-\-auto\fP" Rather than trying to drop all specified files, drop only files that are not preferred content of the repository.-See git\-annex\-preferred\-content(1)+See git-annex\-preferred\-content(1) .IP .IP "\fB\-\-force\fP" Use this option with care! It bypasses safety checks, and forces-git\-annex to delete the content of the specified files, even from+git-annex to delete the content of the specified files, even from the last repository that is storing their content. Data loss can result from using this option. .IP .IP "file matching options"-The git\-annex\-matching\-options(1)+The git-annex\-matching\-options(1) can be used to specify files to drop. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-dropkey.1 view
@@ -1,6 +1,6 @@ .TH git-annex-dropkey 1 .SH NAME-git\-annex dropkey \- drops annexed content for specified keys+git-annex dropkey \- drops annexed content for specified keys .PP .SH SYNOPSIS git annex dropkey \fB[key ...]\fP@@ -17,7 +17,7 @@ exist; using it can easily result in data loss. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-dropunused.1 view
@@ -1,6 +1,6 @@ .TH git-annex-dropunused 1 .SH NAME-git\-annex dropunused \- drop unused file content+git-annex dropunused \- drop unused file content .PP .SH SYNOPSIS git annex dropunused \fB[number|range ...]\fP@@ -20,12 +20,12 @@ .IP .IP "\fB\-\-force\fP" Use this option with care! It bypasses safety checks, and forces-git\-annex to delete the content of the specified files, even from+git-annex to delete the content of the specified files, even from the last repository that is storing their content. Data loss can result from using this option. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-edit.1 view
@@ -1,12 +1,12 @@ .TH git-annex-edit 1 .SH NAME-git\-annex unlock \- unlock files for modification+git-annex unlock \- unlock files for modification .PP .SH SYNOPSIS git annex edit \fB[path ...]\fP .PP .SH DESCRIPTION-This is an alias for the \fBunlock\fP command; see git\-annex\-unlock(1)+This is an alias for the \fBunlock\fP command; see git-annex\-unlock(1) for details. .PP .SH AUTHOR
man/git-annex-enableremote.1 view
@@ -1,6 +1,6 @@ .TH git-annex-enableremote 1 .SH NAME-git\-annex enableremote \- enables use of an existing special remote+git-annex enableremote \- enables use of an existing special remote .PP .SH SYNOPSIS git annex enableremote \fBname [param=value ...]\fP@@ -44,7 +44,7 @@ make little sense except in cases like the revoked key example above. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-examinekey.1 view
@@ -1,6 +1,6 @@ .TH git-annex-examinekey 1 .SH NAME-git\-annex examinekey \- prints information from a key+git-annex examinekey \- prints information from a key .PP .SH SYNOPSIS git annex examinekey \fB[key ...]\fP@@ -27,7 +27,7 @@ .IP .IP "\fB\-\-json\fP" Enable JSON output. This is intended to be parsed by programs that use-git\-annex. Each line of output is a JSON object.+git-annex. Each line of output is a JSON object. .IP .SH EXAMPLES The location a key's value is stored (in indirect mode)@@ -36,7 +36,7 @@ git annex examinekey $KEY \-\-format='.git/annex/objects/${hashdirmixed}${key}/${key}' .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-expire.1 view
@@ -1,6 +1,6 @@ .TH git-annex-expire 1 .SH NAME-git\-annex expire \- expire inactive repositories+git-annex expire \- expire inactive repositories .PP .SH SYNOPSIS git annex expire \fB[repository:]time ...\fP@@ -29,7 +29,7 @@ .SH OPTIONS .IP "\fB\-\-no\-act\fP" .IP-Print out what would be done, but not not actually expite or unexpire+Print out what would be done, but not not actually expire or unexpire any repositories. .IP .IP "\fB\-\-activity=Name\fP"@@ -40,19 +40,19 @@ is \fBgit annex fsck\fP. Note that fscking a remote updates the expiration of the remote repository, not the local repository. .IP-The first version of git\-annex that recorded fsck activity was+The first version of git-annex that recorded fsck activity was 5.20150405. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP-git\-annex\-fsck(1)+git-annex\-fsck(1) .PP-git\-annex\-schedule(1)+git-annex\-schedule(1) .PP-git\-annex\-dead(1)+git-annex\-dead(1) .PP-git\-annex\-semitrust(1)+git-annex\-semitrust(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-find.1 view
@@ -1,6 +1,6 @@ .TH git-annex-find 1 .SH NAME-git\-annex find \- lists available files+git-annex find \- lists available files .PP .SH SYNOPSIS git annex find \fB[path ...]\fP@@ -34,10 +34,10 @@ Output the list of files in JSON format. .IP This is intended to be parsed by programs that use-git\-annex. Each line of output is a JSON object.+git-annex. Each line of output is a JSON object. .IP .IP "matching options"-The git\-annex\-matching\-options(1)+The git-annex\-matching\-options(1) can be used to specify files to list. .IP By default, the find command only lists annexed files whose content is@@ -49,7 +49,7 @@ To list annexed files whose content is not present, specify \fB\-\-not \-\-in=here\fP .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-findref.1 view
@@ -1,20 +1,20 @@ .TH git-annex-findref 1 .SH NAME-git\-annex findref \- lists files in a git ref+git-annex findref \- lists files in a git ref .PP .SH SYNOPSIS git annex findref \fB[ref]\fP .PP .SH DESCRIPTION-This is very similar to the \fBgit\-annex find\fP command, but instead of+This is very similar to the \fBgit-annex find\fP command, but instead of finding files in the current work tree, it finds files in the specified git ref. .PP .SH OPTIONS-Same as git\-annex\-find(1)+Same as git-annex\-find(1) .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-fix.1 view
@@ -1,6 +1,6 @@ .TH git-annex-fix 1 .SH NAME-git\-annex fix \- fix up symlinks to point to annexed content+git-annex fix \- fix up symlinks to point to annexed content .PP .SH SYNOPSIS git annex fix \fB[path ...]\fP@@ -15,11 +15,11 @@ .SH OPTIONS .IP "file matching options" .IP-The git\-annex\-matching\-options(1)+The git-annex\-matching\-options(1) can be used to specify files to fix. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-forget.1 view
@@ -1,22 +1,22 @@ .TH git-annex-forget 1 .SH NAME-git\-annex forget \- prune git\-annex branch history+git-annex forget \- prune git-annex branch history .PP .SH SYNOPSIS git annex forget .PP .SH DESCRIPTION-Causes the git\-annex branch to be rewritten, throwing away historical+Causes the git-annex branch to be rewritten, throwing away historical data about past locations of files. The resulting branch will use less space, but \fBgit annex log\fP will not be able to show where files used to be located. .PP When this rewritten branch is merged into other clones of-the repository, \fBgit\-annex\fP will automatically perform the same rewriting-to their local \fBgit\-annex\fP branches. So the forgetfulness will automatically+the repository, \fBgit-annex\fP will automatically perform the same rewriting+to their local \fBgit-annex\fP branches. So the forgetfulness will automatically propagate out from its starting point until all repositories running-git\-annex have forgotten their old history. (You may need to force-git to push the branch to any git repositories not running git\-annex.)+git-annex have forgotten their old history. (You may need to force+git to push the branch to any git repositories not running git-annex.) .PP .SH OPTIONS .IP "\fB\-\-drop\-dead\fP"@@ -24,7 +24,7 @@ Also prune references to repositories that have been marked as dead. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-fromkey.1 view
@@ -1,6 +1,6 @@ .TH git-annex-fromkey 1 .SH NAME-git\-annex fromkey \- adds a file using a specific key+git-annex fromkey \- adds a file using a specific key .PP .SH SYNOPSIS git annex fromkey \fB[key file]\fP@@ -11,16 +11,16 @@ .PP If the key and file are not specified on the command line, they are instead read from stdin. Any number of lines can be provided in this-mode, each containing a key and filename, sepearated by a single space.+mode, each containing a key and filename, separated by a single space. .PP .SH OPTIONS .IP "\fB\-\-force\fP" .IP Allow making a file link to a key whose content is not in the local-repository. The key may not be known to git\-annex at all. +repository. The key may not be known to git-annex at all. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-fsck.1 view
@@ -1,6 +1,6 @@ .TH git-annex-fsck 1 .SH NAME-git\-annex fsck \- check for problems+git-annex fsck \- check for problems .PP .SH SYNOPSIS git annex fsck \fB[path ...]\fP@@ -56,21 +56,21 @@ Normally only the files in the currently checked out branch are fscked. This option causes all versions of all files to be fscked. .IP-This is the default behavior when running git\-annex in a bare repository.+This is the default behavior when running git-annex in a bare repository. .IP .IP "\fB\-\-unused\fP"-Operate on files found by last run of git\-annex unused.+Operate on files found by last run of git-annex unused. .IP .IP "\fB\-\-key=keyname\fP" Use this option to fsck a specified key. .IP .IP "file matching options"-The git\-annex\-matching\-options(1)+The git-annex\-matching\-options(1) can be used to specify files to fsck. .IP .SH OPTIONS .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-fuzztest.1 view
@@ -1,6 +1,6 @@ .TH git-annex-fuzztest 1 .SH NAME-git\-annex fuzztest \- generates fuzz test files+git-annex fuzztest \- generates fuzz test files .PP .SH SYNOPSIS git annex fuzztest@@ -11,7 +11,7 @@ do anything unless \-\-forced. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-get.1 view
@@ -1,6 +1,6 @@ .TH git-annex-get 1 .SH NAME-git\-annex get \- make content of annexed files available+git-annex get \- make content of annexed files available .PP .SH SYNOPSIS git annex get \fB[path ...]\fP@@ -15,32 +15,32 @@ .IP Rather than getting all files, get only files that don't yet have the desired number of copies, or that are preferred content of the-repository. See git\-annex\-preferred\-content(1)+repository. See git-annex\-preferred\-content(1) .IP .IP "\fB\-\-from=remote\fP"-Normally git\-annex will choose which remotes to get the content+Normally git-annex will choose which remotes to get the content from. Use this option to specify which remote to use. .IP .IP "\fB\-\-all\fP" Rather than specifying a filename or path to get, this option can be used to get all available versions of all files. .IP-This is the default behavior when running git\-annex in a bare repository.+This is the default behavior when running git-annex in a bare repository. .IP .IP "\fB\-\-unused\fP"-Operate on files found by last run of git\-annex unused.+Operate on files found by last run of git-annex unused. .IP .IP "\fB\-\-key=keyname\fP" Use this option to get a specified key. .IP .IP "file matching options"-The git\-annex\-matching\-options(1)+The git-annex\-matching\-options(1) can be used to specify files to get. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP-git\-annex\-drop(1)+git-annex\-drop(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-group.1 view
@@ -1,6 +1,6 @@ .TH git-annex-group 1 .SH NAME-git\-annex group \- add a repository to a group+git-annex group \- add a repository to a group .PP .SH SYNOPSIS git annex group \fBrepository groupname\fP@@ -12,12 +12,12 @@ Omit the groupname to show the current groups that a repository is in. .PP There are some standard groups that have different default preferred content-settings. See <https://git\-annex.branchable.com/preferred_content/standard_groups/>+settings. See <https://git-annex.branchable.com/preferred_content/standard_groups/> .PP A repository can be in multiple groups at the same time. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-groupwanted.1 view
@@ -1,6 +1,6 @@ .TH git-annex-groupwanted 1 .SH NAME-git\-annex groupwanted \- get or set groupwanted expression+git-annex groupwanted \- get or set groupwanted expression .PP .SH SYNOPSIS git annex groupwanted \fBgroupname [expression]\fP@@ -20,7 +20,7 @@ done .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-import.1 view
@@ -1,6 +1,6 @@ .TH git-annex-import 1 .SH NAME-git\-annex import \- move and add files from outside git working copy+git-annex import \- move and add files from outside git working copy .PP .SH SYNOPSIS git annex import \fB[path ...]\fP@@ -13,8 +13,8 @@ git annex import /media/camera/DCIM/* .PP When importing files, there's a possibility of importing a duplicate-of a file that is already known to git\-annex \-\- its content is either-present in the local repository already, or git\-annex knows of anther+of a file that is already known to git-annex \-\- its content is either+present in the local repository already, or git-annex knows of anther repository that contains it. .PP By default, importing a duplicate of a known file will result in@@ -47,7 +47,7 @@ that are duplicates are deleted. .IP .IP "file matching options"-Many of the git\-annex\-matching\-options(1)+Many of the git-annex\-matching\-options(1) can be used to specify files to import. .IP git annex import /dir \-\-include='*.png'@@ -57,7 +57,7 @@ backend does not look at file content, but filename and mtime. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-importfeed.1 view
@@ -1,6 +1,6 @@ .TH git-annex-importfeed 1 .SH NAME-git\-annex importfeed \- import files from podcast feeds+git-annex importfeed \- import files from podcast feeds .PP .SH SYNOPSIS git annex importfeed \fB[url ...]\fP@@ -31,10 +31,10 @@ Other available variables for templates: feedauthor, itemauthor, itemsummary, itemdescription, itemrights, itemid, itempubdate, title, author .IP .IP "\fB\-\-relaxed\fP, \fB\-\-fast\fP, \fB\-\-raw\fP, \fB\-\-template\fP"-These options behave the same as when using git\-annex\-addurl(1).+These options behave the same as when using git-annex\-addurl(1). .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-indirect.1 view
@@ -1,6 +1,6 @@ .TH git-annex-indirect 1 .SH NAME-git\-annex indirect \- switch repository to indirect mode+git-annex indirect \- switch repository to indirect mode .PP .SH SYNOPSIS git annex indirect@@ -9,12 +9,12 @@ Switches a repository back from direct mode to the default, indirect mode. .PP-Some systems cannot support git\-annex in indirect mode, because they+Some systems cannot support git-annex in indirect mode, because they do not support symbolic links. Repositories on such systems instead default to using direct mode. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-info.1 view
@@ -1,6 +1,6 @@ .TH git-annex-info 1 .SH NAME-git\-annex info \- shows information about the specified item or the repository as a whole+git-annex info \- shows information about the specified item or the repository as a whole .PP .SH SYNOPSIS git annex info \fB[directory|file|remote|uuid ...]\fP@@ -20,10 +20,13 @@ .IP .IP "\fB\-\-json\fP" Enable JSON output. This is intended to be parsed by programs that use-git\-annex. Each line of output is a JSON object.+git-annex. Each line of output is a JSON object. .IP+.IP "\fB\-\-bytes\fP"+Show file sizes in bytes, disabling the default nicer units.+.IP .IP "file matching options"-When a directory is specified, the git\-annex\-matching\-options(1)+When a directory is specified, the git-annex\-matching\-options(1) can be used to select the files in the directory that are included in the statistics. .IP@@ -35,7 +38,7 @@ git annex info \-\-fast . \-\-not \-\-in here .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-init.1 view
@@ -1,13 +1,13 @@ .TH git-annex-init 1 .SH NAME-git\-annex init \- initialize git\-annex+git-annex init \- initialize git-annex .PP .SH SYNOPSIS git annex init \fB[description]\fP .PP .SH DESCRIPTION Until a repository (or one of its remotes) has been initialized,-git\-annex will refuse to operate on it, to avoid accidentally+git-annex will refuse to operate on it, to avoid accidentally using it in a repository that was not intended to have an annex. .PP It's useful, but not mandatory, to initialize each new clone@@ -15,7 +15,7 @@ one will be generated using the username, hostname and the path. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-initremote.1 view
@@ -1,6 +1,6 @@ .TH git-annex-initremote 1 .SH NAME-git\-annex initremote \- creates a special (non\-git) remote+git-annex initremote \- creates a special (non\-git) remote .PP .SH SYNOPSIS git annex initremote \fBname type=value [param=value ...]\fP@@ -12,8 +12,8 @@ .PP git annex initremote mys3 type=S3 encryption=hybrid keyid=me@example.com datacenter=EU .PP-Many different types of special remotes are supported by git\-annex.-For a list and details, see <https://git\-annex.branchable.com/special_remotes/>+Many different types of special remotes are supported by git-annex.+For a list and details, see <https://git-annex.branchable.com/special_remotes/> .PP The remote's configuration is specified by the parameters passed to this command. Different types of special remotes need different@@ -44,7 +44,7 @@ randomness. (Ie, /dev/urandom instead of /dev/random) .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-list.1 view
@@ -1,6 +1,6 @@ .TH git-annex-list 1 .SH NAME-git\-annex list \- show which remotes contain files+git-annex list \- show which remotes contain files .PP .SH SYNOPSIS git annex list \fB[path ...]\fP@@ -16,11 +16,11 @@ adds all known repositories to the list. .IP .IP "file matching options"-The git\-annex\-matching\-options(1)+The git-annex\-matching\-options(1) can be used to specify files to list. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-lock.1 view
@@ -1,6 +1,6 @@ .TH git-annex-lock 1 .SH NAME-git\-annex lock \- unco unlock command+git-annex lock \- undo unlock command .PP .SH SYNOPSIS git annex lock \fB[path ...]\fP@@ -12,11 +12,11 @@ .SH OPTIONS .IP "file matching options" .IP-The git\-annex\-matching\-options(1)+The git-annex\-matching\-options(1) can be used to specify files to lock. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-log.1 view
@@ -1,6 +1,6 @@ .TH git-annex-log 1 .SH NAME-git\-annex log \- shows location log+git-annex log \- shows location log .PP .SH SYNOPSIS git annex log \fB[path ...]\fP@@ -21,12 +21,12 @@ Generates output suitable for the \fBgource\fP visualization program. .IP .IP "file matching options"-The git\-annex\-matching\-options(1)+The git-annex\-matching\-options(1) can be used to specify files to act on. .IP .SH OPTIONS .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-lookupkey.1 view
@@ -1,6 +1,6 @@ .TH git-annex-lookupkey 1 .SH NAME-git\-annex lookupkey \- looks up key used for file+git-annex lookupkey \- looks up key used for file .PP .SH SYNOPSIS git annex lookupkey \fB[file ...]\fP@@ -8,11 +8,11 @@ .SH DESCRIPTION This plumbing\-level command looks up the key used for a file in the 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),+the file is not present in the index, or is not a git-annex managed file), nothing is output, and it exits nonzero. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-map.1 view
@@ -1,6 +1,6 @@ .TH git-annex-map 1 .SH NAME-git\-annex map \- generate map of repositories+git-annex map \- generate map of repositories .PP .SH SYNOPSIS git annex map@@ -19,7 +19,7 @@ it several times as the map is being built. .PP Note that this subcommand can be used to graph any git repository; it-is not limited to git\-annex repositories.+is not limited to git-annex repositories. .PP .SH OPTIONS .IP "\fB\-\-fast\fP"@@ -27,7 +27,7 @@ Disable using \fBdot\fP to display the generated Graphviz file. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-matching-options.1 view
@@ -1,9 +1,9 @@ .TH git-annex-matching-options 1 .SH NAME-git\-annex\-matching\-options \- specifying files to act on+git-annex\-matching\-options \- specifying files to act on .PP .SH DESCRIPTION-Many git\-annex commands support using these options to specify which+Many git-annex commands support using these options to specify which files they act on. .PP Arbitrarily complicated expressions can be built using these options.@@ -11,7 +11,7 @@ .PP \-\-exclude '*.mp3' \-\-and \-\-not \-( \-\-in=usbdrive \-\-or \-\-in=archive \-) .PP-The above example prevents git\-annex from working on mp3 files whose+The above example prevents git-annex from working on mp3 files whose file contents are present at either of two repositories. .PP .SH OPTIONS@@ -33,7 +33,7 @@ Note that this will not skip anything when using \-\-all or \-\-unused. .IP .IP "\fB\-\-in=repository\fP"-Matches only files that git\-annex believes have their contents present+Matches only files that git-annex believes have their contents present in a repository. Note that it does not check the repository to verify that it still has the content. .IP@@ -54,12 +54,12 @@ using \fBgit annex get . \-\-in=here@{yesterday}\fP .IP .IP "\fB\-\-copies=number\fP"-Matches only files that git\-annex believes to have the specified number+Matches only files that git-annex believes to have the specified number of copies, or more. Note that it does not check remotes to verify that the copies still exist. .IP .IP "\fB\-\-copies=trustlevel:number\fP"-Matches only files that git\-annex believes have the specified number of+Matches only files that git-annex believes have the specified number of copies, on remotes with the specified trust level. For example, \fB\-\-copies=trusted:2\fP .IP@@ -67,12 +67,12 @@ use 'trustlevel+'. For example, \fB\-\-copies=semitrusted+:2\fP .IP .IP "\fB\-\-copies=groupname:number\fP"-Matches only files that git\-annex believes have the specified number of+Matches only files that git-annex believes have the specified number of copies, on remotes in the specified group. For example, \fB\-\-copies=archive:2\fP .IP .IP "\fB\-\-lackingcopies=number\fP"-Matches only files that git\-annex believes need the specified number or +Matches only files that git-annex believes need the specified number or more additional copies to be made in order to satisfy their numcopies settings. .IP@@ -85,7 +85,7 @@ backend. .IP .IP "\fB\-\-inallgroup=groupname\fP"-Matches only files that git\-annex believes are present in all repositories+Matches only files that git-annex believes are present in all repositories in the specified group. .IP .IP "\fB\-\-smallerthan=size\fP"@@ -133,7 +133,7 @@ Closes a group of matching options. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-merge.1 view
@@ -1,6 +1,6 @@ .TH git-annex-merge 1 .SH NAME-git\-annex merge \- automatically merge changes from remotes+git-annex merge \- automatically merge changes from remotes .PP .SH SYNOPSIS git annex merge@@ -15,7 +15,7 @@ working copy automatically. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-metadata.1 view
@@ -1,6 +1,6 @@ .TH git-annex-metadata 1 .SH NAME-git\-annex metadata \- sets or gets metadata of a file+git-annex metadata \- sets or gets metadata of a file .PP .SH SYNOPSIS git annex metadata \fB[path ...]\fP@@ -47,12 +47,12 @@ setting. .IP .IP "file matching options"-The git\-annex\-matching\-options(1)+The git-annex\-matching\-options(1) can be used to specify files to act on. .IP .IP "\fB\-\-json\fP" Enable JSON output. This is intended to be parsed by programs that use-git\-annex. Each line of output is a JSON object.+git-annex. Each line of output is a JSON object. .IP .SH EXAMPLES To set some tags on a file and also its author:@@ -60,7 +60,7 @@ git annex metadata annexscreencast.ogv \-t video \-t screencast \-s author+=Alice .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-migrate.1 view
@@ -1,6 +1,6 @@ .TH git-annex-migrate 1 .SH NAME-git\-annex migrate \- switch data to different backend+git-annex migrate \- switch data to different backend .PP .SH SYNOPSIS git annex migrate \fB[path ...]\fP@@ -29,11 +29,11 @@ Force migration of keys that are already using the new backend. .IP .IP "file matching options"-The git\-annex\-matching\-options(1)+The git-annex\-matching\-options(1) can be used to specify files to migrate. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-mirror.1 view
@@ -1,6 +1,6 @@ .TH git-annex-mirror 1 .SH NAME-git\-annex mirror \- mirror content of files to/from another repository+git-annex mirror \- mirror content of files to/from another repository .PP .SH SYNOPSIS git annex mirror \fB[path ...] [\-\-to=remote|\-\-from=remote]\fP@@ -34,14 +34,14 @@ However, this bypasses checking the .gitattributes annex.numcopies setting when dropping files. .IP-This is the default behavior when running git\-annex in a bare repository.+This is the default behavior when running git-annex in a bare repository. .IP .IP "file matching options"-The git\-annex\-matching\-options(1)+The git-annex\-matching\-options(1) can be used to specify files to mirror. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-move.1 view
@@ -1,6 +1,6 @@ .TH git-annex-move 1 .SH NAME-git\-annex move \- move content of files to/from another repository+git-annex move \- move content of files to/from another repository .PP .SH SYNOPSIS git annex move \fB[path ...] [\-\-from=remote|\-\-to=remote]\fP@@ -22,20 +22,20 @@ Rather than specifying a filename or path to move, this option can be used to move all available versions of all files. .IP-This is the default behavior when running git\-annex in a bare repository.+This is the default behavior when running git-annex in a bare repository. .IP .IP "\fB\-\-unused\fP"-Operate on files found by last run of git\-annex unused.+Operate on files found by last run of git-annex unused. .IP .IP "\fB\-\-key=keyname\fP" Use this option to move a specified key. .IP .IP "file matching options"-The git\-annex\-matching\-options(1)+The git-annex\-matching\-options(1) can be used to specify files to move. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-numcopies.1 view
@@ -1,17 +1,17 @@ .TH git-annex-numcopies 1 .SH NAME-git\-annex numcopies \- configure desired number of copies+git-annex numcopies \- configure desired number of copies .PP .SH SYNOPSIS git annex numcopies \fBN\fP .PP .SH DESCRIPTION-Tells git\-annex how many copies it should preserve of files, over all+Tells git-annex how many copies it should preserve of files, over all repositories. The default is 1. .PP Run without a number to get the current value. .PP-When git\-annex is asked to drop a file, it first verifies that the+When git-annex is asked to drop a file, it first verifies that the required number of copies can be satisfied among all the other repositories that have a copy of the file. .PP@@ -19,7 +19,7 @@ in .gitattributes files. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-pre-commit.1 view
@@ -1,6 +1,6 @@ .TH git-annex-pre-commit 1 .SH NAME-git\-annex pre\-commit \- run by git pre\-commit hook+git-annex pre\-commit \- run by git pre\-commit hook .PP .SH SYNOPSIS git annex \fB[path ...]\fP@@ -15,7 +15,7 @@ made to files in the view. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-preferred-content.1 view
@@ -1,47 +1,54 @@ .TH git-annex-preferred-content 1 .SH NAME-git\-annex\-preferred\-content \- +git-annex\-preferred\-content \- .PP .SH DESCRIPTION Each repository has a preferred content setting, which specifies content that the repository wants to have present. These settings can be configured using \fBgit annex vicfg\fP or \fBgit annex wanted\fP. They are used by the \fB\-\-auto\fP option, by \fBgit annex sync \-\-content\fP,-and by the git\-annex assistant.+and by the git-annex assistant. .PP+While preferred content expresses a preference, it can be overridden+by simply using \fBgit annex drop\fP. On the other hand, required content+settings are enforced; \fBgit annex drop\fP will refuse to drop a file if+doing so would violate its required content settings. A repository's+required content can be configured using \fBgit annex vicfg\fP or+\fBgit annex required\fP.+.PP Preferred content expressions are similar, but not identical to-the git\-annex\-matching\-options(1), just without the dashes.+the git-annex\-matching\-options(1), just without the dashes. For example: .PP exclude=archive/* and (include=*.mp3 or smallerthan=1mb) .PP The main differences are that \fBexclude=\fP and \fBinclude=\fP always match relative to the top of the git repository, and that there is-no equivilant to \fB\-\-in\fP.+no equivalent to \fB\-\-in\fP. .PP For more details about preferred content expressions, see-See <https://git\-annex.branchable.com/preferred_content/>+See <https://git-annex.branchable.com/preferred_content/> .PP When a repository is in one of the standard predefined groups, like "backup" and "client", setting its preferred content to "standard" will use a built\-in preferred content expression developed for that group. -See <https://git\-annex.branchable.com/preferred_content/standard_groups/>+See <https://git-annex.branchable.com/preferred_content/standard_groups/> .PP If you have set a groupwanted expression for a group, it will be used when a repository in the group has its preferred content set to "groupwanted". .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP-git\-annex\-vicfg(1)+git-annex\-vicfg(1) .PP-git\-annex\-wanted(1)+git-annex\-wanted(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name> .PP-<http://git\-annex.branchable.com/>+<http://git-annex.branchable.com/> .PP .PP
man/git-annex-proxy.1 view
@@ -1,6 +1,6 @@ .TH git-annex-proxy 1 .SH NAME-git\-annex proxy \- safely bypass direct mode guard+git-annex proxy \- safely bypass direct mode guard .PP .SH SYNOPSIS git annex proxy \fB\-\- git cmd [options]\fP@@ -24,9 +24,9 @@ git annex proxy \-\- git mv mydir newname .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP-git\-annex\-direct(1)+git-annex\-direct(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-readpresentkey.1 view
@@ -1,13 +1,13 @@ .TH git-annex-readpresentkey 1 .SH NAME-git\-annex readpresentkey \- read records of where key is present+git-annex readpresentkey \- read records of where key is present .PP .SH SYNOPSIS git annex readpresentkey \fBkey uuid\fP .PP .SH DESCRIPTION-This plumbing\-level command reads git\-annex's records about whether-the specified key's content is present in the remote with the speficied+This plumbing\-level command reads git-annex's records about whether+the specified key's content is present in the remote with the specified uuid. .PP It exits 0 if the key is recorded to be present and 1 if not.@@ -16,7 +16,7 @@ is present. To do such a check, use checkpresentkey(1) .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-registerurl.1 view
@@ -1,6 +1,6 @@ .TH git-annex-registerurl 1 .SH NAME-git\-annex registerurl \- registers an url for a key+git-annex registerurl \- registers an url for a key .PP .SH SYNOPSIS git annex registerurl \fB[key url]\fP@@ -16,7 +16,7 @@ mode, each containing a key and url, separated by a single space. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-reinit.1 view
@@ -1,6 +1,6 @@ .TH git-annex-reinit 1 .SH NAME-git\-annex reinit \- initialize repository, reusing old UUID+git-annex reinit \- initialize repository, reusing old UUID .PP .SH SYNOPSIS git annex reinit \fBuuid|description\fP@@ -16,7 +16,7 @@ a fsck. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-reinject.1 view
@@ -1,6 +1,6 @@ .TH git-annex-reinject 1 .SH NAME-git\-annex reinject \- sets content of annexed file+git-annex reinject \- sets content of annexed file .PP .SH SYNOPSIS git annex reinject \fBsrc dest\fP@@ -20,7 +20,7 @@ git annex reinject /tmp/foo.iso foo.iso .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-rekey.1 view
@@ -1,6 +1,6 @@ .TH git-annex-rekey 1 .SH NAME-git\-annex rekey \- change keys used for files+git-annex rekey \- change keys used for files .PP .SH SYNOPSIS git annex rekey \fB[file key ...]\fP@@ -19,7 +19,7 @@ .IP .SH OPTIONS .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-remotedaemon.1 view
@@ -1,6 +1,6 @@ .TH git-annex-remotedaemon 1 .SH NAME-git\-annex remotedaemon \- detects when remotes have changed, and fetches from them+git-annex remotedaemon \- detects when remotes have changed, and fetches from them .PP .SH SYNOPSIS git annex remotedaemon@@ -10,19 +10,19 @@ when remotes have received git pushes, so the changes can be promptly fetched and the local repository updated. .PP-This is a better alternative to the git\-annex\-xmppgit(1)+This is a better alternative to the git-annex\-xmppgit(1) hack. .PP For the remotedaemon to work, the git remote must have-git\-annex\-shell(1) installed, with notifychanges support.-The first version of git\-annex\-shell that supports it is 5.20140405.+git-annex\-shell(1) installed, with notifychanges support.+The first version of git-annex\-shell that supports it is 5.20140405. .PP It's normal for this process to be running when the assistant is running. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP-git\-annex\-assistant(1)+git-annex\-assistant(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-repair.1 view
@@ -1,6 +1,6 @@ .TH git-annex-repair 1 .SH NAME-git\-annex repair \- recover broken git repository+git-annex repair \- recover broken git repository .PP .SH SYNOPSIS git annex repair@@ -8,12 +8,12 @@ .SH DESCRIPTION This can repair many of the problems with git repositories that \fBgit fsck\fP detects, but does not itself fix. It's useful if a repository has become-badly damaged. One way this can happen is if a repository used by git\-annex+badly damaged. One way this can happen is if a repository used by git-annex is on a removable drive that gets unplugged at the wrong time. .PP This command can actually be used inside git repositories that do not-use git\-annex at all; when used in a repository using git\-annex, it-does additional repairs of the git\-annex branch.+use git-annex at all; when used in a repository using git-annex, it+does additional repairs of the git-annex branch. .PP It works by deleting any corrupt objects from the git repository, and retrieving all missing objects it can from the remotes of the repository.@@ -33,7 +33,7 @@ stash. .PP It is also a good idea to run \fBgit annex fsck \-\-fast\fP after this command,-to make sure that the git\-annex branch reflects reality.+to make sure that the git-annex branch reflects reality. .PP .SH OPTIONS .IP "\fB\-\-force\fP"@@ -42,7 +42,7 @@ lost due to git repository corruption. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
+ man/git-annex-required.1 view
@@ -0,0 +1,26 @@+.TH git-annex-required 1+.SH NAME+git-annex required \- get or set required content expression+.PP+.SH SYNOPSIS+git annex required \fBrepository [expression]\fP+.PP+.SH DESCRIPTION+When run with an expression, configures the content that is required+to be held in the archive. See git-annex\-preferred\-content(1)+.PP+For example:+.PP+ git annex required . "include=*.mp3 or include=*.ogg"+.PP+Without an expression, displays the current required content setting+of the repository.+.PP+.SH SEE ALSO+git-annex(1)+.PP+.SH AUTHOR+Joey Hess <id@joeyh.name>+.PP+.PP+
man/git-annex-resolvemerge.1 view
@@ -1,6 +1,6 @@ .TH git-annex-resolvemerge 1 .SH NAME-git\-annex resolvemerge \- resolve merge conflicts+git-annex resolvemerge \- resolve merge conflicts .PP .SH SYNOPSIS git annex resolvemerge@@ -15,7 +15,7 @@ automatically resolved. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-rmurl.1 view
@@ -1,6 +1,6 @@ .TH git-annex-rmurl 1 .SH NAME-git\-annex rmurl \- record file is not available at url+git-annex rmurl \- record file is not available at url .PP .SH SYNOPSIS git annex rmurl \fBfile url\fP@@ -9,7 +9,7 @@ Record that the file is no longer available at the url. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-schedule.1 view
@@ -1,14 +1,14 @@ .TH git-annex-schedule 1 .SH NAME-git\-annex schedule \- get or set scheduled jobs+git-annex schedule \- get or set scheduled jobs .PP .SH SYNOPSIS git annex schedule \fBrepository [expression]\fP .PP .SH DESCRIPTION-The git\-annex\-assistant(1) daemon can be configured to run scheduled jobs.+The git-annex\-assistant(1) daemon can be configured to run scheduled jobs. This is similar to cron and anacron (and you can use them if you prefer),-but has the advantage of being integrated into git\-annex, and so being able+but has the advantage of being integrated into git-annex, and so being able to e.g., fsck a repository on a removable drive when the drive gets connected. .PP@@ -34,7 +34,7 @@ fsck self 1h every week divisible by 2 at any time .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-semitrust.1 view
@@ -1,6 +1,6 @@ .TH git-annex-semitrust 1 .SH NAME-git\-annex semitrust \- return repository to default trust level+git-annex semitrust \- return repository to default trust level .PP .SH SYNOPSIS git annex semitrust \fB[repository ...]\fP@@ -12,7 +12,7 @@ description, or their UUID. For the current repository, use "here". .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-setpresentkey.1 view
@@ -1,19 +1,19 @@ .TH git-annex-setpresentkey 1 .SH NAME-git\-annex setpresentkey \- change records of where key is present+git-annex setpresentkey \- change records of where key is present .PP .SH SYNOPSIS git annex setpresentkey \fBkey uuid [1|0]\fP .PP .SH DESCRIPTION-This plumbing\-level command changes git\-annex's records about whether+This plumbing\-level command changes git-annex's records about whether the specified key's content is present in a remote with the specified uuid. .PP Use 1 to indicate the key is present, or 0 to indicate the key is not present. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-shell.1 view
@@ -1,12 +1,12 @@ .TH git-annex-shell 1 .SH NAME-git\-annex\-shell \- Restricted login shell for git\-annex only SSH access+git-annex\-shell \- Restricted login shell for git-annex only SSH access .PP .SH SYNOPSIS-git\-annex\-shell [\-c] command [params ...]+git-annex\-shell [\-c] command [params ...] .PP .SH DESCRIPTION-git\-annex\-shell is a restricted shell, similar to git\-shell, which+git-annex\-shell is a restricted shell, similar to git\-shell, which can be used as a login shell for SSH accounts. .PP Since its syntax is identical to git\-shell's, it can be used as a drop\-in@@ -26,7 +26,7 @@ repository. .IP When run in a repository that does not yet have an annex.uuid, one-will be created, as long as a git\-annex branch has already been pushed to+will be created, as long as a git-annex branch has already been pushed to the repository. .IP .IP "inannex directory [key ...]"@@ -52,34 +52,34 @@ that have been received so far. .IP .IP "commit directory"-This commits any staged changes to the git\-annex branch.+This commits any staged changes to the git-annex branch. It also runs the annex\-content hook. .IP .IP "notifychanges"-This is used by \fBgit\-annex remotedaemon\fP to be notified when+This is used by \fBgit-annex remotedaemon\fP to be notified when refs in the remote repository are changed. .IP .IP "gcryptsetup gcryptid" Sets up a repository as a gcrypt repository. .IP .SH OPTIONS-Most options are the same as in git\-annex. The ones specific-to git\-annex\-shell are:+Most options are the same as in git-annex. The ones specific+to git-annex\-shell are: .PP .IP "\-\-uuid=UUID"-git\-annex uses this to specify the UUID of the repository it was expecting-git\-annex\-shell to access, as a sanity check.+git-annex uses this to specify the UUID of the repository it was expecting+git-annex\-shell to access, as a sanity check. .IP .IP "\-\- fields=val fields=val.. \-\-"-Additional fields may be specified this way, to retain compatability with-past versions of git\-annex\-shell (that ignore these, but would choke+Additional fields may be specified this way, to retain compatibility with+past versions of git-annex\-shell (that ignore these, but would choke on new dashed options). .IP Currently used fields include remoteuuid=, associatedfile=, and direct= .IP .SH HOOK-After content is received or dropped from the repository by git\-annex\-shell,+After content is received or dropped from the repository by git-annex\-shell, it runs a hook, \fB.git/hooks/annex\-content\fP (or \fBhooks/annex\-content\fP on a bare repository). The hook is not currently passed any information about what changed.@@ -96,18 +96,18 @@ If set, disallows running git\-shell to handle unknown commands. .IP .IP "GIT_ANNEX_SHELL_DIRECTORY"-If set, git\-annex\-shell will refuse to run commands that do not operate+If set, git-annex\-shell will refuse to run commands that do not operate on the specified directory. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP git\-shell(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name> .PP-<http://git\-annex.branchable.com/>+<http://git-annex.branchable.com/> .PP .PP
man/git-annex-status.1 view
@@ -1,6 +1,6 @@ .TH git-annex-status 1 .SH NAME-git\-annex status \- show the working tree status+git-annex status \- show the working tree status .PP .SH SYNOPSIS git annex status \fB[path ...]\fP@@ -16,10 +16,10 @@ .IP "\fB\-\-json\fP" .IP Enable JSON output. This is intended to be parsed by programs that use-git\-annex. Each line of output is a JSON object.+git-annex. Each line of output is a JSON object. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-sync.1 view
@@ -1,6 +1,6 @@ .TH git-annex-sync 1 .SH NAME-git\-annex sync \- synchronize local repository with remotes+git-annex sync \- synchronize local repository with remotes .PP .SH SYNOPSIS git annex sync \fB[remote ...]\fP@@ -13,7 +13,7 @@ .PP The sync process involves first committing any local changes to files that have previously been added to the repository,-then fetching and merging the \fBsynced/master\fP and the \fBgit\-annex\fP branch+then fetching and merging the \fBsynced/master\fP and the \fBgit-annex\fP branch from the remote repositories, and finally pushing the changes back to those branches on the remote repositories. You can use standard git commands to do each of those steps by hand, or if you don't want to@@ -42,13 +42,13 @@ By default, this tries to get each annexed file that the local repository does not yet have, and then copies each file to every remote that it is syncing with. This behavior can be overridden by configuring the preferred-content of a repository. See [git\-annex\-preferred\-content](1)+content of a repository. See [git-annex\-preferred\-content](1) .IP .IP "\fB\-\-message=msg\fP" Use this option to specify a commit message. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-test.1 view
@@ -1,25 +1,25 @@ .TH git-annex-test 1 .SH NAME-git\-annex test \- run built\-in test suite+git-annex test \- run built\-in test suite .PP .SH SYNOPSIS git annex test .PP .SH DESCRIPTION-This runs git\-annex's built\-in test suite.+This runs git-annex's built\-in test suite. .PP The test suite runs in the \fB.t\fP subdirectory of the current directory (it refuses to run if \fB.t\fP already exists). .PP It can be useful to run the test suite on different filesystems,-or to verify your local installation of git\-annex.+or to verify your local installation of git-annex. .PP .SH OPTIONS There are several options, provided by Haskell's tasty test framework. Pass \-\-help for details. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-testremote.1 view
@@ -1,6 +1,6 @@ .TH git-annex-testremote 1 .SH NAME-git\-annex testremote \- test transfers to/from a remote+git-annex testremote \- test transfers to/from a remote .PP .SH SYNOPSIS git annex testremote \fBremote\fP@@ -25,7 +25,7 @@ Tune the base size of the generated objects. The default is 1MiB. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-transferkey.1 view
@@ -1,6 +1,6 @@ .TH git-annex-transferkey 1 .SH NAME-git\-annex transferkey \- transfers a key from or to a remote+git-annex transferkey \- transfers a key from or to a remote .PP .SH SYNOPSIS git annex transferkey \fBkey [\-\-from=remote|\-\-to=remote]\fP@@ -22,7 +22,7 @@ (This name is only used in progress displays.) .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-transferkeys.1 view
@@ -1,6 +1,6 @@ .TH git-annex-transferkeys 1 .SH NAME-git\-annex transferkeys \- transfers keys+git-annex transferkeys \- transfers keys .PP .SH SYNOPSIS git annex transferkeys@@ -15,9 +15,9 @@ running. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP-git\-annex\-assistant(1)+git-annex\-assistant(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-trust.1 view
@@ -1,6 +1,6 @@ .TH git-annex-trust 1 .SH NAME-git\-annex trust \- trust a repository+git-annex trust \- trust a repository .PP .SH SYNOPSIS git annex trust \fB[repository ...]\fP@@ -13,7 +13,7 @@ description, or their UUID. To trust the current repository, use "here". .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-unannex.1 view
@@ -1,6 +1,6 @@ .TH git-annex-unannex 1 .SH NAME-git\-annex unannex \- undo accidental add command+git-annex unannex \- undo accidental add command .PP .SH SYNOPSIS git annex unannex \fB[path ...]\fP@@ -25,11 +25,11 @@ change the content in the annex. .IP .IP "file matching options"-The git\-annex\-matching\-options(1)+The git-annex\-matching\-options(1) can be used to specify files to unannex. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-undo.1 view
@@ -1,6 +1,6 @@ .TH git-annex-undo 1 .SH NAME-git\-annex undo \- undo last change to a file or directory+git-annex undo \- undo last change to a file or directory .PP .SH SYNOPSIS git annex \fB[filename|directory] ...\fP@@ -21,7 +21,7 @@ operates on the file tree committed to git. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-ungroup.1 view
@@ -1,6 +1,6 @@ .TH git-annex-ungroup 1 .SH NAME-git\-annex ungroup \- remove a repository from a group+git-annex ungroup \- remove a repository from a group .PP .SH SYNOPSIS git annex ungroup \fBrepository groupname\fP@@ -9,7 +9,7 @@ Removes a repository from a group. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-uninit.1 view
@@ -1,19 +1,19 @@ .TH git-annex-uninit 1 .SH NAME-git\-annex uninit \- de\-initialize git\-annex and clean out repository+git-annex uninit \- de\-initialize git-annex and clean out repository .PP .SH SYNOPSIS git annex uninit .PP .SH DESCRIPTION Use this to stop using git annex. It will unannex every file in the-repository, and remove all of git\-annex's other data, leaving you with a+repository, and remove all of git-annex's other data, leaving you with a git repository plus the previously annexed files. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP-git\-annex\-unannex(1)+git-annex\-unannex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-unlock.1 view
@@ -1,6 +1,6 @@ .TH git-annex-unlock 1 .SH NAME-git\-annex unlock \- unlock files for modification+git-annex unlock \- unlock files for modification .PP .SH SYNOPSIS git annex unlock \fB[path ...]\fP@@ -15,11 +15,11 @@ .SH OPTIONS .IP "file matching options" .IP-The git\-annex\-matching\-options(1)+The git-annex\-matching\-options(1) can be used to specify files to unlock. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-untrust.1 view
@@ -1,6 +1,6 @@ .TH git-annex-untrust 1 .SH NAME-git\-annex untrust \- do not trust a repository+git-annex untrust \- do not trust a repository .PP .SH SYNOPSIS git annex untrust \fB[repository ...]\fP@@ -13,7 +13,7 @@ description, or their UUID. To untrust the current repository, use "here". .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-unused.1 view
@@ -1,6 +1,6 @@ .TH git-annex-unused 1 .SH NAME-git\-annex unused \- look for unused file content+git-annex unused \- look for unused file content .PP .SH SYNOPSIS git annex unused@@ -10,7 +10,7 @@ in any tag or branch, and prints a numbered list of the data. .PP After running this command, you can use the \fB\-\-unused\fP option with many -other git\-annex commands to operate on all the unused data that was found.+other git-annex commands to operate on all the unused data that was found. .PP For example, to move all unused data to origin: .PP@@ -25,7 +25,7 @@ Check for unused data on a remote. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-upgrade.1 view
@@ -1,6 +1,6 @@ .TH git-annex-upgrade 1 .SH NAME-git\-annex upgrade \- upgrade repository layout+git-annex upgrade \- upgrade repository layout .PP .SH SYNOPSIS git annex upgrade@@ -8,19 +8,19 @@ .SH DESCRIPTION Upgrades the repository to current layout. .PP-Each git\-annex repository has an annex.version in its git configuration,-that indicates the repository version. If git\-annex changes to a new-layout, you must upgrade the repository before git\-annex can be used in it.+Each git-annex repository has an annex.version in its git configuration,+that indicates the repository version. If git-annex changes to a new+layout, you must upgrade the repository before git-annex can be used in it. .PP To see version information, run \fBgit annex version\fP. .PP-Currently, git\-annex supports upgrades all the way back to version 0, which-was only used by its author. It's expected that git\-annex will always+Currently, git-annex supports upgrades all the way back to version 0, which+was only used by its author. It's expected that git-annex will always support upgrading from all past repository versions \-\- this is necessary to allow archives to be taken offline for years and later used. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-vadd.1 view
@@ -1,6 +1,6 @@ .TH git-annex-vadd 1 .SH NAME-git\-annex vadd \- add subdirs to current view+git-annex vadd \- add subdirs to current view .PP .SH SYNOPSIS git annex vadd \fB[field=glob ...] [field=value ...] [tag ...]\fP@@ -16,15 +16,15 @@ to only those two. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP-git\-annex\-view(1)+git-annex\-view(1) .PP-git\-annex\-vpop(1)+git-annex\-vpop(1) .PP-git\-annex\-vfilter(1)+git-annex\-vfilter(1) .PP-git\-annex\-vcycle(1)+git-annex\-vcycle(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-vcycle.1 view
@@ -1,6 +1,6 @@ .TH git-annex-vcycle 1 .SH NAME-git\-annex vcycle \- switch view to next layout+git-annex vcycle \- switch view to next layout .PP .SH SYNOPSIS git annex vcycle@@ -12,15 +12,15 @@ it to author/tag/year. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP-git\-annex\-view(1)+git-annex\-view(1) .PP-git\-annex\-vpop(1)+git-annex\-vpop(1) .PP-git\-annex\-vadd(1)+git-annex\-vadd(1) .PP-git\-annex\-vfilter(1)+git-annex\-vfilter(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-version.1 view
@@ -1,29 +1,29 @@ .TH git-annex-version 1 .SH NAME-git\-annex version \- show version info+git-annex version \- show version info .PP .SH SYNOPSIS git annex version .PP .SH DESCRIPTION-Shows the version of git\-annex, as well as repository version information.+Shows the version of git-annex, as well as repository version information. .PP-git\-annex's version is in the form MAJOR.DATE, where MAJOR is a number+git-annex's version is in the form MAJOR.DATE, where MAJOR is a number like 5, which corresponds to the current repository version, and DATE is the date of the last release, like 20150320. .PP-Daily builds of git\-annex will append a "\-gREF" to the version, which-corresponds to the git ref from git\-annex's source repository that was+Daily builds of git-annex will append a "\-gREF" to the version, which+corresponds to the git ref from git-annex's source repository that was built. Therefore, "5.20150320\-gdd35cf3" is a daily build, and "5.20150401" is an April 1st release made a bit later. .PP .SH OPTIONS .IP "\fB\-\-raw\fP" .IP-Causes only git\-annex's version to be output, and nothing else.+Causes only git-annex's version to be output, and nothing else. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-vfilter.1 view
@@ -1,6 +1,6 @@ .TH git-annex-vfilter 1 .SH NAME-git\-annex vfilter \- filter current view+git-annex vfilter \- filter current view .PP .SH SYNOPSIS git annex vfilter \fB[tag ...] [field=value ...] [!tag ...] [field!=value ...]\fP@@ -10,15 +10,15 @@ specified field values and tags. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP-git\-annex\-view(1)+git-annex\-view(1) .PP-git\-annex\-vpop(1)+git-annex\-vpop(1) .PP-git\-annex\-vadd(1)+git-annex\-vadd(1) .PP-git\-annex\-vcycle(1)+git-annex\-vcycle(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-vicfg.1 view
@@ -1,17 +1,17 @@ .TH git-annex-vicfg 1 .SH NAME-git\-annex vicfg \- edit git\-annex's configuration+git-annex vicfg \- edit git-annex's configuration .PP .SH SYNOPSIS git annex vicfg .PP .SH DESCRIPTION-Opens EDITOR on a temp file containing all of git\-annex's global +Opens EDITOR on a temp file containing all of git-annex's global configuration settings, and when it exits, stores any-changes made back to the git\-annex branch.+changes made back to the git-annex branch. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-view.1 view
@@ -1,6 +1,6 @@ .TH git-annex-view 1 .SH NAME-git\-annex view \- enter a view branch+git-annex view \- enter a view branch .PP .SH SYNOPSIS git annex view \fB[tag ...] [field=value ...] [field=glob ...] [!tag ...] [field!=value ...]\fP@@ -29,17 +29,17 @@ subdirectories of the podcasts directory in the view. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP-git\-annex\-metadata(1)+git-annex\-metadata(1) .PP-git\-annex\-vpop(1)+git-annex\-vpop(1) .PP-git\-annex\-vfilter(1)+git-annex\-vfilter(1) .PP-git\-annex\-vadd(1)+git-annex\-vadd(1) .PP-git\-annex\-vcycle(1)+git-annex\-vcycle(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-vpop.1 view
@@ -1,6 +1,6 @@ .TH git-annex-vpop 1 .SH NAME-git\-annex vpop \- switch back to previous view+git-annex vpop \- switch back to previous view .PP .SH SYNOPSIS git annex vpop \fB[N]\fP@@ -12,15 +12,15 @@ The optional number tells how many views to pop. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP-git\-annex\-view(1)+git-annex\-view(1) .PP-git\-annex\-vfilter(1)+git-annex\-vfilter(1) .PP-git\-annex\-vadd(1)+git-annex\-vadd(1) .PP-git\-annex\-vcycle(1)+git-annex\-vcycle(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-wanted.1 view
@@ -1,13 +1,13 @@ .TH git-annex-wanted 1 .SH NAME-git\-annex wanted \- get or set preferred content expression+git-annex wanted \- get or set preferred content expression .PP .SH SYNOPSIS git annex wanted \fBrepository [expression]\fP .PP .SH DESCRIPTION When run with an expression, configures the content that is preferred-to be held in the archive. See git\-annex\-preferred\-content(1)+to be held in the archive. See git-annex\-preferred\-content(1) .PP For example: .PP@@ -17,7 +17,7 @@ of the repository. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-watch.1 view
@@ -1,6 +1,6 @@ .TH git-annex-watch 1 .SH NAME-git\-annex watch \- watch for changes+git-annex watch \- watch for changes .PP .SH SYNOPSIS git annex watch@@ -29,7 +29,7 @@ Stop a running daemon. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-webapp.1 view
@@ -1,13 +1,13 @@ .TH git-annex-webapp 1 .SH NAME-git\-annex webapp \- launch webapp+git-annex webapp \- launch webapp .PP .SH SYNOPSIS git annex webapp .PP .SH DESCRIPTION-Opens a web app, that allows easy setup of a git\-annex repository,-and control of the git\-annex assistant. If the assistant is not+Opens a web app, that allows easy setup of a git-annex repository,+and control of the git-annex assistant. If the assistant is not already running, it will be started. .PP By default, the webapp can only be accessed from localhost, and running@@ -35,7 +35,7 @@ openssl req \-new \-x509 \-key .git/annex/privkey.pem > .git/annex/certificate.pem .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-whereis.1 view
@@ -1,6 +1,6 @@ .TH git-annex-whereis 1 .SH NAME-git\-annex whereis \- lists repositories that have file content+git-annex whereis \- lists repositories that have file content .PP .SH SYNOPSIS git annex whereis \fB[path ...]\fP@@ -22,14 +22,14 @@ .IP "\fB\-\-json\fP" .IP Enable JSON output. This is intended to be parsed by programs that use-git\-annex. Each line of output is a JSON object.+git-annex. Each line of output is a JSON object. .IP .IP "file matching options"-The git\-annex\-matching\-options(1)+The git-annex\-matching\-options(1) can be used to specify files to act on. .IP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex-xmppgit.1 view
@@ -1,6 +1,6 @@ .TH git-annex-xmppgit 1 .SH NAME-git\-annex xmppgit \- git to XMPP relay+git-annex xmppgit \- git to XMPP relay .PP .SH SYNOPSIS git annex xmppgit@@ -9,9 +9,9 @@ This command is used internally by the assistant to perform git pulls over XMPP. .PP .SH SEE ALSO-git\-annex(1)+git-annex(1) .PP-git\-annex\-assistant(1)+git-annex\-assistant(1) .PP .SH AUTHOR Joey Hess <id@joeyh.name>
man/git-annex.1 view
@@ -1,12 +1,12 @@ .TH git-annex 1 .SH NAME-git\-annex \- manage files with git, without checking their contents in+git-annex \- manage files with git, without checking their contents in .PP .SH SYNOPSIS git annex command [params ...] .PP .SH DESCRIPTION-git\-annex allows managing files with git, without checking the file+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 to limitations in memory, checksumming time, or disk space.@@ -22,7 +22,7 @@ When a file is annexed, its content is moved into a key\-value store, and a symlink is made that points to the content. These symlinks are checked into git and versioned like regular files. You can move them around, delete-them, and so on. Pushing to another git repository will make git\-annex+them, and so on. Pushing to another git repository will make git-annex there aware of the annexed file, and it can be used to retrieve its content from the key\-value store. .PP@@ -50,9 +50,9 @@ move iso/Debian_5.0.iso (moving to usbdrive...) ok .PP .SH COMMONLY USED COMMANDS-Like many git commands, git\-annex can be passed a path that+Like many git commands, git-annex can be passed a path that is either a file or a directory. In the latter case it acts on all relevant-files in the directory. When no path is specified, most git\-annex commands+files in the directory. When no path is specified, most git-annex commands default to acting on all relevant files in the current directory (and subdirectories). .PP@@ -65,38 +65,38 @@ Adds files in the path to the annex. If no path is specified, adds files from the current directory and below. .IP-See git\-annex\-add(1) for details.+See git-annex\-add(1) for details. .IP .IP "\fBget [path ...]\fP" Makes the content of annexed files available in this repository. .IP-See git\-annex\-get(1) for details.+See git-annex\-get(1) for details. .IP .IP "\fBdrop [path ...]\fP" Drops the content of annexed files from this repository. .IP-See git\-annex\-drop(1) for details.+See git-annex\-drop(1) for details. .IP .IP "\fBmove [path ...] [\-\-from=remote|\-\-to=remote]\fP" Moves the content of files from or to another remote. .IP-See git\-annex\-move(1) for details.+See git-annex\-move(1) for details. .IP .IP "\fBcopy [path ...] [\-\-from=remote|\-\-to=remote]\fP" Copies the content of files from or to another remote. .IP-See git\-annex\-copy(1) for details.+See git-annex\-copy(1) for details. .IP .IP "\fBstatus [path ...]\fP" Similar to \fBgit status \-\-short\fP, displays the status of the files in the working tree. Particularly useful in direct mode. .IP-See git\-annex\-status(1) for details.+See git-annex\-status(1) for details. .IP .IP "\fBunlock [path ...]\fP" Unlock annexed files for modification. .IP-See git\-annex\-unlock(1) for details.+See git-annex\-unlock(1) for details. .IP .IP "\fBedit [path ...]\fP" This is an alias for the unlock command. May be easier to remember,@@ -106,151 +106,158 @@ Use this to undo an unlock command if you don't want to modify the files, or have made modifications you want to discard. .IP-See git\-annex\-lock(1) for details.+See git-annex\-lock(1) for details. .IP .IP "\fBsync [remote ...]\fP" Synchronize local repository with remotes. .IP-See git\-annex\-sync(1) for details.+See git-annex\-sync(1) for details. .IP .IP "\fBmirror [path ...] [\-\-to=remote|\-\-from=remote]\fP" Mirror content of files to/from another repository. .IP-See git\-annex\-mirror(1) for details.+See git-annex\-mirror(1) for details. .IP .IP "\fBaddurl [url ...]\fP" Downloads each url to its own file, which is added to the annex. .IP-See git\-annex\-addurl(1) for details.+See git-annex\-addurl(1) for details. .IP .IP "\fBrmurl file url\fP" Record that the file is no longer available at the url. .IP-See git\-annex\-rmurl(1) for details.+See git-annex\-rmurl(1) for details. .IP .IP "\fBimport [path ...]\fP" Move and add files from outside git working copy into the annex. .IP-See git\-annex\-import(1) for details.+See git-annex\-import(1) for details. .IP .IP "\fBimportfeed [url ...]\fP" Imports the contents of podcast feeds into the annex. .IP-See git\-annex\-importfeed(1) for details.+See git-annex\-importfeed(1) for details. .IP .IP "\fBundo [filename|directory] ...\fP" Undo last change to a file or directory. .IP-See git\-annex\-undo(1) for details.+See git-annex\-undo(1) for details. .IP .IP "\fBwatch\fP" Watch for changes and autocommit. .IP-See git\-annex\-watch(1) for details.+See git-annex\-watch(1) for details. .IP .IP "\fBassistant\fP" Automatically sync folders between devices. .IP-See git\-annex\-assistant(1) for details.+See git-annex\-assistant(1) for details. .IP .IP "\fBwebapp\fP"-Opens a web app, that allows easy setup of a git\-annex repository,-and control of the git\-annex assistant. If the assistant is not+Opens a web app, that allows easy setup of a git-annex repository,+and control of the git-annex assistant. If the assistant is not already running, it will be started. .IP-See git\-annex\-webapp(1) for details.+See git-annex\-webapp(1) for details. .IP .SH REPOSITORY SETUP COMMANDS .IP "\fBinit [description]\fP" .IP Until a repository (or one of its remotes) has been initialized,-git\-annex will refuse to operate on it, to avoid accidentally+git-annex will refuse to operate on it, to avoid accidentally using it in a repository that was not intended to have an annex. .IP-See git\-annex\-init(1) for details.+See git-annex\-init(1) for details. .IP .IP "\fBdescribe repository description\fP" Changes the description of a repository. .IP-See git\-annex\-describe(1) for details.+See git-annex\-describe(1) for details. .IP .IP "\fBinitremote name type=value [param=value ...]\fP" Creates a new special remote, and adds it to \fB.git/config\fP. .IP-See git\-annex\-initremote(1) for details.+See git-annex\-initremote(1) for details. .IP .IP "\fBenableremote name [param=value ...]\fP" Enables use of an existing special remote in the current repository. .IP-See git\-annex\-enableremote(1) for details.+See git-annex\-enableremote(1) for details. .IP .IP "\fBnumcopies [N]\fP" Configure desired number of copies. .IP-See git\-annex\-numcopies(1) for details.+See git-annex\-numcopies(1) for details. .IP .IP "\fBtrust [repository ...]\fP" Records that a repository is trusted to not unexpectedly lose content. Use with care. .IP-See git\-annex\-trust(1) for details.+See git-annex\-trust(1) for details. .IP .IP "\fBuntrust [repository ...]\fP" Records that a repository is not trusted and could lose content at any time. .IP-See git\-annex\-untrust(1) for details.+See git-annex\-untrust(1) for details. .IP .IP "\fBsemitrust [repository ...]\fP" Returns a repository to the default semi trusted state. .IP-See git\-annex\-semitrust(1) for details.+See git-annex\-semitrust(1) for details. .IP .IP "\fBdead [repository ...]\fP" Indicates that the repository has been irretrievably lost. .IP-See git\-annex\-dead(1) for details.+See git-annex\-dead(1) for details. .IP .IP "\fBgroup repository groupname\fP" Add a repository to a group. .IP-See git\-annex\-group(1) for details.+See git-annex\-group(1) for details. .IP .IP "\fBungroup repository groupname\fP" Removes a repository from a group. .IP-See git\-annex\-ungroup(1) for details.+See git-annex\-ungroup(1) for details. .IP .IP "\fBwanted repository [expression]\fP" Get or set preferred content expression. .IP-See git\-annex\-wanted(1) for details.+See git-annex\-wanted(1) for details. .IP .IP "\fBgroupwanted groupname [expression]\fP"-See git\-annex\-groupwanted(1) for details.+Get or set groupwanted expression. .IP+See git-annex\-groupwanted(1) for details.+.IP+.IP "\fBrequired repository [expression]\fP"+Get or set required content expression.+.IP+See git-annex\-required(1) for details.+.IP .IP "\fBschedule repository [expression]\fP" Get or set scheduled jobs. .IP-See git\-annex\-schedule(1) for details.+See git-annex\-schedule(1) for details. .IP .IP "\fBvicfg\fP" Opens EDITOR on a temp file containing most of the above configuration settings, as well as a few others, and when it exits, stores any changes-made back to the git\-annex branch.+made back to the git-annex branch. .IP-See git\-annex\-vicfg(1) for details.+See git-annex\-vicfg(1) for details. .IP .IP "\fBdirect\fP" Switches a repository to use direct mode, where rather than symlinks to files, the files are directly present in the repository. .IP-See git\-annex\-direct(1) for details.+See git-annex\-direct(1) for details. .IP .IP "\fBindirect\fP" Switches a repository back from direct mode to the default, indirect mode. .IP-See git\-annex\-indirect(1) for details.+See git-annex\-indirect(1) for details. .IP .SH REPOSITORY MAINTENANCE COMMANDS .IP "\fBfsck [path ...]\fP"@@ -258,7 +265,7 @@ Checks the annex consistency, and warns about or fixes any problems found. This is a good complement to \fBgit fsck\fP. .IP-See git\-annex\-fsck(1) for details.+See git-annex\-fsck(1) for details. .IP .IP "\fBexpire [repository:]time ...\fP" Expires repositories that have not recently performed an activity@@ -268,48 +275,48 @@ Checks the annex for data that does not correspond to any files present in any tag or branch, and prints a numbered list of the data. .IP-See git\-annex\-unused(1) for details.+See git-annex\-unused(1) for details. .IP .IP "\fBdropunused [number|range ...]\fP" Drops the data corresponding to the numbers, as listed by the last \fBgit annex unused\fP .IP-See git\-annex\-dropunused(1) for details.+See git-annex\-dropunused(1) for details. .IP .IP "\fBaddunused [number|range ...]\fP" Adds back files for the content corresponding to the numbers or ranges, as listed by the last \fBgit annex unused\fP. .IP-See git\-annex\-addunused(1) for details.+See git-annex\-addunused(1) for details. .IP .IP "\fBfix [path ...]\fP" Fixes up symlinks that have become broken to again point to annexed content. .IP-See git\-annex\-fix(1) for details.+See git-annex\-fix(1) for details. .IP .IP "\fBmerge\fP" Automatically merge changes from remotes. .IP-See git\-annex\-merge(1) for details.+See git-annex\-merge(1) for details. .IP .IP "\fBupgrade\fP" Upgrades the repository to current layout. .IP-See git\-annex\-upgrade(1) for details.+See git-annex\-upgrade(1) for details. .IP .IP "\fBforget\fP"-Causes the git\-annex branch to be rewritten, throwing away historical+Causes the git-annex branch to be rewritten, throwing away historical data about past locations of files. .IP-See git\-annex\-forget(1) for details.+See git-annex\-forget(1) for details. .IP .IP "\fBrepair\fP" This can repair many of the problems with git repositories that \fBgit fsck\fP detects, but does not itself fix. It's useful if a repository has become-badly damaged. One way this can happen is if a repository used by git\-annex+badly damaged. One way this can happen is if a repository used by git-annex is on a removable drive that gets unplugged at the wrong time. .IP-See git\-annex\-repair(1) for details.+See git-annex\-repair(1) for details. .IP .SH QUERY COMMANDS .IP "\fBfind [path ...]\fP"@@ -317,24 +324,24 @@ Outputs a list of annexed files in the specified path. With no path, finds files in the current directory and its subdirectories. .IP-See git\-annex\-find(1) for details.+See git-annex\-find(1) for details. .IP .IP "\fBwhereis [path ...]\fP" Displays information about where the contents of files are located. .IP-See git\-annex\-whereis(1) for details.+See git-annex\-whereis(1) for details. .IP .IP "\fBlist [path ...]\fP" Displays a table of remotes that contain the contents of the specified files. This is similar to whereis but a more compact display. .IP-See git\-annex\-list(1) for details.+See git-annex\-list(1) for details. .IP .IP "\fBlog [path ...]\fP" Displays the location log for the specified file or files, showing each repository they were added to ("+") and removed from ("\-"). .IP-See git\-annex\-log(1) for details.+See git-annex\-log(1) for details. .IP .IP "\fBinfo [directory|file|remote|uuid ...]\fP" Displays statistics and other information for the specified item,@@ -344,17 +351,17 @@ When no item is specified, displays statistics and information for the repository as a whole. .IP-See git\-annex\-info(1) for details.+See git-annex\-info(1) for details. .IP .IP "\fBversion\fP"-Shows the version of git\-annex, as well as repository version information.+Shows the version of git-annex, as well as repository version information. .IP-See git\-annex\-version(1) for details.+See git-annex\-version(1) for details. .IP .IP "\fBmap\fP" Generate map of repositories. .IP-See git\-annex\-map(1) for details.+See git-annex\-map(1) for details. .IP .SH METADATA COMMANDS .IP "\fBmetadata [path ...]\fP"@@ -366,7 +373,7 @@ This command can be used to set metadata, or show the currently set metadata. .IP-See git\-annex\-metadata(1) for details.+See git-annex\-metadata(1) for details. .IP .IP "\fBview [tag ...] [field=value ...] [field=glob ...] [!tag ...] [field!=value ...]\fP" Uses metadata to build a view branch of the files in the current branch,@@ -374,60 +381,60 @@ metadata matches all the specified field values and tags will be shown in the view. .IP-See git\-annex\-view(1) for details.+See git-annex\-view(1) for details. .IP .IP "\fBvpop [N]\fP" Switches from the currently active view back to the previous view. Or, from the first view back to original branch. .IP-See git\-annex\-vpop(1) for details.+See git-annex\-vpop(1) for details. .IP .IP "\fBvfilter [tag ...] [field=value ...] [!tag ...] [field!=value ...]\fP" Filters the current view to only the files that have the specified field values and tags. .IP-See git\-annex\-vfilter(1) for details.+See git-annex\-vfilter(1) for details. .IP .IP "\fBvadd [field=glob ...] [field=value ...] [tag ...]\fP" Changes the current view, adding an additional level of directories to categorize the files. .IP-See git\-annex\-vfilter(1) for details.+See git-annex\-vfilter(1) for details. .IP .IP "\fBvcycle\fP" When a view involves nested subdirectories, this cycles the order. .IP-See git\-annex\-vcycle(1) for details.+See git-annex\-vcycle(1) for details. .IP .SH UTILITY COMMANDS .IP "\fBmigrate [path ...]\fP" .IP Changes the specified annexed files to use a different key\-value backend. .IP-See git\-annex\-migrate(1) for details.+See git-annex\-migrate(1) for details. .IP .IP "\fBreinject src dest\fP" Moves the src file into the annex as the content of the dest file. This can be useful if you have obtained the content of a file from elsewhere and want to put it in the local annex. .IP-See git\-annex\-reinject(1) for details.+See git-annex\-reinject(1) for details. .IP .IP "\fBunannex [path ...]\fP" Use this to undo an accidental \fBgit annex add\fP command. It puts the file back how it was before the add. .IP-See git\-annex\-unannex(1) for details.+See git-annex\-unannex(1) for details. .IP .IP "\fBuninit\fP"-De\-initialize git\-annex and clean out repository.+De\-initialize git-annex and clean out repository. .IP-See git\-annex\-unannex(1) for details.+See git-annex\-unannex(1) for details. .IP .IP "\fBreinit uuid|description\fP" Initialize repository, reusing old UUID. .IP-See git\-annex\-reinit(1) for details.+See git-annex\-reinit(1) for details. .IP .SH PLUMBING COMMANDS .IP "\fBpre\-commit [path ...]\fP"@@ -435,111 +442,111 @@ This is meant to be called from git's pre\-commit hook. \fBgit annex init\fP automatically creates a pre\-commit hook using this. .IP-See git\-annex\-pre\-commit(1) for details.+See git-annex\-pre\-commit(1) for details. .IP .IP "\fBlookupkey [file ...]\fP" Looks up key used for file. .IP-See git\-annex\-lookupkey(1) for details.+See git-annex\-lookupkey(1) for details. .IP .IP "\fBcontentlocation [key ..]\fP" Looks up location of annexed content for a key. .IP-See git\-annex\-contentlocation(1) for details.+See git-annex\-contentlocation(1) for details. .IP .IP "\fBexaminekey [key ...]\fP" Print information that can be determined purely by looking at the key. .IP-See git\-annex\-examinekey(1) for details.+See git-annex\-examinekey(1) for details. .IP .IP "\fBfromkey [key file]\fP" Manually set up a file in the git repository to link to a specified key. .IP-See git\-annex\-fromkey(1) for details.+See git-annex\-fromkey(1) for details. .IP .IP "\fBregisterurl [key url]\fP" Registers an url for a key. .IP-See git\-annex\-registerurl(1) for details.+See git-annex\-registerurl(1) for details. .IP .IP "\fBdropkey [key ...]\fP" Drops annexed content for specified keys. .IP-See git\-annex\-dropkey(1) for details.+See git-annex\-dropkey(1) for details. .IP .IP "\fBtransferkey key [\-\-from=remote|\-\-to=remote]\fP" Transfers a key from or to a remote. .IP-See git\-annex\-transferkey(1) for details.+See git-annex\-transferkey(1) for details. .IP .IP "\fBtransferkeys\fP" Used internally by the assistant. .IP-See git\-annex\-transferkey(1) for details.+See git-annex\-transferkey(1) for details. .IP .IP "\fBsetpresentkey key uuid [1|0]\fP"-This plumbing\-level command changes git\-annex's records about whether+This plumbing\-level command changes git-annex's records about whether the specified key's content is present in a remote with the specified uuid. .IP-See git\-annex\-setpresentkey(1) for details.+See git-annex\-setpresentkey(1) for details. .IP .IP "\fBreadpresentkey key uuid\fP" Read records of where key is present. .IP-See git\-annex\-readpresentkey(1) for details.+See git-annex\-readpresentkey(1) for details. .IP .IP "\fBcheckpresentkey key remote\fP" Check if key is present in remote. .IP-See git\-annex\-checkpresentkey(1) for details.+See git-annex\-checkpresentkey(1) for details. .IP .IP "\fBrekey [file key ...]\fP" Change keys used for files. .IP-See git\-annex\-rekey(1) for details.+See git-annex\-rekey(1) for details. .IP .IP "\fBfindref [ref]\fP" Lists files in a git ref. .IP-See git\-annex\-findref(1) for details.+See git-annex\-findref(1) for details. .IP .IP "\fBproxy \-\- git cmd [options]\fP" Only useful in a direct mode repository, this runs the specified git command with a temporary work tree, and updates the working tree to reflect any changes staged or committed by the git command. .IP-See git\-annex\-proxy(1) for details.+See git-annex\-proxy(1) for details. .IP .IP "\fBresolvemerge\fP" Resolves a conflicted merge, by adding both conflicting versions of the file to the tree, using variants of their filename. This is done automatically when using \fBgit annex sync\fP or \fBgit annex merge\fP. .IP-See git\-annex\-resolvemerge(1) for details.+See git-annex\-resolvemerge(1) for details. .IP .IP "\fBdiffdriver\fP" This can be used to make \fBgit diff\fP use an external diff driver with annexed files. .IP-See git\-annex\-diffdriver(1) for details.+See git-annex\-diffdriver(1) for details. .IP .IP "\fBremotedaemon\fP" Detects when network remotes have received git pushes and fetches from them. .IP-See git\-annex\-remotedaemon(1) for details.+See git-annex\-remotedaemon(1) for details. .IP .IP "\fBxmppgit\fP" This command is used internally by the assistant to perform git pulls over XMPP. .IP-See git\-annex\-xmppgit(1) for details.+See git-annex\-xmppgit(1) for details. .IP .SH TESTING COMMANDS .IP "\fBtest\fP" .IP-This runs git\-annex's built\-in test suite.+This runs git-annex's built\-in test suite. .IP-See git\-annex\-test(1) for details.+See git-annex\-test(1) for details. .IP .IP "\fBtestremote remote\fP" This tests a remote by generating some random objects and sending them to@@ -548,18 +555,18 @@ It's safe to run in an existing repository (the repository contents are not altered), although it may perform expensive data transfers. .IP-See git\-annex\-testremote(1) for details.+See git-annex\-testremote(1) for details. .IP .IP "\fBfuzztest\fP" Generates random changes to files in the current repository, for use in testing the assistant. .IP-See git\-annex\-fuzztest(1) for details.+See git-annex\-fuzztest(1) for details. .IP .SH COMMON OPTIONS-These common options are accepted by all git\-annex commands, and+These common options are accepted by all git-annex commands, and may not be explicitly listed on their individual man pages.-(Many commands also accept the git\-annex\-matching\-options(1).)+(Many commands also accept the git-annex\-matching\-options(1).) .PP .IP "\fB\-\-force\fP" Force unsafe actions, such as dropping a file's content when no other@@ -583,19 +590,19 @@ Disable debug messages. .IP .IP "\fB\-\-numcopies=n\fP"-Overrides the numcopies setting, forcing git\-annex to ensure the+Overrides the numcopies setting, forcing git-annex to ensure the specified number of copies exist. .IP Note that setting numcopies to 0 is very unsafe. .IP .IP "\fB\-\-time\-limit=time\fP"-Limits how long a git\-annex command runs. The time can be something+Limits how long a git-annex command runs. The time can be something like "5h", or "30m" or even "45s" or "10d". .IP-Note that git\-annex may continue running a little past the specified+Note that git-annex may continue running a little past the specified time limit, in order to finish processing a file. .IP-Also, note that if the time limit prevents git\-annex from doing all it+Also, note that if the time limit prevents git-annex from doing all it was asked to, it will exit with a special code, 101. .IP .IP "\fB\-\-trust=repository\fP"@@ -608,7 +615,7 @@ .IP .IP "\fB\-\-trust\-glacier\-inventory\fP" Amazon Glacier inventories take hours to retrieve, and may not represent-the current state of a repository. So git\-annex does not trust that+the current state of a repository. So git-annex does not trust that files that the inventory claims are in Glacier are really there. This switch can be used to allow it to trust the inventory. .IP@@ -640,7 +647,7 @@ Overrides git configuration settings. May be specified multiple times. .IP .SH CONFIGURATION VIA .git/config-Like other git commands, git\-annex is configured via \fB.git/config\fP.+Like other git commands, git-annex is configured via \fB.git/config\fP. Here are all the supported configuration settings. .PP .IP "\fBannex.uuid\fP"@@ -682,7 +689,7 @@ Note that setting numcopies to 0 is very unsafe. .IP .IP "\fBannex.genmetadata\fP"-Set this to \fBtrue\fP to make git\-annex automatically generate some metadata+Set this to \fBtrue\fP to make git-annex automatically generate some metadata when adding files to the repository. .IP In particular, it stores year and month metadata, from the file's@@ -692,7 +699,7 @@ such as the author, title, etc. .IP .IP "\fBannex.queuesize\fP"-git\-annex builds a queue of git commands, in order to combine similar+git-annex builds a queue of git commands, in order to combine similar commands for speed. By default the size of the queue is limited to 10240 commands; this can be used to change the size. If you have plenty of memory and are working with very large numbers of files, increasing@@ -703,7 +710,7 @@ what data is no longer used. The default bloom filter is sized to handle up to 500000 keys. If your repository is larger than that, you can adjust this to avoid \fBgit annex unused\fP not noticing some unused-data files. Increasing this will make \fBgit\-annex unused\fP consume more memory;+data files. Increasing this will make \fBgit-annex unused\fP consume more memory; run \fBgit annex info\fP for memory usage numbers. .IP .IP "\fBannex.bloomaccuracy\fP"@@ -714,12 +721,12 @@ run \fBgit annex info\fP for memory usage numbers. .IP .IP "\fBannex.sshcaching\fP"-By default, git\-annex caches ssh connections using ssh's+By default, git-annex caches ssh connections using ssh's ControlMaster and ControlPersist settings (if built using a new enough ssh). To disable this, set to \fBfalse\fP. .IP .IP "\fBannex.alwayscommit\fP"-By default, git\-annex automatically commits data to the git\-annex branch+By default, git-annex automatically commits data to the git-annex branch after each command is run. If you have a series of commands that you want to make a single commit, you can run the commands with \fB\-c annex.alwayscommit=false\fP. You can later@@ -734,7 +741,7 @@ with hard links, fewer copies of a file can exist. So, it is a good idea to mark a repository using this setting as untrusted. .IP-When a repository is set up using \fBgit clone \-\-shared\fP, git\-annex init+When a repository is set up using \fBgit clone \-\-shared\fP, git-annex init will automatically set annex.hardlink and mark the repository as untrusted. .IP@@ -767,20 +774,20 @@ upgrades without prompting (on some supported platforms). When set to false, disables any upgrade checking. .IP-Note that upgrade checking is only done when git\-annex is installed+Note that upgrade checking is only done when git-annex is installed from one of the prebuilt images from its website. This does not bypass e.g., a Linux distribution's own upgrade handling code. .IP-This setting also controls whether to restart the git\-annex assistant-when the git\-annex binary is detected to have changed. That is useful-no matter how you installed git\-annex.+This setting also controls whether to restart the git-annex assistant+when the git-annex binary is detected to have changed. That is useful+no matter how you installed git-annex. .IP .IP "\fBannex.autocommit\fP"-Set to false to prevent the git\-annex assistant from automatically+Set to false to prevent the git-annex assistant from automatically committing changes to files in the repository. .IP .IP "\fBannex.startupscan\fP"-Set to false to prevent the git\-annex assistant from scanning the+Set to false to prevent the git-annex assistant from scanning the repository for new and changed files on startup. This will prevent it from noticing changes that were made while it was not running, but can be a useful performance tweak for a large repository.@@ -818,54 +825,54 @@ cost\-command can be any shell command line. .IP .IP "\fBremote.<name>.annex\-start\-command\fP"-A command to run when git\-annex begins to use the remote. This can+A command to run when git-annex begins to use the remote. This can be used to, for example, mount the directory containing the remote. .IP-The command may be run repeatedly when multiple git\-annex processes+The command may be run repeatedly when multiple git-annex processes are running concurrently. .IP .IP "\fBremote.<name>.annex\-stop\-command\fP"-A command to run when git\-annex is done using the remote.+A command to run when git-annex is done using the remote. .IP-The command will only be run once *all* running git\-annex processes+The command will only be run once *all* running git-annex processes are finished using the remote. .IP .IP "\fBremote.<name>.annex\-shell\fP"-Specify an alternative git\-annex\-shell executable on the remote-instead of looking for "git\-annex\-shell" on the PATH.+Specify an alternative git-annex\-shell executable on the remote+instead of looking for "git-annex\-shell" on the PATH. .IP-This is useful if the git\-annex\-shell program is outside the PATH+This is useful if the git-annex\-shell program is outside the PATH or has a non\-standard name. .IP .IP "\fBremote.<name>.annex\-ignore\fP"-If set to \fBtrue\fP, prevents git\-annex+If set to \fBtrue\fP, prevents git-annex from storing file contents on this remote by default. (You can still request it be used by the \fB\-\-from\fP and \fB\-\-to\fP options.) .IP This is, for example, useful if the remote is located somewhere-without git\-annex\-shell. (For example, if it's on GitHub).+without git-annex\-shell. (For example, if it's on GitHub). Or, it could be used if the network connection between two repositories is too slow to be used normally. .IP-This does not prevent git\-annex sync (or the git\-annex assistant) from+This does not prevent git-annex sync (or the git-annex assistant) from syncing the git repository to the remote. .IP .IP "\fBremote.<name>.annex\-sync\fP"-If set to \fBfalse\fP, prevents git\-annex sync (and the git\-annex assistant)+If set to \fBfalse\fP, prevents git-annex sync (and the git-annex assistant) from syncing with this remote. .IP .IP "\fBremote.<name>.annex\-readonly\fP"-If set to \fBtrue\fP, prevents git\-annex from making changes to a remote.-This both prevents git\-annex sync from pushing changes, and prevents+If set to \fBtrue\fP, prevents git-annex from making changes to a remote.+This both prevents git-annex sync from pushing changes, and prevents storing or removing files from read\-only remote. .IP .IP "\fBremote.<name>.annexUrl\fP" Can be used to specify a different url than the regular \fBremote.<name>.url\fP-for git\-annex to use when talking with the remote. Similar to the \fBpushUrl\fP+for git-annex to use when talking with the remote. Similar to the \fBpushUrl\fP used by git\-push. .IP .IP "\fBremote.<name>.annex\-uuid\fP"-git\-annex caches UUIDs of remote repositories here.+git-annex caches UUIDs of remote repositories here. .IP .IP "\fBremote.<name>.annex\-trustlevel\fP" Configures a local trust level for the remote. This overrides the value@@ -873,12 +880,12 @@ "trusted", "semitrusted" or "untrusted". .IP .IP "\fBremote.<name>.annex\-availability\fP"-Can be used to tell git\-annex whether a remote is LocallyAvailable-or GloballyAvailable. Normally, git\-annex determines this automatically.+Can be used to tell git-annex whether a remote is LocallyAvailable+or GloballyAvailable. Normally, git-annex determines this automatically. .IP .IP "\fBremote.<name>.annex\-bare\fP"-Can be used to tell git\-annex if a remote is a bare repository-or not. Normally, git\-annex determines this automatically.+Can be used to tell git-annex if a remote is a bare repository+or not. Normally, git-annex determines this automatically. .IP .IP "\fBremote.<name>.annex\-ssh\-options\fP" Options to use when using ssh to talk to this remote.@@ -955,7 +962,7 @@ and %file is replaced with the file that it should be saved to. .IP .IP "\fBannex.secure\-erase\-command\fP"-This can be set to a command that should be run whenever git\-annex+This can be set to a command that should be run whenever git-annex removes the content of a file from the repository. .IP In the command line, %file is replaced with the file that should be@@ -1002,14 +1009,14 @@ .IP .IP "\fBremote.<name>.annex\-xmppaddress\fP" Used to identify the XMPP address of a Jabber buddy.-Normally this is set up by the git\-annex assistant when pairing over XMPP.+Normally this is set up by the git-annex assistant when pairing over XMPP. .IP .IP "\fBremote.<name>.gcrypt\fP" Used to identify gcrypt special remotes. Normally this is automatically set up by \fBgit annex initremote\fP. .IP It is set to "true" if this is a gcrypt remote.-If the gcrypt remote is accessible over ssh and has git\-annex\-shell+If the gcrypt remote is accessible over ssh and has git-annex\-shell available to manage it, it's set to "shell". .IP .IP "\fBremote.<name>.hooktype\fP, \fBremote.<name>.externaltype\fP"@@ -1019,7 +1026,7 @@ .IP "\fBannex.tune.objecthash1\fP, \fBannex.tune.objecthashlower\fP, \fBannex.tune.branchhash1\fP" These can be passed to \fBgit annex init\fP to tune the repository. They cannot be safely changed in a running repository.-For details, see <http://git\-annex.branchable.com/tuning/>.+For details, see <http://git-annex.branchable.com/tuning/>. .IP .SH CONFIGURATION VIA .gitattributes The key\-value backend used when adding a new file to the annex can be@@ -1042,9 +1049,9 @@ .PP Note that setting numcopies to 0 is very unsafe. .PP-These settings are honored by git\-annex whenever it's operating on a+These settings are honored by git-annex whenever it's operating on a matching file. However, when using \-\-all, \-\-unused, or \-\-key to specify-keys to operate on, git\-annex is operating on keys and not files, so will+keys to operate on, git-annex is operating on keys and not files, so will not honor the settings from .gitattributes. .PP Also note that when using views, only the toplevel .gitattributes file is@@ -1052,37 +1059,37 @@ effect. .PP .SH FILES-These files are used by git\-annex:+These files are used by git-annex: .PP \fB.git/annex/objects/\fP in your git repository contains the annexed file contents that are currently available. Annexed files in your git repository symlink to that content. .PP \fB.git/annex/\fP in your git repository contains other run\-time information-used by git\-annex.+used by git-annex. .PP-\fB~/.config/git\-annex/autostart\fP is a list of git repositories-to start the git\-annex assistant in.+\fB~/.config/git-annex/autostart\fP is a list of git repositories+to start the git-annex assistant in. .PP \fB.git/hooks/pre\-commit\-annex\fP in your git repository will be run whenever-a commit is made to the HEAD branch, either by git commit, git\-annex-sync, or the git\-annex assistant.+a commit is made to the HEAD branch, either by git commit, git-annex+sync, or the git-annex assistant. .PP \fB.git/hooks/post\-update\-annex\fP in your git repository will be run-whenever the git\-annex branch is updated. You can make this hook run-\fBgit update\-server\-info\fP when publishing a git\-annex repository by http.+whenever the git-annex branch is updated. You can make this hook run+\fBgit update\-server\-info\fP when publishing a git-annex repository by http. .PP .SH SEE ALSO-More git\-annex documentation is available on its web site,-<http://git\-annex.branchable.com/>+More git-annex documentation is available on its web site,+<http://git-annex.branchable.com/> .PP-If git\-annex is installed from a package, a copy of its documentation-should be included, in, for example, \fB/usr/share/doc/git\-annex/\fP.+If git-annex is installed from a package, a copy of its documentation+should be included, in, for example, \fB/usr/share/doc/git-annex/\fP. .PP .SH AUTHOR Joey Hess <id@joeyh.name> .PP-<http://git\-annex.branchable.com/>+<http://git-annex.branchable.com/> .PP .PP
standalone/android/cabal.config view
@@ -6,7 +6,6 @@ MissingH ==1.2.1.0, MonadRandom ==0.1.13, QuickCheck ==2.7.6,- SHA ==1.6.1, SafeSemaphore ==0.10.1, aeson ==0.7.0.6, ansi-terminal ==0.6.1.1,@@ -82,9 +81,9 @@ hinotify ==0.3.5, hjsmin ==0.1.4.7, hslogger ==1.2.1,- http-client ==0.3.8.2,+ http-client ==0.4.11.1, http-client-tls ==0.2.2,- http-conduit ==2.1.2.3,+ http-conduit ==2.1.5, http-date ==0.0.2, http-types ==0.8.5, hxt ==9.3.1.4,
standalone/linux/cabal.config view
@@ -6,7 +6,6 @@ MissingH ==1.2.1.0, MonadRandom ==0.1.13, QuickCheck ==2.7.6,- SHA ==1.6.1, SafeSemaphore ==0.10.1, aeson ==0.7.0.6, ansi-terminal ==0.6.1.1,@@ -82,9 +81,9 @@ hinotify ==0.3.5, hjsmin ==0.1.4.7, hslogger ==1.2.1,- http-client ==0.3.8.2,+ http-client ==0.4.11.1, http-client-tls ==0.2.2,- http-conduit ==2.1.2.3,+ http-conduit ==2.1.5, http-date ==0.0.2, http-types ==0.8.5, hxt ==9.3.1.4,
standalone/linux/skel/runshell view
@@ -31,16 +31,18 @@ # assistant. if [ ! -e "$HOME/.ssh/git-annex-shell" ]; then mkdir "$HOME/.ssh" >/dev/null 2>&1 || true- (- echo "#!/bin/sh"- echo "set -e"- echo "if [ \"x\$SSH_ORIGINAL_COMMAND\" != \"x\" ]; then"- echo "exec $base/runshell git-annex-shell -c \"\$SSH_ORIGINAL_COMMAND\""- echo "else"- echo "exec $base/runshell git-annex-shell -c \"\$@\""- echo "fi"- ) > "$HOME/.ssh/git-annex-shell"- chmod +x "$HOME/.ssh/git-annex-shell"+ if [ -e "$HOME/.ssh" ]; then+ (+ echo "#!/bin/sh"+ echo "set -e"+ echo "if [ \"x\$SSH_ORIGINAL_COMMAND\" != \"x\" ]; then"+ echo "exec $base/runshell git-annex-shell -c \"\$SSH_ORIGINAL_COMMAND\""+ echo "else"+ echo "exec $base/runshell git-annex-shell -c \"\$@\""+ echo "fi"+ ) > "$HOME/.ssh/git-annex-shell"+ chmod +x "$HOME/.ssh/git-annex-shell"+ fi fi # And this shim is used by the webapp when adding a remote ssh server.
standalone/osx/git-annex.app/Contents/MacOS/runshell view
@@ -33,16 +33,18 @@ # assistant. if [ ! -e "$HOME/.ssh/git-annex-shell" ]; then mkdir "$HOME/.ssh" >/dev/null 2>&1 || true- (- echo "#!/bin/sh"- echo "set -e"- echo "if [ \"x\$SSH_ORIGINAL_COMMAND\" != \"x\" ]; then"- echo "exec $base/runshell git-annex-shell -c \"\$SSH_ORIGINAL_COMMAND\""- echo "else"- echo "exec $base/runshell git-annex-shell -c \"\$@\""- echo "fi"- ) > "$HOME/.ssh/git-annex-shell"- chmod +x "$HOME/.ssh/git-annex-shell"+ if [ -e "$HOME/.ssh" ]; then+ (+ echo "#!/bin/sh"+ echo "set -e"+ echo "if [ \"x\$SSH_ORIGINAL_COMMAND\" != \"x\" ]; then"+ echo "exec $base/runshell git-annex-shell -c \"\$SSH_ORIGINAL_COMMAND\""+ echo "else"+ echo "exec $base/runshell git-annex-shell -c \"\$@\""+ echo "fi"+ ) > "$HOME/.ssh/git-annex-shell"+ chmod +x "$HOME/.ssh/git-annex-shell"+ fi fi # And this shim is used by the webapp when adding a remote ssh server.
standalone/windows/build.sh view
@@ -9,7 +9,7 @@ # Path to the Haskell Platform. #HP="/c/haskell/2014.2.0.0" # now in the default PATH -PATH="/c/Program Files (x86)/NSIS:/c/msysgit/cmd:$PATH"+PATH="/c/Program Files (x86)/NSIS:/c/msysgit/cmd:/c/msysgit/bin:$PATH" # Run a command with the cygwin environment available. # However, programs not from cygwin are preferred.@@ -22,6 +22,12 @@ # This tells git-annex where to upgrade itself from. UPGRADE_LOCATION=http://downloads.kitenet.net/git-annex/windows/current/git-annex-installer.exe+export UPGRADE_LOCATION++# This can be used to force git-annex to build supporting a particular+# version of git, instead of the version installed at build time.+#FORCE_GIT_VERSION=1.9.5+#export FORCE_GIT_VERSION # Uncomment to get rid of cabal installed libraries. #rm -rf /c/Users/jenkins/AppData/Roaming/cabal /c/Users/jenkins/AppData/Roaming/ghc