diff options
Diffstat (limited to 'Git/Repair.hs')
-rw-r--r-- | Git/Repair.hs | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/Git/Repair.hs b/Git/Repair.hs index 43f0a56..77a592b 100644 --- a/Git/Repair.hs +++ b/Git/Repair.hs @@ -135,11 +135,16 @@ retrieveMissingObjects missing referencerepo r pullremotes tmpr rmts fetchrefs (FsckFoundMissing stillmissing t) , pullremotes tmpr rmts fetchrefs ms ) - fetchfrom fetchurl ps = runBool $ - [ Param "fetch" - , Param fetchurl - , Params "--force --update-head-ok --quiet" - ] ++ ps + fetchfrom fetchurl ps fetchr = runBool ps' fetchr' + where + ps' = + [ Param "fetch" + , Param fetchurl + , Params "--force --update-head-ok --quiet" + ] ++ ps + fetchr' = fetchr { gitGlobalOpts = gitGlobalOpts fetchr ++ nogc } + nogc = [ Param "-c", Param "gc.auto=0" ] + -- fetch refs and tags fetchrefstags = [ Param "+refs/heads/*:refs/heads/*", Param "--tags"] -- Fetch all available refs (more likely to fail, @@ -222,7 +227,7 @@ badBranches missing r = filterM isbad =<< getAllRefs r getAllRefs :: Repo -> IO [Ref] getAllRefs r = map toref <$> dirContentsRecursive refdir where - refdir = localGitDir r </> "refs" + refdir = localGitDir r </> "refs" toref = Ref . relPathDirToFile (localGitDir r) explodePackedRefsFile :: Repo -> IO () @@ -411,7 +416,7 @@ displayList items header putStrLn header putStr $ unlines $ map (\i -> "\t" ++ i) truncateditems where - numitems = length items + numitems = length items truncateditems | numitems > 10 = take 10 items ++ ["(and " ++ show (numitems - 10) ++ " more)"] | otherwise = items |