diff --git a/git_cl.py b/git_cl.py index bcd4a6252..41ed20c35 100755 --- a/git_cl.py +++ b/git_cl.py @@ -56,6 +56,10 @@ POSTUPSTREAM_HOOK_PATTERN = '.git/hooks/post-cl-%s' DESCRIPTION_BACKUP_FILE = '~/.git_cl_description_backup' GIT_INSTRUCTIONS_URL = 'http://code.google.com/p/chromium/wiki/UsingGit' CHANGE_ID = 'Change-Id:' +REFS_THAT_ALIAS_TO_OTHER_REFS = { + 'refs/remotes/origin/lkgr': 'refs/remotes/origin/master', + 'refs/remotes/origin/lkcr': 'refs/remotes/origin/master', +} # Valid extensions for files we want to lint. DEFAULT_LINT_REGEX = r"(.*\.cpp|.*\.cc|.*\.h)" @@ -1790,10 +1794,9 @@ def GetTargetRef(remote, remote_branch, target_branch, pending_prefix): if not match: # This is a branch path but not one we recognize; use as-is. remote_branch = target_branch - elif (not remote_branch.startswith('refs/remotes/branch-heads') and - not remote_branch.startswith('refs/remotes/%s/refs' % remote)): - # Default to master for refs that are not branches. - remote_branch = 'refs/remotes/%s/master' % remote + elif remote_branch in REFS_THAT_ALIAS_TO_OTHER_REFS: + # Handle the refs that need to land in different refs. + remote_branch = REFS_THAT_ALIAS_TO_OTHER_REFS[remote_branch] # Create the true path to the remote branch. # Does the following translation: diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py index ed2982400..31eb97221 100755 --- a/tests/git_cl_test.py +++ b/tests/git_cl_test.py @@ -822,6 +822,10 @@ class TestGitCl(TestCase): git_cl.GetTargetRef('origin', 'refs/remotes/origin/refs/diff/test', None, None)) + self.assertEqual('refs/heads/chrome/m42', + git_cl.GetTargetRef('origin', + 'refs/remotes/origin/chrome/m42', + None, None)) # Check target refs for user-specified target branch. for branch in ('branch-heads/123', 'remotes/branch-heads/123',