addurl, importfeed: Changed to honor annex.largefiles settings, when the content of the url is downloaded. (Not when using --fast or --relaxed.)
importfeed just calls addurl functions, so inherits this from it. Note that addurl still generates a temp file, and uses that key to download the file. It just adds it to the work tree at the end when the file is small.
This commit is contained in:
parent
dc8099872a
commit
f16e235983
6 changed files with 41 additions and 21 deletions
|
@ -73,18 +73,18 @@ seek o = allowConcurrentOutput $ do
|
||||||
startSmall :: FilePath -> CommandStart
|
startSmall :: FilePath -> CommandStart
|
||||||
startSmall file = do
|
startSmall file = do
|
||||||
showStart "add" file
|
showStart "add" file
|
||||||
next $ performSmall file
|
next $ next $ addSmall file
|
||||||
|
|
||||||
performSmall :: FilePath -> CommandPerform
|
addSmall :: FilePath -> Annex Bool
|
||||||
performSmall file = do
|
addSmall file = do
|
||||||
showNote "non-large file; adding content to git repository"
|
showNote "non-large file; adding content to git repository"
|
||||||
performAdd file
|
addFile file
|
||||||
|
|
||||||
performAdd :: FilePath -> CommandPerform
|
addFile :: FilePath -> Annex Bool
|
||||||
performAdd file = do
|
addFile file = do
|
||||||
ps <- forceParams
|
ps <- forceParams
|
||||||
Annex.Queue.addCommand "add" (ps++[Param "--"]) [file]
|
Annex.Queue.addCommand "add" (ps++[Param "--"]) [file]
|
||||||
next $ return True
|
return True
|
||||||
|
|
||||||
{- The add subcommand annexes a file, generating a key for it using a
|
{- The add subcommand annexes a file, generating a key for it using a
|
||||||
- backend, and then moving it into the annex directory and setting up
|
- backend, and then moving it into the annex directory and setting up
|
||||||
|
@ -101,7 +101,7 @@ start file = ifAnnexed file addpresent add
|
||||||
| otherwise -> do
|
| otherwise -> do
|
||||||
showStart "add" file
|
showStart "add" file
|
||||||
next $ if isSymbolicLink s
|
next $ if isSymbolicLink s
|
||||||
then performAdd file
|
then next $ addFile file
|
||||||
else perform file
|
else perform file
|
||||||
addpresent key = ifM isDirect
|
addpresent key = ifM isDirect
|
||||||
( do
|
( do
|
||||||
|
|
|
@ -29,6 +29,7 @@ import Types.KeySource
|
||||||
import Types.UrlContents
|
import Types.UrlContents
|
||||||
import Config
|
import Config
|
||||||
import Annex.Content.Direct
|
import Annex.Content.Direct
|
||||||
|
import Annex.FileMatcher
|
||||||
import Logs.Location
|
import Logs.Location
|
||||||
import Utility.Metered
|
import Utility.Metered
|
||||||
import qualified Annex.Transfer as Transfer
|
import qualified Annex.Transfer as Transfer
|
||||||
|
@ -335,17 +336,28 @@ addSizeUrlKey :: Url.UrlInfo -> Key -> Key
|
||||||
addSizeUrlKey urlinfo key = key { keySize = Url.urlSize urlinfo }
|
addSizeUrlKey urlinfo key = key { keySize = Url.urlSize urlinfo }
|
||||||
|
|
||||||
cleanup :: UUID -> URLString -> FilePath -> Key -> Maybe FilePath -> Annex ()
|
cleanup :: UUID -> URLString -> FilePath -> Key -> Maybe FilePath -> Annex ()
|
||||||
cleanup u url file key mtmp = do
|
cleanup u url file key mtmp = case mtmp of
|
||||||
when (isJust mtmp) $
|
Nothing -> go
|
||||||
logStatus key InfoPresent
|
Just tmp -> do
|
||||||
setUrlPresent u key url
|
largematcher <- largeFilesMatcher
|
||||||
Command.Add.addLink file key Nothing
|
ifM (checkFileMatcher largematcher file)
|
||||||
whenM isDirect $ do
|
( go
|
||||||
void $ addAssociatedFile key file
|
, do
|
||||||
{- For moveAnnex to work in direct mode, the symlink
|
liftIO $ renameFile tmp file
|
||||||
- must already exist, so flush the queue. -}
|
void $ Command.Add.addSmall file
|
||||||
Annex.Queue.flush
|
)
|
||||||
maybe noop (moveAnnex key) mtmp
|
where
|
||||||
|
go = do
|
||||||
|
when (isJust mtmp) $
|
||||||
|
logStatus key InfoPresent
|
||||||
|
setUrlPresent u key url
|
||||||
|
Command.Add.addLink file key Nothing
|
||||||
|
whenM isDirect $ do
|
||||||
|
void $ addAssociatedFile key file
|
||||||
|
{- For moveAnnex to work in direct mode, the symlink
|
||||||
|
- must already exist, so flush the queue. -}
|
||||||
|
Annex.Queue.flush
|
||||||
|
maybe noop (moveAnnex key) mtmp
|
||||||
|
|
||||||
nodownload :: URLString -> Url.UrlInfo -> FilePath -> Annex (Maybe Key)
|
nodownload :: URLString -> Url.UrlInfo -> FilePath -> Annex (Maybe Key)
|
||||||
nodownload url urlinfo file
|
nodownload url urlinfo file
|
||||||
|
|
|
@ -129,7 +129,7 @@ start largematcher mode (srcfile, destfile) =
|
||||||
else moveFile srcfile destfile
|
else moveFile srcfile destfile
|
||||||
ifM (checkFileMatcher largematcher destfile)
|
ifM (checkFileMatcher largematcher destfile)
|
||||||
( Command.Add.perform destfile
|
( Command.Add.perform destfile
|
||||||
, Command.Add.performSmall destfile
|
, next $ Command.Add.addSmall destfile
|
||||||
)
|
)
|
||||||
notoverwriting why = do
|
notoverwriting why = do
|
||||||
warning $ "not overwriting existing " ++ destfile ++ " " ++ why
|
warning $ "not overwriting existing " ++ destfile ++ " " ++ why
|
||||||
|
|
3
debian/changelog
vendored
3
debian/changelog
vendored
|
@ -11,6 +11,9 @@ git-annex (5.20151117) UNRELEASED; urgency=medium
|
||||||
them. Instead, a mode such as 664 is used in this case.
|
them. Instead, a mode such as 664 is used in this case.
|
||||||
* tahoe: Include tahoe capabilities in whereis display.
|
* tahoe: Include tahoe capabilities in whereis display.
|
||||||
* import: Changed to honor annex.largefiles settings.
|
* import: Changed to honor annex.largefiles settings.
|
||||||
|
* addurl, importfeed: Changed to honor annex.largefiles settings,
|
||||||
|
when the content of the url is downloaded. (Not when using --fast or
|
||||||
|
--relaxed.)
|
||||||
|
|
||||||
-- Joey Hess <id@joeyh.name> Mon, 16 Nov 2015 16:49:34 -0400
|
-- Joey Hess <id@joeyh.name> Mon, 16 Nov 2015 16:49:34 -0400
|
||||||
|
|
||||||
|
|
|
@ -801,7 +801,10 @@ Here are all the supported configuration settings.
|
||||||
|
|
||||||
annex.largefiles = largerthan=100kb and not (include=*.c or include=*.h)
|
annex.largefiles = largerthan=100kb and not (include=*.c or include=*.h)
|
||||||
|
|
||||||
This setting is used by `git annex add`, `git annex import` and the assistant.
|
This setting is checked by `git annex add`, `git annex import` and the assistant.
|
||||||
|
It's also used by `git annex addurl` and `git annex importfeed` when
|
||||||
|
downloading files.
|
||||||
|
|
||||||
It can be useful to temporarily override it via -c at the command line.
|
It can be useful to temporarily override it via -c at the command line.
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
|
|
|
@ -2,3 +2,5 @@ ATM git annex addurl ignores annex.largefiles option so to automate annexificat
|
||||||
|
|
||||||
N.B. I do understand that use-case might be somewhat vague, let me know if I should expand reasoning
|
N.B. I do understand that use-case might be somewhat vague, let me know if I should expand reasoning
|
||||||
[[!meta author=yoh]]
|
[[!meta author=yoh]]
|
||||||
|
|
||||||
|
> [[done]] --[[Joey]]
|
||||||
|
|
Loading…
Add table
Reference in a new issue