add: Stage symlinks the same as git add would, even if they are not a link to annexed content.
This commit is contained in:
parent
772dd88ae9
commit
81ad277a85
5 changed files with 34 additions and 7 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue