unused --from: Allow specifiying a repository by uuid or description.
This commit was sponsored by Jake Vosloo on Patreon.
This commit is contained in:
parent
7f2e76c462
commit
cc2cb46857
4 changed files with 23 additions and 16 deletions
|
@ -16,6 +16,7 @@ git-annex (6.20180627) UNRELEASED; urgency=medium
|
||||||
so they're available even when the standalone tarball is installed
|
so they're available even when the standalone tarball is installed
|
||||||
in a directory owned by root. Note that this prevents using the
|
in a directory owned by root. Note that this prevents using the
|
||||||
standalone bundle in environments where HOME is not writable.
|
standalone bundle in environments where HOME is not writable.
|
||||||
|
* unused --from: Allow specifiying a repository by uuid or description.
|
||||||
|
|
||||||
-- Joey Hess <id@joeyh.name> Fri, 22 Jun 2018 10:36:22 -0400
|
-- Joey Hess <id@joeyh.name> Fri, 22 Jun 2018 10:36:22 -0400
|
||||||
|
|
||||||
|
|
|
@ -93,15 +93,15 @@ checkUnused refspec = chain 0
|
||||||
v' <- a v
|
v' <- a v
|
||||||
chain v' as
|
chain v' as
|
||||||
|
|
||||||
checkRemoteUnused :: String -> RefSpec -> CommandPerform
|
checkRemoteUnused :: RemoteName -> RefSpec -> CommandPerform
|
||||||
checkRemoteUnused name refspec = go =<< fromJust <$> Remote.byNameWithUUID (Just name)
|
checkRemoteUnused remotename refspec = go =<< Remote.nameToUUID remotename
|
||||||
where
|
where
|
||||||
go r = do
|
go u = do
|
||||||
showAction "checking for unused data"
|
showAction "checking for unused data"
|
||||||
_ <- check "" (remoteUnusedMsg r) (remoteunused r) 0
|
r <- Remote.byUUID u
|
||||||
|
_ <- check "" (remoteUnusedMsg r remotename) (remoteunused u) 0
|
||||||
next $ return True
|
next $ return True
|
||||||
remoteunused r = excludeReferenced refspec
|
remoteunused u = excludeReferenced refspec =<< loggedKeysFor u
|
||||||
<=< loggedKeysFor $ Remote.uuid r
|
|
||||||
|
|
||||||
check :: FilePath -> ([(Int, Key)] -> String) -> Annex [Key] -> Int -> Annex Int
|
check :: FilePath -> ([(Int, Key)] -> String) -> Annex [Key] -> Int -> Annex Int
|
||||||
check file msg a c = do
|
check file msg a c = do
|
||||||
|
@ -142,16 +142,14 @@ unusedMsg' u mheader mtrailer = unlines $
|
||||||
["(To see where data was previously used, try: git log --stat -S'KEY')"] ++
|
["(To see where data was previously used, try: git log --stat -S'KEY')"] ++
|
||||||
mtrailer
|
mtrailer
|
||||||
|
|
||||||
remoteUnusedMsg :: Remote -> [(Int, Key)] -> String
|
remoteUnusedMsg :: Maybe Remote -> RemoteName -> [(Int, Key)] -> String
|
||||||
remoteUnusedMsg r u = unusedMsg' u
|
remoteUnusedMsg mr remotename u = unusedMsg' u
|
||||||
["Some annexed data on " ++ name ++ " is not used by any files:"]
|
["Some annexed data on " ++ remotename ++ " is not used by any files:"]
|
||||||
[dropMsg $ Just r]
|
(if isJust mr then [dropMsg (Just remotename)] else [])
|
||||||
where
|
|
||||||
name = Remote.name r
|
|
||||||
|
|
||||||
dropMsg :: Maybe Remote -> String
|
dropMsg :: Maybe RemoteName -> String
|
||||||
dropMsg Nothing = dropMsg' ""
|
dropMsg Nothing = dropMsg' ""
|
||||||
dropMsg (Just r) = dropMsg' $ " --from " ++ Remote.name r
|
dropMsg (Just remotename) = dropMsg' $ " --from " ++ remotename
|
||||||
dropMsg' :: String -> String
|
dropMsg' :: String -> String
|
||||||
dropMsg' s = "\nTo remove unwanted data: git-annex dropunused" ++ s ++ " NUMBER\n"
|
dropMsg' s = "\nTo remove unwanted data: git-annex dropunused" ++ s ++ " NUMBER\n"
|
||||||
|
|
||||||
|
|
|
@ -24,9 +24,12 @@ For example, to move all unused data to origin:
|
||||||
|
|
||||||
Only show unused temp and bad files.
|
Only show unused temp and bad files.
|
||||||
|
|
||||||
* `--from=remote`
|
* `--from=repository`
|
||||||
|
|
||||||
Check for unused data that is located on a remote.
|
Check for unused data that is located in a repository.
|
||||||
|
|
||||||
|
The repository should be specified using the name of a configured remote,
|
||||||
|
or the UUID or description of a repository.
|
||||||
|
|
||||||
* `--used-refspec=+ref:-ref`
|
* `--used-refspec=+ref:-ref`
|
||||||
|
|
||||||
|
|
|
@ -7,3 +7,8 @@ git annex unused supports an --from option to select a specific remote to find u
|
||||||
[...]
|
[...]
|
||||||
|
|
||||||
As git annex at least for newly-deleted files knows when those are stored in the given repository, git annex should at least find those.
|
As git annex at least for newly-deleted files knows when those are stored in the given repository, git annex should at least find those.
|
||||||
|
|
||||||
|
> [[done]], made it suppose the uuid or description.
|
||||||
|
>
|
||||||
|
> Of course, `dropunused --from` still needs the name of a remote, so this
|
||||||
|
> is only useful for querying.. --[[Joey]]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue