Commit 0642373b authored by Josip Sokcevic's avatar Josip Sokcevic Committed by LUCI CQ

Update origin/HEAD automatically

If origin/HEAD resolves to `master`, depot_tools can check if
origin/main exists. If so, it's very likely that origin/HEAD should be
updated to point to origin/main.
In the worst case, this will result in extra git remote call while not
changing local state (i.e origin/HEAD remained unchanged).

R=gavinmak@google.com

Bug: 1190702
Change-Id: I51e69d7a95d3534e1820099b4b6983d38b5e2763
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2795075Reviewed-by: 's avatarGavin Mak <gavinmak@google.com>
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
parent f2cfd3da
......@@ -683,7 +683,16 @@ def repo_root():
def upstream_default():
"""Returns the default branch name of the origin repository."""
try:
return run('rev-parse', '--abbrev-ref', 'origin/HEAD')
ret = run('rev-parse', '--abbrev-ref', 'origin/HEAD')
# Detect if the repository migrated to main branch
if ret == 'origin/master':
try:
ret = run('rev-parse', '--abbrev-ref', 'origin/main')
run('remote', 'set-head', '-a', 'origin')
ret = run('rev-parse', '--abbrev-ref', 'origin/HEAD')
except subprocess2.CalledProcessError:
pass
return ret
except subprocess2.CalledProcessError:
return 'origin/master'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment