| 1292 | } |
| 1293 | |
| 1294 | func resolveHandoffBaseRef(root string) string { |
| 1295 | if remoteDefault, ok := gitSymbolicRef(root, "refs/remotes/origin/HEAD"); ok && remoteDefault != "" { |
| 1296 | if gitRefExists(root, remoteDefault) { |
| 1297 | return remoteDefault |
| 1298 | } |
| 1299 | } |
| 1300 | |
| 1301 | for _, ref := range []string{"main", "master", "trunk", "develop"} { |
| 1302 | if gitRefExists(root, ref) { |
| 1303 | return ref |
| 1304 | } |
| 1305 | } |
| 1306 | |
| 1307 | for _, ref := range []string{"origin/main", "origin/master", "origin/trunk", "origin/develop"} { |
| 1308 | if gitRefExists(root, ref) { |
| 1309 | return ref |
| 1310 | } |
| 1311 | } |
| 1312 | |
| 1313 | // Last-resort fallback that always exists in committed repos. |
| 1314 | return "HEAD" |
| 1315 | } |
| 1316 | |
| 1317 | func gitRefExists(root, ref string) bool { |
| 1318 | cmd := exec.Command("git", "rev-parse", "--verify", "--quiet", ref) |