| OLD | NEW |
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 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 from __future__ import print_function | 7 from __future__ import print_function |
| 8 | 8 |
| 9 import errno | 9 import errno |
| 10 import logging | 10 import logging |
| (...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 349 rev_str = ' at %s' % revision | 349 rev_str = ' at %s' % revision |
| 350 files = [] if file_list is not None else None | 350 files = [] if file_list is not None else None |
| 351 | 351 |
| 352 printed_path = False | 352 printed_path = False |
| 353 verbose = [] | 353 verbose = [] |
| 354 if options.verbose: | 354 if options.verbose: |
| 355 self.Print('_____ %s%s' % (self.relpath, rev_str), timestamp=False) | 355 self.Print('_____ %s%s' % (self.relpath, rev_str), timestamp=False) |
| 356 verbose = ['--verbose'] | 356 verbose = ['--verbose'] |
| 357 printed_path = True | 357 printed_path = True |
| 358 | 358 |
| 359 if not managed: | |
| 360 self.Print('________ unmanaged solution; skipping %s' % self.relpath) | |
| 361 try: | |
| 362 return self._Capture(['rev-parse', '--verify', 'HEAD']) | |
| 363 except subprocess2.CalledProcessError: | |
| 364 return None | |
| 365 | |
| 366 url = self._CreateOrUpdateCache(url, options) | 359 url = self._CreateOrUpdateCache(url, options) |
| 367 | 360 |
| 368 if revision.startswith('refs/'): | 361 if revision.startswith('refs/'): |
| 369 rev_type = "branch" | 362 rev_type = "branch" |
| 370 elif revision.startswith(self.remote + '/'): | 363 elif revision.startswith(self.remote + '/'): |
| 371 # Rewrite remote refs to their local equivalents. | 364 # Rewrite remote refs to their local equivalents. |
| 372 revision = 'refs/remotes/' + revision | 365 revision = 'refs/remotes/' + revision |
| 373 rev_type = "branch" | 366 rev_type = "branch" |
| 374 else: | 367 else: |
| 375 # hash is also a tag, only make a distinction at checkout | 368 # hash is also a tag, only make a distinction at checkout |
| (...skipping 13 matching lines...) Expand all Loading... |
| 389 self._Capture(['checkout', '--quiet', deps_branch]) | 382 self._Capture(['checkout', '--quiet', deps_branch]) |
| 390 if file_list is not None: | 383 if file_list is not None: |
| 391 files = self._Capture(['ls-files']).splitlines() | 384 files = self._Capture(['ls-files']).splitlines() |
| 392 file_list.extend([os.path.join(self.checkout_path, f) for f in files]) | 385 file_list.extend([os.path.join(self.checkout_path, f) for f in files]) |
| 393 if not verbose: | 386 if not verbose: |
| 394 # Make the output a little prettier. It's nice to have some whitespace | 387 # Make the output a little prettier. It's nice to have some whitespace |
| 395 # between projects when cloning. | 388 # between projects when cloning. |
| 396 self.Print('') | 389 self.Print('') |
| 397 return self._Capture(['rev-parse', '--verify', 'HEAD']) | 390 return self._Capture(['rev-parse', '--verify', 'HEAD']) |
| 398 | 391 |
| 392 if not managed: |
| 393 self._UpdateBranchHeads(options, fetch=False) |
| 394 self.Print('________ unmanaged solution; skipping %s' % self.relpath) |
| 395 return self._Capture(['rev-parse', '--verify', 'HEAD']) |
| 396 |
| 399 # See if the url has changed (the unittests use git://foo for the url, let | 397 # See if the url has changed (the unittests use git://foo for the url, let |
| 400 # that through). | 398 # that through). |
| 401 current_url = self._Capture(['config', 'remote.%s.url' % self.remote]) | 399 current_url = self._Capture(['config', 'remote.%s.url' % self.remote]) |
| 402 return_early = False | 400 return_early = False |
| 403 # TODO(maruel): Delete url != 'git://foo' since it's just to make the | 401 # TODO(maruel): Delete url != 'git://foo' since it's just to make the |
| 404 # unit test pass. (and update the comment above) | 402 # unit test pass. (and update the comment above) |
| 405 # Skip url auto-correction if remote.origin.gclient-auto-fix-url is set. | 403 # Skip url auto-correction if remote.origin.gclient-auto-fix-url is set. |
| 406 # This allows devs to use experimental repos which have a different url | 404 # This allows devs to use experimental repos which have a different url |
| 407 # but whose branch(s) are the same as official repos. | 405 # but whose branch(s) are the same as official repos. |
| 408 if (current_url.rstrip('/') != url.rstrip('/') and | 406 if (current_url.rstrip('/') != url.rstrip('/') and |
| (...skipping 1076 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1485 new_command.append('--force') | 1483 new_command.append('--force') |
| 1486 if command[0] != 'checkout' and scm.SVN.AssertVersion('1.6')[0]: | 1484 if command[0] != 'checkout' and scm.SVN.AssertVersion('1.6')[0]: |
| 1487 new_command.extend(('--accept', 'theirs-conflict')) | 1485 new_command.extend(('--accept', 'theirs-conflict')) |
| 1488 elif options.manually_grab_svn_rev: | 1486 elif options.manually_grab_svn_rev: |
| 1489 new_command.append('--force') | 1487 new_command.append('--force') |
| 1490 if command[0] != 'checkout' and scm.SVN.AssertVersion('1.6')[0]: | 1488 if command[0] != 'checkout' and scm.SVN.AssertVersion('1.6')[0]: |
| 1491 new_command.extend(('--accept', 'postpone')) | 1489 new_command.extend(('--accept', 'postpone')) |
| 1492 elif command[0] != 'checkout' and scm.SVN.AssertVersion('1.6')[0]: | 1490 elif command[0] != 'checkout' and scm.SVN.AssertVersion('1.6')[0]: |
| 1493 new_command.extend(('--accept', 'postpone')) | 1491 new_command.extend(('--accept', 'postpone')) |
| 1494 return new_command | 1492 return new_command |
| OLD | NEW |