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