@@ -87,6 +87,7 @@ type mirrorSyncResult struct {
8787/*
8888// * [new tag] v0.1.8 -> v0.1.8
8989// * [new branch] master -> origin/master
90+ // * [new ref] refs/pull/2/head -> refs/pull/2/head"
9091// - [deleted] (none) -> origin/test // delete a branch
9192// - [deleted] (none) -> 1 // delete a tag
9293// 957a993..a87ba5f test -> origin/test
@@ -117,6 +118,11 @@ func parseRemoteUpdateOutput(output, remoteName string) []*mirrorSyncResult {
117118 refName : git .RefNameFromBranch (refName ),
118119 oldCommitID : gitShortEmptySha ,
119120 })
121+ case strings .HasPrefix (lines [i ], " * [new ref]" ): // new reference
122+ results = append (results , & mirrorSyncResult {
123+ refName : git .RefName (refName ),
124+ oldCommitID : gitShortEmptySha ,
125+ })
120126 case strings .HasPrefix (lines [i ], " - " ): // Delete reference
121127 isTag := ! strings .HasPrefix (refName , remoteName + "/" )
122128 var refFullName git.RefName
@@ -159,8 +165,15 @@ func parseRemoteUpdateOutput(output, remoteName string) []*mirrorSyncResult {
159165 log .Error ("Expect two SHAs but not what found: %q" , lines [i ])
160166 continue
161167 }
168+ var refFullName git.RefName
169+ if strings .HasPrefix (refName , "refs/" ) {
170+ refFullName = git .RefName (refName )
171+ } else {
172+ refFullName = git .RefNameFromBranch (strings .TrimPrefix (refName , remoteName + "/" ))
173+ }
174+
162175 results = append (results , & mirrorSyncResult {
163- refName : git . RefNameFromBranch ( strings . TrimPrefix ( refName , remoteName + "/" )) ,
176+ refName : refFullName ,
164177 oldCommitID : shas [0 ],
165178 newCommitID : shas [1 ],
166179 })
0 commit comments