summaryrefslogtreecommitdiff
path: root/Command/Add.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Command/Add.hs')
-rw-r--r--Command/Add.hs23
1 files changed, 18 insertions, 5 deletions
diff --git a/Command/Add.hs b/Command/Add.hs
index 7faa7c80d..eb0dc22d8 100644
--- a/Command/Add.hs
+++ b/Command/Add.hs
@@ -52,7 +52,7 @@ seek ps = do
matcher <- largeFilesMatcher
let go a = flip a ps $ \file -> ifM (checkFileMatcher matcher file <||> Annex.getState Annex.force)
( start file
- , stop
+ , startSmall file
)
skipdotfiles <- not <$> Annex.getFlag (optionName includeDotFilesOption)
go $ withFilesNotInGit skipdotfiles
@@ -61,6 +61,16 @@ seek ps = do
, go withFilesUnlocked
)
+{- Pass file off to git-add. -}
+startSmall :: FilePath -> CommandStart
+startSmall file = do
+ showStart "add" file
+ showNote "non-large file; adding to git directly"
+ next $ do
+ params <- forceParams
+ Annex.Queue.addCommand "add" (params++[Param "--"]) [file]
+ next $ 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
- the symlink pointing to its content. -}
@@ -260,16 +270,19 @@ addLink :: FilePath -> Key -> Maybe InodeCache -> Annex ()
addLink file key mcache = ifM (coreSymlinks <$> Annex.getGitConfig)
( do
_ <- link file key mcache
- params <- ifM (Annex.getState Annex.force)
- ( return [Param "-f"]
- , return []
- )
+ params <- forceParams
Annex.Queue.addCommand "add" (params++[Param "--"]) [file]
, do
l <- link file key mcache
addAnnexLink l file
)
+forceParams :: Annex [CommandParam]
+forceParams = ifM (Annex.getState Annex.force)
+ ( return [Param "-f"]
+ , return []
+ )
+
cleanup :: FilePath -> Key -> Maybe InodeCache -> Bool -> CommandCleanup
cleanup file key mcache hascontent = do
ifM (isDirect <&&> pure hascontent)