aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-05-14 15:44:08 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-05-14 15:44:08 -0400
commitca433a6dae1e76a40e741b61113a59e48be575db (patch)
tree4557066b970e3f7bc5ec5eafa246e4d722a2d513
parent9ef82700e53d82b38aed603c5c8033d09fe3cf3f (diff)
add annex.used-refspec
-rw-r--r--Command/Unused.hs4
-rw-r--r--Types/GitConfig.hs4
-rw-r--r--debian/changelog5
-rw-r--r--doc/git-annex-unused.mdwn5
-rw-r--r--doc/git-annex.mdwn5
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 <id@joeyh.name> 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