+5
-2
knotserver/git/fork.go
+5
-2
knotserver/git/fork.go
···
1
1
package git
2
2
3
3
import (
4
+
"errors"
4
5
"fmt"
5
6
"os/exec"
6
7
···
34
35
func (g *GitRepo) TrackHiddenRemoteRef(forkRef, remoteRef string) error {
35
36
fetchOpts := &git.FetchOptions{
36
37
RefSpecs: []config.RefSpec{
37
-
config.RefSpec(fmt.Sprintf("+refs/heads/%s:refs/hidden/%s/%s", forkRef, forkRef, remoteRef)),
38
+
config.RefSpec(fmt.Sprintf("+refs/heads/%s:refs/hidden/%s/%s", remoteRef, forkRef, remoteRef)),
38
39
},
39
40
RemoteName: "origin",
40
41
}
41
42
42
43
err := g.r.Fetch(fetchOpts)
43
-
if err != nil {
44
+
if errors.Is(git.NoErrAlreadyUpToDate, err) {
45
+
return nil
46
+
} else if err != nil {
44
47
return fmt.Errorf("failed to fetch hidden remote: %s: %w", forkRef, err)
45
48
}
46
49
return nil