Chromium Code Reviews| Index: git_cl.py |
| =================================================================== |
| --- git_cl.py (revision 130362) |
| +++ git_cl.py (working copy) |
| @@ -411,7 +411,14 @@ |
| GIT_INSTRUCTIONS_URL) |
| return self._remote |
| + def GetGitBaseUrlFromConfig(self): |
| + """Return the configured base URL from branch.<branchname>.baseurl. |
| + Returns None if it is not set. |
| + """ |
| + return RunGit(['config', 'branch.%s.base-url' % self.GetBranch()], |
| + error_ok=True).strip() |
| + |
| def GetRemoteUrl(self): |
| """Return the configured remote URL, e.g. 'git://example.org/foo.git/'. |
| @@ -787,6 +794,21 @@ |
| return 0 |
| +def CMDbaseurl(parser, args): |
| + """get or set base-url for this branch""" |
| + branchref = RunGit(['symbolic-ref', 'HEAD']).strip() |
| + branch = ShortBranchName(branchref) |
| + _, args = parser.parse_args(args) |
| + if not args: |
| + print("Current base-url:") |
| + return RunGit(['config', 'branch.%s.base-url' % branch], |
|
M-A Ruel
2012/04/03 15:29:58
Won't this crash if the value is not present?
kalmard
2012/04/03 15:37:42
It returns a valid error. I don't think that's a p
|
| + error_ok=False).strip() |
| + else: |
| + print("Setting base-url to %s" % args[0]) |
| + return RunGit(['config', 'branch.%s.base-url' % branch, args[0]], |
|
M-A Ruel
2012/04/03 15:29:58
Also, isn't this annoying to have this per branch
kalmard
2012/04/03 15:37:42
I figured it made sense to make this per-branch si
|
| + error_ok=False).strip() |
| + |
| + |
| def CMDstatus(parser, args): |
| """show status of changelists""" |
| parser.add_option('--field', |
| @@ -982,18 +1004,19 @@ |
| # Include the upstream repo's URL in the change -- this is useful for |
| # projects that have their source spread across multiple repos. |
| - remote_url = None |
| - if settings.GetIsGitSvn(): |
| - # URL is dependent on the current directory. |
| - data = RunGit(['svn', 'info'], cwd=settings.GetRoot()) |
| - if data: |
| - keys = dict(line.split(': ', 1) for line in data.splitlines() |
| - if ': ' in line) |
| - remote_url = keys.get('URL', None) |
| - else: |
| - if cl.GetRemoteUrl() and '/' in cl.GetUpstreamBranch(): |
| - remote_url = (cl.GetRemoteUrl() + '@' |
| - + cl.GetUpstreamBranch().split('/')[-1]) |
| + remote_url = cl.GetGitBaseUrlFromConfig() |
| + if not remote_url: |
| + if settings.GetIsGitSvn(): |
| + # URL is dependent on the current directory. |
| + data = RunGit(['svn', 'info'], cwd=settings.GetRoot()) |
| + if data: |
| + keys = dict(line.split(': ', 1) for line in data.splitlines() |
| + if ': ' in line) |
| + remote_url = keys.get('URL', None) |
| + else: |
| + if cl.GetRemoteUrl() and '/' in cl.GetUpstreamBranch(): |
| + remote_url = (cl.GetRemoteUrl() + '@' |
| + + cl.GetUpstreamBranch().split('/')[-1]) |
| if remote_url: |
| upload_args.extend(['--base_url', remote_url]) |