OLD | NEW |
1 # Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2010 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 """Gclient-specific SCM-specific operations.""" | 5 """Gclient-specific SCM-specific operations.""" |
6 | 6 |
7 import logging | 7 import logging |
8 import os | 8 import os |
9 import posixpath | 9 import posixpath |
10 import re | 10 import re |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 logging.debug("Current branch is not tracking an upstream (remote)" | 250 logging.debug("Current branch is not tracking an upstream (remote)" |
251 " branch.") | 251 " branch.") |
252 elif upstream_branch.startswith('refs/remotes'): | 252 elif upstream_branch.startswith('refs/remotes'): |
253 current_type = "branch" | 253 current_type = "branch" |
254 else: | 254 else: |
255 raise gclient_utils.Error('Invalid Upstream: %s' % upstream_branch) | 255 raise gclient_utils.Error('Invalid Upstream: %s' % upstream_branch) |
256 | 256 |
257 # Update the remotes first so we have all the refs. | 257 # Update the remotes first so we have all the refs. |
258 for _ in range(10): | 258 for _ in range(10): |
259 try: | 259 try: |
260 remote_output, remote_err = scm.GIT.Capture( | 260 if current_type == "branch": |
| 261 remote_output, remote_err = scm.GIT.Capture( |
| 262 ['fetch'] + verbose + ['origin', revision], |
| 263 self.checkout_path, |
| 264 print_error=False) |
| 265 else: |
| 266 remote_output, remote_err = scm.GIT.Capture( |
261 ['remote'] + verbose + ['update'], | 267 ['remote'] + verbose + ['update'], |
262 self.checkout_path, | 268 self.checkout_path, |
263 print_error=False) | 269 print_error=False) |
264 break | 270 break |
265 except gclient_utils.CheckCallError, e: | 271 except gclient_utils.CheckCallError, e: |
266 # Hackish but at that point, git is known to work so just checking for | 272 # Hackish but at that point, git is known to work so just checking for |
267 # 502 in stderr should be fine. | 273 # 502 in stderr should be fine. |
268 if '502' in e.stderr: | 274 if '502' in e.stderr: |
269 print str(e) | 275 print str(e) |
270 print "Sleeping 15 seconds and retrying..." | 276 print "Sleeping 15 seconds and retrying..." |
(...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
928 command should be a list of strings that represents an svn command. | 934 command should be a list of strings that represents an svn command. |
929 | 935 |
930 This method returns a new list to be used as a command.""" | 936 This method returns a new list to be used as a command.""" |
931 new_command = command[:] | 937 new_command = command[:] |
932 if revision: | 938 if revision: |
933 new_command.extend(['--revision', str(revision).strip()]) | 939 new_command.extend(['--revision', str(revision).strip()]) |
934 # --force was added to 'svn update' in svn 1.5. | 940 # --force was added to 'svn update' in svn 1.5. |
935 if options.force and scm.SVN.AssertVersion("1.5")[0]: | 941 if options.force and scm.SVN.AssertVersion("1.5")[0]: |
936 new_command.append('--force') | 942 new_command.append('--force') |
937 return new_command | 943 return new_command |
OLD | NEW |