Fix git-cl when working on branches.
This updates various assumptions to coincide with how gclient fetches
branch-heads refs from chromium repos.
R=iannucci@google.com
BUG=406858
Review URL: https://codereview.chromium.org/498013002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@291586 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/git_cl.py b/git_cl.py
index 1f4b01b..01a12a8 100755
--- a/git_cl.py
+++ b/git_cl.py
@@ -581,7 +581,10 @@
if self.upstream_branch is None:
remote, upstream_branch = self.FetchUpstreamTuple(self.GetBranch())
if remote is not '.':
- upstream_branch = upstream_branch.replace('heads', 'remotes/' + remote)
+ upstream_branch = upstream_branch.replace('refs/heads/',
+ 'refs/remotes/%s/' % remote)
+ upstream_branch = upstream_branch.replace('refs/branch-heads/',
+ 'refs/remotes/branch-heads/')
self.upstream_branch = upstream_branch
return self.upstream_branch
@@ -615,6 +618,8 @@
branch = 'HEAD'
if branch.startswith('refs/remotes'):
self._remote = (remote, branch)
+ elif branch.startswith('refs/branch-heads/'):
+ self._remote = (remote, branch.replace('refs/', 'refs/remotes/'))
else:
self._remote = (remote, 'refs/remotes/%s/%s' % (remote, branch))
return self._remote