From 48194f19595944c0eccb5eba937181e3b418baf4 Mon Sep 17 00:00:00 2001 From: Dmitry Zuikov Date: Thu, 6 Jun 2024 16:31:25 +0300 Subject: [PATCH] wip --- fixme-new/lib/Fixme/Scan/Git/Local.hs | 9 +++++---- fixme-new/lib/Fixme/State.hs | 8 ++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/fixme-new/lib/Fixme/Scan/Git/Local.hs b/fixme-new/lib/Fixme/Scan/Git/Local.hs index 6d4d92c5..2bc989f1 100644 --- a/fixme-new/lib/Fixme/Scan/Git/Local.hs +++ b/fixme-new/lib/Fixme/Scan/Git/Local.hs @@ -23,9 +23,11 @@ import Data.ByteString.Char8 qualified as BS import Data.ByteString.Lazy.Char8 qualified as LBS8 import Data.ByteString.Lazy (ByteString) import Data.Either +import Data.Fixed import Data.Maybe import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict qualified as HM +import Data.HashSet qualified as HS import Data.Text qualified as Text import Data.Text.Encoding (decodeUtf8With) import Data.Text.Encoding.Error (ignore) @@ -38,7 +40,7 @@ import System.Process.Typed import Control.Monad.Trans.Cont import System.IO qualified as IO import System.IO.Temp (emptySystemTempFile) - +import System.TimeIt import Data.Map qualified as Map @@ -156,13 +158,12 @@ scanGitLogLocal :: FixmePerks m -> FixmeM m () scanGitLogLocal refMask play = do warn $ red "scanGitLogLocal" <+> pretty refMask - warn $ yellow "STEP 1" <+> "get all known branches including remote" - refs <- listRefs + (t,refs) <- timeItT listRefs let hashes = fmap fst refs - warn $ yellow "STEP 2" <+> "for each branch --- get tree" + warn $ yellow "listRefs in" <+> pretty (realToFrac t :: Fixed E6) let pat = [(True, refMask)] diff --git a/fixme-new/lib/Fixme/State.hs b/fixme-new/lib/Fixme/State.hs index d4569adf..7f0a089b 100644 --- a/fixme-new/lib/Fixme/State.hs +++ b/fixme-new/lib/Fixme/State.hs @@ -24,6 +24,7 @@ module Fixme.State , cleanStage , insertProcessed , isProcessed + , selectProcessed , HasPredicate(..) ) where @@ -666,3 +667,10 @@ isProcessed what = do select @(Only (Maybe Int)) [qc| select null from fixmeprocessed where hash = ? limit 1 |] (Only k) <&> isJust . listToMaybe +selectProcessed :: (FixmePerks m, MonadReader FixmeEnv m) + => m [HashRef] +selectProcessed = withState do + select_ [qc|select hash from fixmeprocessed|] + <&> fmap fromOnly + +