Skip to content

Commit

Permalink
VCS tests: Quieter output
Browse files Browse the repository at this point in the history
This prevents the tests from spamming lots of output, making it easier
to watch them as they run.

Before:

```
      check VCS test framework:                                                 10% warning: refname 'd6077f476a7c17fe8528e62688a19cc5bddbfbdc' is ambiguous.
Git normally never creates a ref that ends with 40 hex characters
because it will be ignored when you just specify 40-hex. These refs
may be created by mistake. For example,

  git switch -c $br $(git rev-parse ...)

where "$br" is somehow empty and a 40-hex ref is created. Please
examine these refs and maybe delete them. Turn this message off by
running "git config advice.objectNameWarning false"
rm 'file/C'
Cloning into '/private/var/folders/z5/fclwwdms3r1gq4k4p3pkvvc00000gn/T/vcstest-64269/src/file/C'...
done.
Submodule path 'file/C': checked out '210af0166ade8b306b425782305b8c6e910aa2c0'
Cloning into '/private/var/folders/z5/fclwwdms3r1gq4k4p3pkvvc00000gn/T/vcstest-64267/src/file/D'...
done.
Submodule path 'file/D': checked out '95b580ef06aec22b38f6e0a5c3305d5c293669a0'
branch 'branch_D' set up to track 'main'.
branch 'branch_C' set up to track 'main'.
rm 'file/C'
Cloning into '/private/var/folders/z5/fclwwdms3r1gq4k4p3pkvvc00000gn/T/vcstest-64269/src/file/C'...
done.
rm 'file/D'
Submodule path 'file/C': checked out 'ee47ffdda57945d841bc7f59ea72a78043c4ac02'
Cloning into '/private/var/folders/z5/fclwwdms3r1gq4k4p3pkvvc00000gn/T/vcstest-64267/src/file/D'...
done.
Submodule path 'file/D': checked out '23d9b5f39ae56c429dd9498d42338d27ea4e6545'
```

After:

```
  UnitTests.Distribution.Client.VCS
    git
      check VCS test framework:                                                 warning: --depth is ignored in local clones; use file:// instead.
warning: refname 'fbfe708a98c79a7c97e83609275b0f604f26e18b' is ambiguous.
Git normally never creates a ref that ends with 40 hex characters
because it will be ignored when you just specify 40-hex. These refs
may be created by mistake. For example,

  git switch -c $br $(git rev-parse ...)

where "$br" is somehow empty and a 40-hex ref is created. Please
examine these refs and maybe delete them. Turn this message off by
running "git config advice.objectNameWarning false"
warning: --depth is ignored in local clones; use file:// instead.
warning: --depth is ignored in local clones; use file:// instead.
warning: refname 'dc2abca0fd032b5cdd8904e6931679b4d6e6b25b' is ambiguous.
Git normally never creates a ref that ends with 40 hex characters
because it will be ignored when you just specify 40-hex. These refs
may be created by mistake. For example,

  git switch -c $br $(git rev-parse ...)

where "$br" is somehow empty and a 40-hex ref is created. Please
examine these refs and maybe delete them. Turn this message off by
running "git config advice.objectNameWarning false"
```

These warnings require semantic changes which will come in a separate
PR.
  • Loading branch information
9999years committed Nov 22, 2024
1 parent 75cac83 commit 86fed33
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 10 deletions.
2 changes: 1 addition & 1 deletion cabal-install/src/Distribution/Client/VCS.hs
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,7 @@ vcsGit =
-- is needed because sometimes `git submodule sync` does not actually
-- update the submodule source URL. Detailed description here:
-- https://git.coop/-/snippets/85
git localDir ["submodule", "deinit", "--force", "--all"]
git localDir $ ["submodule", "deinit", "--force", "--all"] ++ verboseArg
let gitModulesDir = localDir </> ".git" </> "modules"
gitModulesExists <- doesDirectoryExist gitModulesDir
when gitModulesExists $
Expand Down
25 changes: 16 additions & 9 deletions cabal-install/tests/UnitTests/Distribution/Client/VCS.hs
Original file line number Diff line number Diff line change
Expand Up @@ -878,17 +878,17 @@ vcsTestDriverGit verbosity vcs submoduleDir repoRoot =
(||)
<$> doesFileExist (repoRoot </> dest)
<*> doesDirectoryExist (repoRoot </> dest)
when destExists $ git ["rm", "-f", dest]
when destExists $ gitQuiet ["rm", "--force", dest]
-- If there is an old submodule git dir with the same name, remove it.
-- It most likely has a different URL and `git submodule add` will fai.
submoduleGitDirExists <- doesDirectoryExist $ submoduleGitDir dest
when submoduleGitDirExists $ removeDirectoryRecursive (submoduleGitDir dest)
git ["submodule", "add", source, dest]
git ["submodule", "update", "--init", "--recursive", "--force"]
gitQuiet ["submodule", "add", source, dest]
gitQuiet ["submodule", "update", "--init", "--recursive", "--force"]
, vcsSwitchBranch = \RepoState{allBranches} branchname -> do
deinitAndRemoveCachedSubmodules
unless (branchname `Map.member` allBranches) $
git ["branch", branchname]
git $ ["branch", branchname] ++ verboseArg
git $ ["checkout", branchname] ++ verboseArg
updateSubmodulesAndCleanup
, vcsCheckoutTag = Left $ \tagname -> do
Expand All @@ -915,24 +915,31 @@ vcsTestDriverGit verbosity vcs submoduleDir repoRoot =
]
}
}

gitInvocation args =
(programInvocation (vcsProgram vcs') args)
{ progInvokeCwd = Just repoRoot
}

git = runProgramInvocation verbosity . gitInvocation
git' = getProgramInvocationOutput verbosity . gitInvocation

gitQuiet [] = git []
gitQuiet (cmd:args) = git (cmd : verboseArg ++ args)

verboseArg = ["--quiet" | verbosity < Verbosity.normal]

submoduleGitDir path = repoRoot </> ".git" </> "modules" </> path
deinitAndRemoveCachedSubmodules = do
git $ ["submodule", "deinit", "--force", "--all"] ++ verboseArg
gitQuiet ["submodule", "deinit", "--force", "--all"]
let gitModulesDir = repoRoot </> ".git" </> "modules"
gitModulesExists <- doesDirectoryExist gitModulesDir
when gitModulesExists $ removeDirectoryRecursive gitModulesDir
updateSubmodulesAndCleanup = do
git $ ["submodule", "sync", "--recursive"] ++ verboseArg
git $ ["submodule", "update", "--init", "--recursive", "--force"] ++ verboseArg
git $ ["submodule", "foreach", "--recursive"] ++ verboseArg ++ ["git clean -ffxdq"]
git $ ["clean", "-ffxdq"] ++ verboseArg
gitQuiet ["submodule", "sync", "--recursive"]
gitQuiet ["submodule", "update", "--init", "--recursive", "--force"]
gitQuiet $ ["submodule", "foreach", "--recursive", "git clean -ffxdq"] ++ verboseArg
gitQuiet ["clean", "-ffxdq"]

type MTimeChange = Int

Expand Down

0 comments on commit 86fed33

Please sign in to comment.