make --in=here fast
Use the same optimisation for --in=here as has always been used for --in=. rather than the slow code path that unncessarily queries the git-annex branch. It looks like when "here" got added as an alias for "." back in 2012, I forgot about this place. Also sped up some very unlikely ways of referring to the current repository. Note that, this could in some rare corner case cause a behavior change, if the git-annex branch and inAnnex disagree about whether content is present in the local repository. But --in=. already behaved that way, and the truth on the ground should win also.
This commit is contained in:
parent
4ad33e7524
commit
d1a0c7b16f
2 changed files with 15 additions and 7 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
git-annex (7.20190731) UNRELEASED; urgency=medium
|
||||||
|
|
||||||
|
* Use the same optimisation for --in=here as has always been
|
||||||
|
used for --in=. rather than the slow code path that unncessarily
|
||||||
|
queries the git-annex branch.
|
||||||
|
|
||||||
|
-- Joey Hess <id@joeyh.name> Thu, 01 Aug 2019 00:11:56 -0400
|
||||||
|
|
||||||
git-annex (7.20190730) upstream; urgency=medium
|
git-annex (7.20190730) upstream; urgency=medium
|
||||||
|
|
||||||
* Improved probing when CoW copies can be made between files on the same
|
* Improved probing when CoW copies can be made between files on the same
|
||||||
|
|
14
Limit.hs
14
Limit.hs
|
@ -110,15 +110,15 @@ matchMagic limitname _ _ Nothing _ =
|
||||||
{- Adds a limit to skip files not believed to be present
|
{- Adds a limit to skip files not believed to be present
|
||||||
- in a specfied repository. Optionally on a prior date. -}
|
- in a specfied repository. Optionally on a prior date. -}
|
||||||
addIn :: String -> Annex ()
|
addIn :: String -> Annex ()
|
||||||
addIn s = addLimit =<< mk
|
addIn s = do
|
||||||
|
u <- Remote.nameToUUID name
|
||||||
|
hereu <- getUUID
|
||||||
|
addLimit $ if u == hereu && null date
|
||||||
|
then use inhere
|
||||||
|
else use (inuuid u)
|
||||||
where
|
where
|
||||||
(name, date) = separate (== '@') s
|
(name, date) = separate (== '@') s
|
||||||
mk
|
use a = Right $ checkKey . a
|
||||||
| name == "." = if null date
|
|
||||||
then use inhere
|
|
||||||
else use . inuuid =<< getUUID
|
|
||||||
| otherwise = use . inuuid =<< Remote.nameToUUID name
|
|
||||||
use a = return $ Right $ \notpresent -> checkKey (a notpresent)
|
|
||||||
inuuid u notpresent key
|
inuuid u notpresent key
|
||||||
| null date = do
|
| null date = do
|
||||||
us <- Remote.keyLocations key
|
us <- Remote.keyLocations key
|
||||||
|
|
Loading…
Reference in a new issue