added --unlocked and --locked

This commit is contained in:
Joey Hess 2019-09-19 12:20:35 -04:00
parent fda1bdd679
commit b13a350556
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
6 changed files with 48 additions and 0 deletions

View file

@ -1,6 +1,7 @@
git-annex (7.20190913) UNRELEASED; urgency=medium
* Added --mimetype and --mimeencoding file matching options.
* Added --unlocked and --locked file matching options.
-- Joey Hess <id@joeyh.name> Thu, 19 Sep 2019 11:11:19 -0400

View file

@ -292,6 +292,16 @@ keyMatchingOptions' =
<> help "match files by mime encoding"
<> hidden
)
, globalFlag Limit.addUnlocked
( long "unlocked"
<> help "match files that are unlocked"
<> hidden
)
, globalFlag Limit.addLocked
( long "locked"
<> help "match files that are locked"
<> hidden
)
]
-- Options to match files which may not yet be annexed.

View file

@ -129,6 +129,22 @@ matchMagic _limitname querymagic selectprovidedinfo (Just magic) glob = Right $
matchMagic limitname _ _ Nothing _ =
Left $ "unable to load magic database; \""++limitname++"\" cannot be used"
addUnlocked :: Annex ()
addUnlocked = addLimit $ Right $ const $ matchLockStatus False
addLocked :: Annex ()
addLocked = addLimit $ Right $ const $ matchLockStatus True
matchLockStatus :: Bool -> MatchInfo -> Annex Bool
matchLockStatus _ (MatchingKey _ _) = pure False
matchLockStatus _ (MatchingInfo _) = pure False
matchLockStatus wantlocked (MatchingFile fi) = liftIO $ do
islocked <- isPointerFile (currFile fi) >>= \case
Just _key -> return False
Nothing -> isSymbolicLink
<$> getSymbolicLinkStatus (currFile fi)
return (islocked == wantlocked)
{- Adds a limit to skip files not believed to be present
- in a specfied repository. Optionally on a prior date. -}
addIn :: String -> Annex ()

View file

@ -0,0 +1,11 @@
[[!comment format=mdwn
username="joey"
subject="""comment 2"""
date="2019-09-19T16:14:26Z"
content="""
`git status` only finds unlocked files that have recently been unlocked but
not committed. (In v5 there were no other kind, but it won't find them all
in v7.)
I've added a --unlocked option to find them.
"""]]

View file

@ -159,6 +159,14 @@ in either of two repositories.
If the OS or filesystem does not support access times, this will not
match any files.
* `--unlocked`
Matches annexed files that are unlocked.
* `--locked`
Matches annexed files that are locked.
* `--mimetype=glob`
Looks up the MIME type of a file, and checks if the glob matches it.

View file

@ -1 +1,3 @@
As suggested at [[forum/Find_unlocked__47__locked_files]], can the file matching conditions be extended to be able to find unlocked files?
> sure, [[done]] --[[Joey]]