@@ -125,6 +125,7 @@ func Test_SyncRun(t *testing.T) {
125125 mgc .On ("IsDirty" ).Return (false , nil ).Once ()
126126 mgc .On ("Fetch" , []string {"origin" , "+refs/heads/trunk" }).Return (nil ).Once ()
127127 mgc .On ("HasLocalBranch" , []string {"trunk" }).Return (true ).Once ()
128+ mgc .On ("BranchRemote" , "trunk" ).Return ("origin" , nil ).Once ()
128129 mgc .On ("IsAncestor" , []string {"trunk" , "origin/trunk" }).Return (true , nil ).Once ()
129130 mgc .On ("CurrentBranch" ).Return ("trunk" , nil ).Once ()
130131 mgc .On ("Merge" , []string {"--ff-only" , "refs/remotes/origin/trunk" }).Return (nil ).Once ()
@@ -144,6 +145,7 @@ func Test_SyncRun(t *testing.T) {
144145 mgc .On ("IsDirty" ).Return (false , nil ).Once ()
145146 mgc .On ("Fetch" , []string {"origin" , "+refs/heads/trunk" }).Return (nil ).Once ()
146147 mgc .On ("HasLocalBranch" , []string {"trunk" }).Return (true ).Once ()
148+ mgc .On ("BranchRemote" , "trunk" ).Return ("origin" , nil ).Once ()
147149 mgc .On ("IsAncestor" , []string {"trunk" , "origin/trunk" }).Return (true , nil ).Once ()
148150 mgc .On ("CurrentBranch" ).Return ("trunk" , nil ).Once ()
149151 mgc .On ("Merge" , []string {"--ff-only" , "refs/remotes/origin/trunk" }).Return (nil ).Once ()
@@ -165,6 +167,7 @@ func Test_SyncRun(t *testing.T) {
165167 mgc .On ("IsDirty" ).Return (false , nil ).Once ()
166168 mgc .On ("Fetch" , []string {"upstream" , "+refs/heads/trunk" }).Return (nil ).Once ()
167169 mgc .On ("HasLocalBranch" , []string {"trunk" }).Return (true ).Once ()
170+ mgc .On ("BranchRemote" , "trunk" ).Return ("upstream" , nil ).Once ()
168171 mgc .On ("IsAncestor" , []string {"trunk" , "upstream/trunk" }).Return (true , nil ).Once ()
169172 mgc .On ("CurrentBranch" ).Return ("trunk" , nil ).Once ()
170173 mgc .On ("Merge" , []string {"--ff-only" , "refs/remotes/upstream/trunk" }).Return (nil ).Once ()
@@ -181,6 +184,7 @@ func Test_SyncRun(t *testing.T) {
181184 mgc .On ("IsDirty" ).Return (false , nil ).Once ()
182185 mgc .On ("Fetch" , []string {"origin" , "+refs/heads/test" }).Return (nil ).Once ()
183186 mgc .On ("HasLocalBranch" , []string {"test" }).Return (true ).Once ()
187+ mgc .On ("BranchRemote" , "test" ).Return ("origin" , nil ).Once ()
184188 mgc .On ("IsAncestor" , []string {"test" , "origin/test" }).Return (true , nil ).Once ()
185189 mgc .On ("CurrentBranch" ).Return ("test" , nil ).Once ()
186190 mgc .On ("Merge" , []string {"--ff-only" , "refs/remotes/origin/test" }).Return (nil ).Once ()
@@ -202,6 +206,7 @@ func Test_SyncRun(t *testing.T) {
202206 mgc .On ("IsDirty" ).Return (false , nil ).Once ()
203207 mgc .On ("Fetch" , []string {"origin" , "+refs/heads/trunk" }).Return (nil ).Once ()
204208 mgc .On ("HasLocalBranch" , []string {"trunk" }).Return (true ).Once ()
209+ mgc .On ("BranchRemote" , "trunk" ).Return ("origin" , nil ).Once ()
205210 mgc .On ("IsAncestor" , []string {"trunk" , "origin/trunk" }).Return (false , nil ).Once ()
206211 mgc .On ("CurrentBranch" ).Return ("trunk" , nil ).Once ()
207212 mgc .On ("Reset" , []string {"--hard" , "refs/remotes/origin/trunk" }).Return (nil ).Once ()
@@ -221,11 +226,30 @@ func Test_SyncRun(t *testing.T) {
221226 mgc .On ("IsDirty" ).Return (false , nil ).Once ()
222227 mgc .On ("Fetch" , []string {"origin" , "+refs/heads/trunk" }).Return (nil ).Once ()
223228 mgc .On ("HasLocalBranch" , []string {"trunk" }).Return (true ).Once ()
229+ mgc .On ("BranchRemote" , "trunk" ).Return ("origin" , nil ).Once ()
224230 mgc .On ("IsAncestor" , []string {"trunk" , "origin/trunk" }).Return (false , nil ).Once ()
225231 },
226232 wantErr : true ,
227233 errMsg : "can't sync because there are diverging changes, you can use `--force` to overwrite the changes" ,
228234 },
235+ {
236+ name : "sync local repo with parent and mismatching branch remotes" ,
237+ tty : true ,
238+ opts : & SyncOptions {},
239+ httpStubs : func (reg * httpmock.Registry ) {
240+ reg .Register (
241+ httpmock .GraphQL (`query RepositoryInfo\b` ),
242+ httpmock .StringResponse (`{"data":{"repository":{"defaultBranchRef":{"name": "trunk"}}}}` ))
243+ },
244+ gitStubs : func (mgc * mockGitClient ) {
245+ mgc .On ("IsDirty" ).Return (false , nil ).Once ()
246+ mgc .On ("Fetch" , []string {"origin" , "+refs/heads/trunk" }).Return (nil ).Once ()
247+ mgc .On ("HasLocalBranch" , []string {"trunk" }).Return (true ).Once ()
248+ mgc .On ("BranchRemote" , "trunk" ).Return ("upstream" , nil ).Once ()
249+ },
250+ wantErr : true ,
251+ errMsg : "can't sync because trunk is not tracking OWNER/REPO" ,
252+ },
229253 {
230254 name : "sync local repo with parent and local changes" ,
231255 tty : true ,
@@ -249,6 +273,7 @@ func Test_SyncRun(t *testing.T) {
249273 mgc .On ("IsDirty" ).Return (false , nil ).Once ()
250274 mgc .On ("Fetch" , []string {"origin" , "+refs/heads/trunk" }).Return (nil ).Once ()
251275 mgc .On ("HasLocalBranch" , []string {"trunk" }).Return (true ).Once ()
276+ mgc .On ("BranchRemote" , "trunk" ).Return ("origin" , nil ).Once ()
252277 mgc .On ("IsAncestor" , []string {"trunk" , "origin/trunk" }).Return (true , nil ).Once ()
253278 mgc .On ("CurrentBranch" ).Return ("test" , nil ).Once ()
254279 mgc .On ("Checkout" , []string {"trunk" }).Return (nil ).Once ()
0 commit comments