Skip to content

Commit

Permalink
Set uploadpack.allowFilter etc on gitconfig to enable partial clones …
Browse files Browse the repository at this point in the history
…with ssh

When setting.Git.DisablePartialClone is set to false then the
web server will add filter support to web http. It does this by using
`-c` command arguments but this will not work on gitea serv as the
upload-pack and receive-pack commands do not support this.

Instead we move these options into the .gitconfig instead.

Fix go-gitea#20400

Signed-off-by: Andrew Thornton <art27@cantab.net>
  • Loading branch information
zeripath committed Aug 21, 2022
1 parent 6d31814 commit b57e360
Showing 1 changed file with 14 additions and 6 deletions.
20 changes: 14 additions & 6 deletions modules/git/git.go
Original file line number Diff line number Diff line change
Expand Up @@ -185,11 +185,6 @@ func InitFull(ctx context.Context) (err error) {
globalCommandArgs = append(globalCommandArgs, "-c", "protocol.version=2")
}

// By default partial clones are disabled, enable them from git v2.22
if !setting.Git.DisablePartialClone && CheckGitVersionAtLeast("2.22") == nil {
globalCommandArgs = append(globalCommandArgs, "-c", "uploadpack.allowfilter=true", "-c", "uploadpack.allowAnySHA1InWant=true")
}

// Explicitly disable credential helper, otherwise Git credentials might leak
if CheckGitVersionAtLeast("2.9") == nil {
globalCommandArgs = append(globalCommandArgs, "-c", "credential.helper=")
Expand Down Expand Up @@ -286,7 +281,20 @@ func syncGitConfig() (err error) {
}
}

return nil
// By default partial clones are disabled, enable them from git v2.22
if !setting.Git.DisablePartialClone && CheckGitVersionAtLeast("2.22") == nil {
if err = configSet("uploadpack.allowfilter", "true"); err != nil {
return err
}
err = configSet("uploadpack.allowAnySHA1InWant", "true")
} else {
if err = configUnsetAll("uploadpack.allowfilter", "true"); err != nil {
return err
}
err = configUnsetAll("uploadpack.allowAnySHA1InWant", "true")
}

return err
}

// CheckGitVersionAtLeast check git version is at least the constraint version
Expand Down

0 comments on commit b57e360

Please sign in to comment.