From ca433a6dae1e76a40e741b61113a59e48be575db Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 14 May 2015 15:44:08 -0400 Subject: add annex.used-refspec --- Command/Unused.hs | 4 +++- Types/GitConfig.hs | 4 ++++ debian/changelog | 5 +++-- doc/git-annex-unused.mdwn | 5 ++++- doc/git-annex.mdwn | 5 +++++ 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Command/Unused.hs b/Command/Unused.hs index a5698c833..c92ece2d5 100644 --- a/Command/Unused.hs +++ b/Command/Unused.hs @@ -53,7 +53,9 @@ seek = withNothing start {- Finds unused content in the annex. -} start :: CommandStart start = do - !refspec <- maybe allRefSpec (either error id . parseRefSpec) + cfgrefspec <- fromMaybe allRefSpec . annexUsedRefSpec + <$> Annex.getGitConfig + !refspec <- maybe cfgrefspec (either error id . parseRefSpec) <$> Annex.getField (optionName refSpecOption) from <- Annex.getField (optionName unusedFromOption) let (name, action) = case from of diff --git a/Types/GitConfig.hs b/Types/GitConfig.hs index c0043ec04..aafd97cb9 100644 --- a/Types/GitConfig.hs +++ b/Types/GitConfig.hs @@ -22,6 +22,7 @@ import Types.Distribution import Types.Availability import Types.NumCopies import Types.Difference +import Types.RefSpec import Utility.HumanTime {- Main git-annex settings. Each setting corresponds to a git-config key @@ -59,6 +60,7 @@ data GitConfig = GitConfig , coreSymlinks :: Bool , gcryptId :: Maybe String , annexDifferences :: Differences + , annexUsedRefSpec :: Maybe RefSpec } extractGitConfig :: Git.Repo -> GitConfig @@ -97,6 +99,8 @@ extractGitConfig r = GitConfig , coreSymlinks = getbool "core.symlinks" True , gcryptId = getmaybe "core.gcrypt-id" , annexDifferences = getDifferences r + , annexUsedRefSpec = either (const Nothing) Just . parseRefSpec + =<< getmaybe (annex "used-refspec") } where getbool k d = fromMaybe d $ getmaybebool k diff --git a/debian/changelog b/debian/changelog index cdb371b73..c79519660 100644 --- a/debian/changelog +++ b/debian/changelog @@ -18,8 +18,9 @@ git-annex (5.20150508.2) UNRELEASED; urgency=medium running at once. * Stale transfer lock and info files will be cleaned up automatically when get/unused/info commands are run. - * unused: Add --used option, which can specify a set of refs to consider - used, rather than the default of considering all refs used. + * unused: Add --used option and annex.used-refspec, which can specify + a set of refs to consider used, rather than the default of considering + all refs used. -- Joey Hess Mon, 11 May 2015 12:45:06 -0400 diff --git a/doc/git-annex-unused.mdwn b/doc/git-annex-unused.mdwn index fbb371995..22fac5b7c 100644 --- a/doc/git-annex-unused.mdwn +++ b/doc/git-annex-unused.mdwn @@ -36,7 +36,10 @@ For example, to move all unused data to origin: is not in the specified refs (and not used by the work tree) will then be considered unused. -# REFSPEC + The git configuration annex.used-refspec can be used to configure + this in a more permanent fashion. + +# REFSPEC FORMAT The refspec format for --used-refspec is a colon-separated list of additions and removals of refs. For example: diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn index 3dc54a308..3c2e34429 100644 --- a/doc/git-annex.mdwn +++ b/doc/git-annex.mdwn @@ -813,6 +813,11 @@ Here are all the supported configuration settings. When importfeed is used, it stores additional metadata from the feed, such as the author, title, etc. +* `annex.used-refspec` + + This controls which refs `git-annex unused` considers to be used. + See REFSPEC FORMAT in [[git-annex-unused]](1) for details. + * `annex.queuesize` git-annex builds a queue of git commands, in order to combine similar -- cgit v1.2.3