summaryrefslogtreecommitdiff
path: root/Command
diff options
context:
space:
mode:
Diffstat (limited to 'Command')
-rw-r--r--Command/Add.hs10
1 files changed, 7 insertions, 3 deletions
diff --git a/Command/Add.hs b/Command/Add.hs
index 7ebf979cd..33adc8efc 100644
--- a/Command/Add.hs
+++ b/Command/Add.hs
@@ -35,14 +35,14 @@ def = [notBareRepo $ command "add" paramPaths seek "add files to annex"]
seek :: [CommandSeek]
seek =
[ withFilesNotInGit start
- , whenNotDirect $ withFilesUnlocked start
+ , withFilesUnlocked start
]
{- 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. -}
start :: FilePath -> CommandStart
-start file = ifAnnexed file fixup add
+start file = ifAnnexed file addpresent add
where
add = do
s <- liftIO $ getSymbolicLinkStatus file
@@ -51,7 +51,11 @@ start file = ifAnnexed file fixup add
else do
showStart "add" file
next $ perform file
- fixup (key, _) = do
+ addpresent (key, _) = ifM isDirect
+ ( ifM (goodContent key file) ( stop , add )
+ , fixup key
+ )
+ fixup key = do
-- fixup from an interrupted add; the symlink
-- is present but not yet added to git
showStart "add" file