when git version >= 2.18, git command could run with git wire protocol version 2 param if enabled (#7047)

This commit is contained in:
Lunny Xiao 2019-05-26 17:50:06 +08:00 committed by GitHub
parent 6c16febe4d
commit 063fa99159
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 28 additions and 13 deletions

View file

@ -16,12 +16,13 @@ import (
var (
// Git settings
Git = struct {
DisableDiffHighlight bool
MaxGitDiffLines int
MaxGitDiffLineCharacters int
MaxGitDiffFiles int
GCArgs []string `delim:" "`
Timeout struct {
DisableDiffHighlight bool
MaxGitDiffLines int
MaxGitDiffLineCharacters int
MaxGitDiffFiles int
GCArgs []string `delim:" "`
EnableAutoGitWireProtocol bool
Timeout struct {
Default int
Migrate int
Mirror int
@ -30,11 +31,12 @@ var (
GC int `ini:"GC"`
} `ini:"git.timeout"`
}{
DisableDiffHighlight: false,
MaxGitDiffLines: 1000,
MaxGitDiffLineCharacters: 5000,
MaxGitDiffFiles: 100,
GCArgs: []string{},
DisableDiffHighlight: false,
MaxGitDiffLines: 1000,
MaxGitDiffLineCharacters: 5000,
MaxGitDiffFiles: 100,
GCArgs: []string{},
EnableAutoGitWireProtocol: true,
Timeout: struct {
Default int
Migrate int
@ -64,10 +66,19 @@ func newGit() {
log.Fatal("Error retrieving git version: %v", err)
}
log.Info("Git Version: %s", binVersion)
if version.Compare(binVersion, "2.9", ">=") {
// Explicitly disable credential helper, otherwise Git credentials might leak
git.GlobalCommandArgs = append(git.GlobalCommandArgs, "-c", "credential.helper=")
}
var format = "Git Version: %s"
var args = []interface{}{binVersion}
// Since git wire protocol has been released from git v2.18
if Git.EnableAutoGitWireProtocol && version.Compare(binVersion, "2.18", ">=") {
git.GlobalCommandArgs = append(git.GlobalCommandArgs, "-c", "protocol.version=2")
format += ", Wire Protocol %s Enabled"
args = append(args, "Version 2") // for focus color
}
log.Info(format, args...)
}