summaryrefslogtreecommitdiff
path: root/Types/FileMatcher.hs
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2021-05-03 11:26:18 -0400
committerJoey Hess <joeyh@joeyh.name>2021-05-03 11:26:18 -0400
commit4588668a12f4f9b43cd6875b8ff45d7f3f6ffb1a (patch)
tree9cc964a8032dfa9017b5fa88659375acb8288a4a /Types/FileMatcher.hs
parent58fc6a1cdf4958165895184fc5c8b01442eabeea (diff)
fromkey unlocked files support
fromkey: Create an unlocked file when used in an adjusted branch where the file should be unlocked, or when configured by annex.addunlocked. There is some overlap with code in Annex.Ingest, however it's not quite the same because ingesting has a temp file with the content, where here the content, if any, is in the annex object file. So it eg, makes sense for Annex.Ingest to copy the execute mode of the content file, but it does not make sense for fromkey to do that. Also changed in passing to stage the file in git directly, rather than using git add. One consequence of that is that if the file is gitignored, it will still get added, rather than the old behavior: The following paths are ignored by one of your .gitignore files: ignored hint: Use -f if you really want to add them. hint: Turn this message off by running hint: "git config advice.addIgnoredFile false" git-annex: user error (xargs ["-0","git","--git-dir=.git","--work-tree=.","--literal-pathspecs","add","--"] exited 123) That old behavior was a surprise to me, and so I consider it a bug, and doubt anyone would have relied on it. Note that, when on an --hide-missing branch, it is possible to fromkey a key that is not present (needs --force). The annex link or pointer file still gets written in this case. It doesn't seem to make any sense not to write it, because then fromkey would not do anything useful in this case, and this way the file can be committed and synced to master, and the branch re-adjusted to hide the new missing file. This commit was sponsored by Noam Kremen on Patreon.
Diffstat (limited to 'Types/FileMatcher.hs')
-rw-r--r--Types/FileMatcher.hs10
1 files changed, 10 insertions, 0 deletions
diff --git a/Types/FileMatcher.hs b/Types/FileMatcher.hs
index cf251cd47d..005934b9ee 100644
--- a/Types/FileMatcher.hs
+++ b/Types/FileMatcher.hs
@@ -47,6 +47,16 @@ data ProvidedInfo = ProvidedInfo
, providedLinkType :: Maybe LinkType
}
+keyMatchInfoWithoutContent :: Key -> RawFilePath -> MatchInfo
+keyMatchInfoWithoutContent key file = MatchingInfo $ ProvidedInfo
+ { providedFilePath = Just file
+ , providedKey = Just key
+ , providedFileSize = Nothing
+ , providedMimeType = Nothing
+ , providedMimeEncoding = Nothing
+ , providedLinkType = Nothing
+ }
+
-- This is used when testing a matcher, with values to match against
-- provided by the user.
data UserProvidedInfo = UserProvidedInfo