avoid spurious blank line when updating adjusted branch
authorJoey Hess <joeyh@joeyh.name>
Mon, 16 Nov 2020 18:31:02 +0000 (14:31 -0400)
committerJoey Hess <joeyh@joeyh.name>
Mon, 16 Nov 2020 18:41:38 +0000 (14:41 -0400)
git checkout run with --quiet should have no output

Annex/AdjustedBranch.hs
doc/git-annex.mdwn

index 14467565aa0c53a607d174dfa3dd46e16dbe0ea8..4b28b04b8575dc48e363331c21f9a0f15eecd514 100644 (file)
@@ -223,19 +223,19 @@ enterAdjustedBranch adj = inRepo Git.Branch.current >>= \case
                        , do
                                b <- preventCommits $ const $ 
                                        adjustBranch adj origbranch
-                               checkoutAdjustedBranch b []
+                               checkoutAdjustedBranch b False
                        )
 
-checkoutAdjustedBranch :: AdjBranch -> [CommandParam] -> Annex Bool
-checkoutAdjustedBranch (AdjBranch b) checkoutparams = do
-       showOutput -- checkout can have output in large repos
+checkoutAdjustedBranch :: AdjBranch -> Bool -> Annex Bool
+checkoutAdjustedBranch (AdjBranch b) quietcheckout = do
+       -- checkout can have output in large repos
+       unless quietcheckout
+               showOutput
        inRepo $ Git.Command.runBool $
                [ Param "checkout"
                , Param $ fromRef $ Git.Ref.base b
-               -- always show checkout progress, even if --quiet is used
-               -- to suppress other messages
-               , Param "--progress"
-               ] ++ checkoutparams
+               , if quietcheckout then Param "--quiet" else Param "--progress"
+               ]
 
 {- Already in a branch with this adjustment, but the user asked to enter it
  - again. This should have the same result as propagating any commits
@@ -265,7 +265,7 @@ updateAdjustedBranch adj (AdjBranch currbranch) origbranch
        
                -- Make git checkout quiet to avoid warnings about
                -- disconnected branch tips being lost.
-               checkoutAdjustedBranch b [Param "--quiet"]
+               checkoutAdjustedBranch b True
        | otherwise = preventCommits $ \commitlck -> do
                -- Done for consistency.
                _ <- propigateAdjustedCommits' origbranch adj commitlck
@@ -302,7 +302,6 @@ adjustedBranchRefresh _af a = do
        checkcounter n
                -- Special case, 1 (or true) refreshes only at shutdown.
                | n == 1 = pure False
-               | n == 2 = pure True
                | otherwise = Annex.withState $ \s -> 
                        let !c = Annex.adjustedbranchrefreshcounter s + 1
                            !enough = c >= pred n
@@ -337,7 +336,7 @@ adjustToCrippledFileSystem = do
                        _ -> do
                                let adjbranch = originalToAdjusted currbranch adj
                                ifM (inRepo (Git.Ref.exists $ adjBranch adjbranch))
-                                       ( unlessM (checkoutAdjustedBranch adjbranch []) $
+                                       ( unlessM (checkoutAdjustedBranch adjbranch False) $
                                                failedenter
                                        , unlessM (enterAdjustedBranch adj) $
                                                failedenter
index 1c49bf408b634fd9e60075770ae068985bb65050..d19f333c09c643352a7fd652759bdda302983caa 100644 (file)
@@ -1023,11 +1023,12 @@ Like other git commands, git-annex is configured via `.git/config`.
   controls how frequently the branch is refreshed. 
 
   Refreshing the branch takes some time, so doing it after every file
-  can be too slow. The default value is 0 (or false), which does not
-  refresh the branch. 1 (or true) will refresh once, after git-annex
-  has made other changes. Higher values refresh after approximately that
-  many files need to be updated. Ie, 2 refreshes after every file,
-  and 100 after every 99 files.
+  can be too slow. (It also can generate a lot of dangling git objects.)
+  The default value is 0 (or false), which does not
+  refresh the branch. Setting 1 (or true) will refresh only once, 
+  after git-annex has made other changes. Setting 2 refreshes after every
+  file, 3 after every other file, and so on; setting 100 refreshes after
+  every 99 files.
 
   (If git-annex gets faster in the future, refresh rates will increase
   proportional to the speed improvements.)