Skip to content

Commit 574ff84

Browse files
lunnywxiaoguang
authored andcommitted
Fix mirror bug (go-gitea#33224)
Fix go-gitea#33200 Co-authored-by: wxiaoguang <[email protected]> (cherry picked from commit be4e961)
1 parent d68e0d3 commit 574ff84

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

modules/git/ref_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ func TestRefName(t *testing.T) {
2020

2121
// Test pull names
2222
assert.Equal(t, "1", RefName("refs/pull/1/head").PullName())
23+
assert.True(t, RefName("refs/pull/1/head").IsPull())
24+
assert.True(t, RefName("refs/pull/1/merge").IsPull())
2325
assert.Equal(t, "my/pull", RefName("refs/pull/my/pull/head").PullName())
2426

2527
// Test for branch names

services/mirror/mirror_pull.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ type mirrorSyncResult struct {
9696
/*
9797
// * [new tag] v0.1.8 -> v0.1.8
9898
// * [new branch] master -> origin/master
99+
// * [new ref] refs/pull/2/head -> refs/pull/2/head"
99100
// - [deleted] (none) -> origin/test // delete a branch
100101
// - [deleted] (none) -> 1 // delete a tag
101102
// 957a993..a87ba5f test -> origin/test
@@ -126,6 +127,11 @@ func parseRemoteUpdateOutput(output, remoteName string) []*mirrorSyncResult {
126127
refName: git.RefNameFromBranch(refName),
127128
oldCommitID: gitShortEmptySha,
128129
})
130+
case strings.HasPrefix(lines[i], " * [new ref]"): // new reference
131+
results = append(results, &mirrorSyncResult{
132+
refName: git.RefName(refName),
133+
oldCommitID: gitShortEmptySha,
134+
})
129135
case strings.HasPrefix(lines[i], " - "): // Delete reference
130136
isTag := !strings.HasPrefix(refName, remoteName+"/")
131137
var refFullName git.RefName
@@ -168,8 +174,15 @@ func parseRemoteUpdateOutput(output, remoteName string) []*mirrorSyncResult {
168174
log.Error("Expect two SHAs but not what found: %q", lines[i])
169175
continue
170176
}
177+
var refFullName git.RefName
178+
if strings.HasPrefix(refName, "refs/") {
179+
refFullName = git.RefName(refName)
180+
} else {
181+
refFullName = git.RefNameFromBranch(strings.TrimPrefix(refName, remoteName+"/"))
182+
}
183+
171184
results = append(results, &mirrorSyncResult{
172-
refName: git.RefNameFromBranch(strings.TrimPrefix(refName, remoteName+"/")),
185+
refName: refFullName,
173186
oldCommitID: shas[0],
174187
newCommitID: shas[1],
175188
})

0 commit comments

Comments
 (0)