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 file = do
|
||||
showStart "add" file
|
||||
next $ performSmall file
|
||||
next $ next $ addSmall file
|
||||
|
||||
performSmall :: FilePath -> CommandPerform
|
||||
performSmall file = do
|
||||
addSmall :: FilePath -> Annex Bool
|
||||
addSmall file = do
|
||||
showNote "non-large file; adding content to git repository"
|
||||
performAdd file
|
||||
addFile file
|
||||
|
||||
performAdd :: FilePath -> CommandPerform
|
||||
performAdd file = do
|
||||
addFile :: FilePath -> Annex Bool
|
||||
addFile file = do
|
||||
ps <- forceParams
|
||||
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
|
||||
- backend, and then moving it into the annex directory and setting up
|
||||
|
@ -101,7 +101,7 @@ start file = ifAnnexed file addpresent add
|
|||
| otherwise -> do
|
||||
showStart "add" file
|
||||
next $ if isSymbolicLink s
|
||||
then performAdd file
|
||||
then next $ addFile file
|
||||
else perform file
|
||||
addpresent key = ifM isDirect
|
||||
( do
|
||||
|
|
|
@ -29,6 +29,7 @@ import Types.KeySource
|
|||
import Types.UrlContents
|
||||
import Config
|
||||
import Annex.Content.Direct
|
||||
import Annex.FileMatcher
|
||||
import Logs.Location
|
||||
import Utility.Metered
|
||||
import qualified Annex.Transfer as Transfer
|
||||
|
@ -335,17 +336,28 @@ addSizeUrlKey :: Url.UrlInfo -> Key -> Key
|
|||
addSizeUrlKey urlinfo key = key { keySize = Url.urlSize urlinfo }
|
||||
|
||||
cleanup :: UUID -> URLString -> FilePath -> Key -> Maybe FilePath -> Annex ()
|
||||
cleanup u url file key mtmp = 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
|
||||
cleanup u url file key mtmp = case mtmp of
|
||||
Nothing -> go
|
||||
Just tmp -> do
|
||||
largematcher <- largeFilesMatcher
|
||||
ifM (checkFileMatcher largematcher file)
|
||||
( go
|
||||
, do
|
||||
liftIO $ renameFile tmp file
|
||||
void $ Command.Add.addSmall file
|
||||
)
|
||||
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 url urlinfo file
|
||||
|
|
|
@ -129,7 +129,7 @@ start largematcher mode (srcfile, destfile) =
|
|||
else moveFile srcfile destfile
|
||||
ifM (checkFileMatcher largematcher destfile)
|
||||
( Command.Add.perform destfile
|
||||
, Command.Add.performSmall destfile
|
||||
, next $ Command.Add.addSmall destfile
|
||||
)
|
||||
notoverwriting why = do
|
||||
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.
|
||||
* tahoe: Include tahoe capabilities in whereis display.
|
||||
* 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
|
||||
|
||||
|
|
|
@ -801,7 +801,10 @@ Here are all the supported configuration settings.
|
|||
|
||||
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.
|
||||
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
|
||||
[[!meta author=yoh]]
|
||||
|
||||
> [[done]] --[[Joey]]
|
||||
|
|
Loading…
Add table
Reference in a new issue