| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Meta checkout manager supporting both Subversion and GIT.""" | 6 """Meta checkout manager supporting both Subversion and GIT.""" |
| 7 # Files | 7 # Files |
| 8 # .gclient : Current client configuration, written by 'config' command. | 8 # .gclient : Current client configuration, written by 'config' command. |
| 9 # Format is a Python script defining 'solutions', a list whose | 9 # Format is a Python script defining 'solutions', a list whose |
| 10 # entries each are maps binding the strings "name" and "url" | 10 # entries each are maps binding the strings "name" and "url" |
| (...skipping 1457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1468 exec(gclient_utils.FileRead(filename), scope) | 1468 exec(gclient_utils.FileRead(filename), scope) |
| 1469 except SyntaxError as e: | 1469 except SyntaxError as e: |
| 1470 gclient_utils.SyntaxErrorToError(filename, e) | 1470 gclient_utils.SyntaxErrorToError(filename, e) |
| 1471 return scope['entries'] | 1471 return scope['entries'] |
| 1472 | 1472 |
| 1473 def _EnforceRevisions(self): | 1473 def _EnforceRevisions(self): |
| 1474 """Checks for revision overrides.""" | 1474 """Checks for revision overrides.""" |
| 1475 revision_overrides = {} | 1475 revision_overrides = {} |
| 1476 if not self._options.revisions: | 1476 if not self._options.revisions: |
| 1477 for s in self.dependencies: | 1477 for s in self.dependencies: |
| 1478 if not s.managed: | 1478 if not s.managed and not self._options.head: |
| 1479 self._options.revisions.append('%s@unmanaged' % s.name) | 1479 self._options.revisions.append('%s@unmanaged' % s.name) |
| 1480 if not self._options.revisions: | 1480 if not self._options.revisions: |
| 1481 return revision_overrides | 1481 return revision_overrides |
| 1482 solutions_names = [s.name for s in self.dependencies] | 1482 solutions_names = [s.name for s in self.dependencies] |
| 1483 index = 0 | 1483 for i, revision in enumerate(self._options.revisions): |
| 1484 for revision in self._options.revisions: | |
| 1485 if not '@' in revision: | 1484 if not '@' in revision: |
| 1486 # Support for --revision 123 | 1485 # Support for --revision 123 |
| 1487 revision = '%s@%s' % (solutions_names[index], revision) | 1486 name, rev = solutions_names[i], revision |
| 1488 name, rev = revision.split('@', 1) | 1487 else: |
| 1488 name, rev = revision.split('@', 1) |
| 1489 revision_overrides[name] = rev | 1489 revision_overrides[name] = rev |
| 1490 index += 1 | |
| 1491 return revision_overrides | 1490 return revision_overrides |
| 1492 | 1491 |
| 1493 def RunOnDeps(self, command, args, ignore_requirements=False, progress=True): | 1492 def RunOnDeps(self, command, args, ignore_requirements=False, progress=True): |
| 1494 """Runs a command on each dependency in a client and its dependencies. | 1493 """Runs a command on each dependency in a client and its dependencies. |
| 1495 | 1494 |
| 1496 Args: | 1495 Args: |
| 1497 command: The command to use (e.g., 'status' or 'diff') | 1496 command: The command to use (e.g., 'status' or 'diff') |
| 1498 args: list of str - extra arguments to add to the command line. | 1497 args: list of str - extra arguments to add to the command line. |
| 1499 """ | 1498 """ |
| 1500 if not self.dependencies: | 1499 if not self.dependencies: |
| (...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1992 help='Clone git "branch_heads" refspecs in addition to ' | 1991 help='Clone git "branch_heads" refspecs in addition to ' |
| 1993 'the default refspecs. This adds about 1/2GB to a ' | 1992 'the default refspecs. This adds about 1/2GB to a ' |
| 1994 'full checkout. (git only)') | 1993 'full checkout. (git only)') |
| 1995 parser.add_option('--with_tags', action='store_true', | 1994 parser.add_option('--with_tags', action='store_true', |
| 1996 help='Clone git tags in addition to the default refspecs.') | 1995 help='Clone git tags in addition to the default refspecs.') |
| 1997 parser.add_option('-t', '--transitive', action='store_true', | 1996 parser.add_option('-t', '--transitive', action='store_true', |
| 1998 help='When a revision is specified (in the DEPS file or ' | 1997 help='When a revision is specified (in the DEPS file or ' |
| 1999 'with the command-line flag), transitively update ' | 1998 'with the command-line flag), transitively update ' |
| 2000 'the dependencies to the date of the given revision. ' | 1999 'the dependencies to the date of the given revision. ' |
| 2001 'Only supported for SVN repositories.') | 2000 'Only supported for SVN repositories.') |
| 2001 parser.add_option('-H', '--head', action='store_true', |
| 2002 help='Begin by automatically syncing the root gclient ' |
| 2003 'solutions to HEAD of the remote repository. Similar ' |
| 2004 'to making the solution temporarily "managed".') |
| 2002 parser.add_option('-D', '--delete_unversioned_trees', action='store_true', | 2005 parser.add_option('-D', '--delete_unversioned_trees', action='store_true', |
| 2003 help='Deletes from the working copy any dependencies that ' | 2006 help='Deletes from the working copy any dependencies that ' |
| 2004 'have been removed since the last sync, as long as ' | 2007 'have been removed since the last sync, as long as ' |
| 2005 'there are no local modifications. When used with ' | 2008 'there are no local modifications. When used with ' |
| 2006 '--force, such dependencies are removed even if they ' | 2009 '--force, such dependencies are removed even if they ' |
| 2007 'have local modifications. When used with --reset, ' | 2010 'have local modifications. When used with --reset, ' |
| 2008 'all untracked directories are removed from the ' | 2011 'all untracked directories are removed from the ' |
| 2009 'working copy, excluding those which are explicitly ' | 2012 'working copy, excluding those which are explicitly ' |
| 2010 'ignored in the repository.') | 2013 'ignored in the repository.') |
| 2011 parser.add_option('-R', '--reset', action='store_true', | 2014 parser.add_option('-R', '--reset', action='store_true', |
| (...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2312 | 2315 |
| 2313 | 2316 |
| 2314 if '__main__' == __name__: | 2317 if '__main__' == __name__: |
| 2315 try: | 2318 try: |
| 2316 sys.exit(main(sys.argv[1:])) | 2319 sys.exit(main(sys.argv[1:])) |
| 2317 except KeyboardInterrupt: | 2320 except KeyboardInterrupt: |
| 2318 sys.stderr.write('interrupted\n') | 2321 sys.stderr.write('interrupted\n') |
| 2319 sys.exit(1) | 2322 sys.exit(1) |
| 2320 | 2323 |
| 2321 # vim: ts=2:sw=2:tw=80:et: | 2324 # vim: ts=2:sw=2:tw=80:et: |
| OLD | NEW |