diff options
author | Joey Hess <joeyh@joeyh.name> | 2015-12-04 13:02:56 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2015-12-04 13:03:39 -0400 |
commit | 13ae7961f9ff251ac4c0d92823ebb7cf6577ce33 (patch) | |
tree | f15423500aff7434a7b80b5824e24b40f77a34cd | |
parent | 01bf5a9ec04c2e6711e33d6b43562528d3ab7ae4 (diff) |
skeleton smudge/clean filters
-rw-r--r-- | CmdLine/GitAnnex.hs | 4 | ||||
-rw-r--r-- | Command/Clean.hs | 29 | ||||
-rw-r--r-- | Command/Smudge.hs | 29 | ||||
-rw-r--r-- | doc/git-annex-clean.mdwn | 36 | ||||
-rw-r--r-- | doc/git-annex-smudge.mdwn | 31 | ||||
-rw-r--r-- | doc/git-annex.mdwn | 6 | ||||
-rw-r--r-- | doc/todo/smudge.mdwn | 4 |
7 files changed, 137 insertions, 2 deletions
diff --git a/CmdLine/GitAnnex.hs b/CmdLine/GitAnnex.hs index f585bff3e..ee3108206 100644 --- a/CmdLine/GitAnnex.hs +++ b/CmdLine/GitAnnex.hs @@ -96,6 +96,8 @@ import qualified Command.Upgrade import qualified Command.Forget import qualified Command.Proxy import qualified Command.DiffDriver +import qualified Command.Smudge +import qualified Command.Clean import qualified Command.Undo import qualified Command.Version #ifdef WITH_ASSISTANT @@ -201,6 +203,8 @@ cmds testoptparser testrunner = , Command.Forget.cmd , Command.Proxy.cmd , Command.DiffDriver.cmd + , Command.Smudge.cmd + , Command.Clean.cmd , Command.Undo.cmd , Command.Version.cmd #ifdef WITH_ASSISTANT diff --git a/Command/Clean.hs b/Command/Clean.hs new file mode 100644 index 000000000..9af862fb0 --- /dev/null +++ b/Command/Clean.hs @@ -0,0 +1,29 @@ +{- git-annex command + - + - Copyright 2015 Joey Hess <id@joeyh.name> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Command.Clean where + +import Common.Annex +import Command +import Annex.Content +import Annex.Link +import Git.Types + +cmd :: Command +cmd = dontCheck repoExists $ + command "clean" SectionPlumbing + "git clean filter" + paramFile (withParams seek) + +seek :: CmdParams -> CommandSeek +seek = withWords start + +start :: [String] -> CommandStart +start [file] = do + error ("clean " ++ file) +start [] = error "clean filter run without filename; upgrade git" +start _ = error "clean filter passed multiple filenames" diff --git a/Command/Smudge.hs b/Command/Smudge.hs new file mode 100644 index 000000000..22f9efd69 --- /dev/null +++ b/Command/Smudge.hs @@ -0,0 +1,29 @@ +{- git-annex command + - + - Copyright 2015 Joey Hess <id@joeyh.name> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Command.Smudge where + +import Common.Annex +import Command +import Annex.Content +import Annex.Link +import Git.Types + +cmd :: Command +cmd = dontCheck repoExists $ + command "smudge" SectionPlumbing + "git smudge filter" + paramFile (withParams seek) + +seek :: CmdParams -> CommandSeek +seek = withWords start + +start :: [String] -> CommandStart +start [file] = do + error ("smudge " ++ file) +start [] = error "smudge filter run without filename; upgrade git" +start _ = error "smudge filter passed multiple filenames" diff --git a/doc/git-annex-clean.mdwn b/doc/git-annex-clean.mdwn new file mode 100644 index 000000000..13099a544 --- /dev/null +++ b/doc/git-annex-clean.mdwn @@ -0,0 +1,36 @@ +# NAME + +git-annex clean - git filter driver for git-annex + +# SYNOPSIS + +git annex clean + +# DESCRIPTION + +When git-annex is used as a git filter driver, this command is run +by git commands such as `git add`. It generates a file that +is added to the git repository and points to the git-annex object +containing the content of a large file. + +To configure git to use git-annex as a git filter driver, place the +following in the .gitattributes file: + + * filter=annex + .* !filter + +The annex.largefiles config is consulted to decide if a given file should +be added to git as-is, or if its content are large enough to need to use +git-annex. + +# SEE ALSO + +[[git-annex]](1) + +[[git-annex-smudge]](1) + +# AUTHOR + +Joey Hess <id@joeyh.name> + +Warning: Automatically converted into a man page by mdwn2man. Edit with care. diff --git a/doc/git-annex-smudge.mdwn b/doc/git-annex-smudge.mdwn new file mode 100644 index 000000000..ae28be2c7 --- /dev/null +++ b/doc/git-annex-smudge.mdwn @@ -0,0 +1,31 @@ +# NAME + +git-annex smudge - git filter driver for git-annex + +# SYNOPSIS + +git annex smudge + +# DESCRIPTION + +When git-annex is used as a git filter driver, this command is run +by git commands such as `git checkout` and outputs the content of annexed +objects that pointer files point to. + +To configure git to use git-annex as a git filter driver, place the +following in the .gitattributes file: + + * filter=annex + .* !filter + +# SEE ALSO + +[[git-annex]](1) + +[[git-annex-clean]](1) + +# AUTHOR + +Joey Hess <id@joeyh.name> + +Warning: Automatically converted into a man page by mdwn2man. Edit with care. diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn index 2020ccf3f..a8cb73b1b 100644 --- a/doc/git-annex.mdwn +++ b/doc/git-annex.mdwn @@ -626,6 +626,12 @@ subdirectories). See [[git-annex-diffdriver]](1) for details. +* `smudge`, `clean` + + These let git-annex be used as a git filter driver. + + See [[git-annex-smudge]](1) and [[git-annex-clean]](1) for details. + * `remotedaemon` Detects when network remotes have received git pushes and fetches from them. diff --git a/doc/todo/smudge.mdwn b/doc/todo/smudge.mdwn index aea0c9b98..094b5f880 100644 --- a/doc/todo/smudge.mdwn +++ b/doc/todo/smudge.mdwn @@ -177,8 +177,8 @@ Configuration: the annex. Other files are passed through the smudge/clean as-is and have their contents stored in git. -* annex.direct is repurposed to configure how the assistant adds files. - When set to true, they're added unlocked. +* annex.direct is repurposed to configure how git-annex adds files. + When set to false, it adds symlinks and when true it adds pointer files. git-annex clean: |