diff options
-rw-r--r-- | Command/Add.hs | 19 | ||||
-rw-r--r-- | debian/changelog | 2 | ||||
-rw-r--r-- | doc/git-annex-add.mdwn | 3 | ||||
-rw-r--r-- | doc/todo/__171__git_annex_add__187___for_symlinks_in_direct_mode.mdwn | 2 | ||||
-rw-r--r-- | doc/todo/__171__git_annex_add__187___for_symlinks_in_direct_mode/comment_3_0039faa19e35eada1ff17eac6fbcab29._comment | 15 |
5 files changed, 34 insertions, 7 deletions
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 diff --git a/debian/changelog b/debian/changelog index 45619ea2a..d6db9d106 100644 --- a/debian/changelog +++ b/debian/changelog @@ -23,6 +23,8 @@ git-annex (5.20150618) UNRELEASED; urgency=medium shared libraries including libyaml. * import: Fix failure of cross-device import on Windows. * merge: Avoid creating the synced/master branch. + * add: Stage symlinks the same as git add would, even if they are not a + link to annexed content. -- Joey Hess <id@joeyh.name> Thu, 02 Jul 2015 12:31:14 -0400 diff --git a/doc/git-annex-add.mdwn b/doc/git-annex-add.mdwn index 303b656b8..ee5f499d9 100644 --- a/doc/git-annex-add.mdwn +++ b/doc/git-annex-add.mdwn @@ -18,6 +18,9 @@ If annex.largefiles is configured, and does not match a file that is being added, `git annex add` will behave the same as `git add` and add the non-large file directly to the git repository, instead of to the annex. +This command can also be used to add symbolic links, both symlinks to +annexed content, and other symlinks. + # OPTIONS * `--include-dotfiles` diff --git a/doc/todo/__171__git_annex_add__187___for_symlinks_in_direct_mode.mdwn b/doc/todo/__171__git_annex_add__187___for_symlinks_in_direct_mode.mdwn index 196b8f420..751ee1942 100644 --- a/doc/todo/__171__git_annex_add__187___for_symlinks_in_direct_mode.mdwn +++ b/doc/todo/__171__git_annex_add__187___for_symlinks_in_direct_mode.mdwn @@ -6,3 +6,5 @@ Is there already a good way of adding symlinks in direct mode? If not, I would f Best regards, T. + +> [[fixed|done]] --[[Joey]] diff --git a/doc/todo/__171__git_annex_add__187___for_symlinks_in_direct_mode/comment_3_0039faa19e35eada1ff17eac6fbcab29._comment b/doc/todo/__171__git_annex_add__187___for_symlinks_in_direct_mode/comment_3_0039faa19e35eada1ff17eac6fbcab29._comment new file mode 100644 index 000000000..d9b2d2b77 --- /dev/null +++ b/doc/todo/__171__git_annex_add__187___for_symlinks_in_direct_mode/comment_3_0039faa19e35eada1ff17eac6fbcab29._comment @@ -0,0 +1,15 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 3""" + date="2015-07-07T20:02:02Z" + content=""" +Recently, `git annex add` started adding files +to git, if annex.largefiles didn't match them. + +So, it's possible to use that to add eg, source files. But it currently +skips symlinks (unless they're git-annex symlinks). + +What I think makes sense to do is make it also process +symlinks, and always check them into git as-is. So, git-annex add becomes +like git-add except smart about adding large files to the annex. +"""]] |