aboutsummaryrefslogtreecommitdiff
path: root/Annex/View
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-02-22 16:09:00 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-02-22 16:27:53 -0400
commit5463fc4d8df52be0c0232f1c44956b2227ad193c (patch)
tree962f51d8ea211be290184077ed53667441b3b3b7 /Annex/View
parentad42a4de9c5fa08456de01b5e41350fff4499189 (diff)
views: add automatically constructed file location metadata
When constructing views, metadata is available about the location of the file in the view's reference branch. Allows incorporating parts of the directory hierarchy in a view. For example `git annex view tag=* podcasts/=*` makes a view in the form tag/showname. Performance impact: I benchmarked git annex view tag=* in the conference proceedings repo to take 6.459s before this change, and 6.544s after. FWIW, I considered making the syntax for this be podcasts/*, which might be easier for the user to learn. However, I think it's not as good: * The user has to then juggle two different syntaxes, and podcasts/* will be expanded by the shell so they also need to quote it, while podcasts/=* is unlikely to be expanded by the shell. * It would allow for things like podcasts/*/* and *.mp3 which do not map well into views. This commit was sponsored by Aurélien Pinceaux.
Diffstat (limited to 'Annex/View')
-rw-r--r--Annex/View/ViewedFile.hs2
1 files changed, 2 insertions, 0 deletions
diff --git a/Annex/View/ViewedFile.hs b/Annex/View/ViewedFile.hs
index 61be3cffc..5733d4c94 100644
--- a/Annex/View/ViewedFile.hs
+++ b/Annex/View/ViewedFile.hs
@@ -48,6 +48,8 @@ viewedFileFromReference f = concat
escape :: String -> String
escape = replace "%" "\\%" . replace "\\" "\\\\"
+{- For use when operating already within a view, so whatever filepath
+ - is present in the work tree is already a ViewedFile. -}
viewedFileReuse :: MkViewedFile
viewedFileReuse = takeFileName