From 032ee546c9cda12b4b85c05001220d47e8bbba4d Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 7 Jul 2015 16:15:30 -0400 Subject: add: Stage symlinks the same as git add would, even if they are not a link to annexed content. --- Command/Add.hs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'Command') diff --git a/Command/Add.hs b/Command/Add.hs index d53ba91ad..5f6f06cdb 100644 --- a/Command/Add.hs +++ b/Command/Add.hs @@ -66,10 +66,13 @@ startSmall :: FilePath -> CommandStart startSmall file = do showStart "add" file showNote "non-large file; adding content to git repository" - next $ do - params <- forceParams - Annex.Queue.addCommand "add" (params++[Param "--"]) [file] - next $ return True + next $ performAdd file + +performAdd :: FilePath -> CommandPerform +performAdd file = 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 @@ -81,11 +84,13 @@ start file = ifAnnexed file addpresent add ms <- liftIO $ catchMaybeIO $ getSymbolicLinkStatus file case ms of Nothing -> stop - Just s - | isSymbolicLink s || not (isRegularFile s) -> stop + Just s + | not (isRegularFile s) && not (isSymbolicLink s) -> stop | otherwise -> do showStart "add" file - next $ perform file + next $ if isSymbolicLink s + then performAdd file + else perform file addpresent key = ifM isDirect ( do ms <- liftIO $ catchMaybeIO $ getSymbolicLinkStatus file -- cgit v1.2.3