From b68b110dda6db2917a418b24ce7372aca6307fd1 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 7 Jul 2015 17:31:30 -0400 Subject: Only look at reflogs for relevant branches, not for git-annex branches This speeds it up quite a bit.. May still be too slow in large repos. --- Command/Unused.hs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Command') diff --git a/Command/Unused.hs b/Command/Unused.hs index 647fd6762..77a9a92c3 100644 --- a/Command/Unused.hs +++ b/Command/Unused.hs @@ -219,7 +219,7 @@ withKeysReferencedInGit refspec a = do shaHead <- maybe (return Nothing) (inRepo . Git.Ref.sha) current rs <- relevantrefs (shaHead, current) <$> inRepo (Git.Command.pipeReadStrict [Param "show-ref"]) - usedrefs <- applyRefSpec refspec rs (inRepo Git.RefLog.getAll) + usedrefs <- applyRefSpec refspec rs (getreflog rs) forM_ usedrefs $ withKeysReferencedInGitRef a where @@ -242,6 +242,7 @@ withKeysReferencedInGit refspec a = do Git.Ref.headRef : nubRefs (filter ((/= x) . fst) refs) _ -> nubRefs refs + getreflog rs = inRepo $ Git.RefLog.getMulti rs {- Runs an action on keys referenced in the given Git reference which - differ from those referenced in the work tree. -} -- cgit v1.2.3