Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(667)

Side by Side Diff: scm.py

Issue 1755018: Add a fallback to origin/trunk too when the branch is not tracked. (Closed)
Patch Set: Cleaner Created 10 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | trychange.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """SCM-specific utility classes.""" 5 """SCM-specific utility classes."""
6 6
7 import glob 7 import glob
8 import os 8 import os
9 import re 9 import re
10 import shutil 10 import shutil
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 ['config', 'branch.%s.merge' % branch], in_directory=cwd, 211 ['config', 'branch.%s.merge' % branch], in_directory=cwd,
212 error_ok=True)[0].strip() 212 error_ok=True)[0].strip()
213 if upstream_branch: 213 if upstream_branch:
214 remote = GIT.Capture( 214 remote = GIT.Capture(
215 ['config', 'branch.%s.remote' % branch], 215 ['config', 'branch.%s.remote' % branch],
216 in_directory=cwd, error_ok=True)[0].strip() 216 in_directory=cwd, error_ok=True)[0].strip()
217 else: 217 else:
218 # Fall back on trying a git-svn upstream branch. 218 # Fall back on trying a git-svn upstream branch.
219 if GIT.IsGitSvn(cwd): 219 if GIT.IsGitSvn(cwd):
220 upstream_branch = GIT.GetSVNBranch(cwd) 220 upstream_branch = GIT.GetSVNBranch(cwd)
221 # Fall back on origin/master if it exits.
222 elif GIT.Capture(['branch', '-r'], in_directory=cwd
223 )[0].split().count('origin/master'):
224 remote = 'origin'
225 upstream_branch = 'refs/heads/master'
226 else: 221 else:
227 remote = None 222 # Else, try to guess the origin remote.
228 upstream_branch = None 223 remote_branches = GIT.Capture(
224 ['branch', '-r'], in_directory=cwd)[0].split()
225 if 'origin/master' in remote_branches:
226 # Fall back on origin/master if it exits.
227 remote = 'origin'
228 upstream_branch = 'refs/heads/master'
229 elif 'origin/trunk' in remote_branches:
230 # Fall back on origin/trunk if it exists. Generally a shared
231 # git-svn clone
232 remote = 'origin'
233 upstream_branch = 'refs/heads/trunk'
234 else:
235 # Give up.
236 remote = None
237 upstream_branch = None
229 return remote, upstream_branch 238 return remote, upstream_branch
230 239
231 @staticmethod 240 @staticmethod
232 def GetUpstreamBranch(cwd): 241 def GetUpstreamBranch(cwd):
233 """Gets the current branch's upstream branch.""" 242 """Gets the current branch's upstream branch."""
234 remote, upstream_branch = GIT.FetchUpstreamTuple(cwd) 243 remote, upstream_branch = GIT.FetchUpstreamTuple(cwd)
235 if remote != '.': 244 if remote != '.' and upstream_branch:
236 upstream_branch = upstream_branch.replace('heads', 'remotes/' + remote) 245 upstream_branch = upstream_branch.replace('heads', 'remotes/' + remote)
237 return upstream_branch 246 return upstream_branch
238 247
239 @staticmethod 248 @staticmethod
240 def GenerateDiff(cwd, branch=None, branch_head='HEAD', full_move=False, 249 def GenerateDiff(cwd, branch=None, branch_head='HEAD', full_move=False,
241 files=None): 250 files=None):
242 """Diffs against the upstream branch or optionally another branch. 251 """Diffs against the upstream branch or optionally another branch.
243 252
244 full_move means that move or copy operations should completely recreate the 253 full_move means that move or copy operations should completely recreate the
245 files, usually in the prospect to apply the patch for a try job.""" 254 files, usually in the prospect to apply the patch for a try job."""
(...skipping 541 matching lines...) Expand 10 before | Expand all | Expand 10 after
787 if not SVN.current_version: 796 if not SVN.current_version:
788 SVN.current_version = SVN.Capture(['--version']).split()[2] 797 SVN.current_version = SVN.Capture(['--version']).split()[2]
789 current_version_list = map(only_int, SVN.current_version.split('.')) 798 current_version_list = map(only_int, SVN.current_version.split('.'))
790 for min_ver in map(int, min_version.split('.')): 799 for min_ver in map(int, min_version.split('.')):
791 ver = current_version_list.pop(0) 800 ver = current_version_list.pop(0)
792 if ver < min_ver: 801 if ver < min_ver:
793 return (False, SVN.current_version) 802 return (False, SVN.current_version)
794 elif ver > min_ver: 803 elif ver > min_ver:
795 return (True, SVN.current_version) 804 return (True, SVN.current_version)
796 return (True, SVN.current_version) 805 return (True, SVN.current_version)
OLDNEW
« no previous file with comments | « no previous file | trychange.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698