| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2010 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 | 7 |
| 8 Files | 8 Files |
| 9 .gclient : Current client configuration, written by 'config' command. | 9 .gclient : Current client configuration, written by 'config' command. |
| 10 Format is a Python script defining 'solutions', a list whose | 10 Format is a Python script defining 'solutions', a list whose |
| (...skipping 775 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 786 custom_deps.append(' \"%s\": None,\n' % k) | 786 custom_deps.append(' \"%s\": None,\n' % k) |
| 787 new_gclient += self.DEFAULT_SNAPSHOT_SOLUTION_TEXT % { | 787 new_gclient += self.DEFAULT_SNAPSHOT_SOLUTION_TEXT % { |
| 788 'solution_name': d.name, | 788 'solution_name': d.name, |
| 789 'solution_url': d.url, | 789 'solution_url': d.url, |
| 790 'safesync_url' : d.safesync_url or '', | 790 'safesync_url' : d.safesync_url or '', |
| 791 'solution_deps': ''.join(custom_deps), | 791 'solution_deps': ''.join(custom_deps), |
| 792 } | 792 } |
| 793 # Print the snapshot configuration file | 793 # Print the snapshot configuration file |
| 794 print(self.DEFAULT_SNAPSHOT_FILE_TEXT % {'solution_list': new_gclient}) | 794 print(self.DEFAULT_SNAPSHOT_FILE_TEXT % {'solution_list': new_gclient}) |
| 795 else: | 795 else: |
| 796 entries = sorted(self.tree(False), key=lambda i: i.name) | 796 entries = {} |
| 797 for d in entries: | 797 for d in self.tree(False): |
| 798 entry_url = GetURLAndRev(d) | 798 if self._options.actual: |
| 799 line = '%s: %s' % (d.name, entry_url) | 799 entries[d.name] = GetURLAndRev(d) |
| 800 if not d is entries[-1]: | 800 else: |
| 801 entries[d.name] = d.parsed_url |
| 802 keys = sorted(entries.keys()) |
| 803 for x in keys: |
| 804 line = '%s: %s' % (x, entries[x]) |
| 805 if x is not keys[-1]: |
| 801 line += ';' | 806 line += ';' |
| 802 print line | 807 print line |
| 803 logging.info(str(self)) | 808 logging.info(str(self)) |
| 804 | 809 |
| 805 def ParseDepsFile(self, direct_reference): | 810 def ParseDepsFile(self, direct_reference): |
| 806 """No DEPS to parse for a .gclient file.""" | 811 """No DEPS to parse for a .gclient file.""" |
| 807 self.direct_reference = True | 812 self.direct_reference = True |
| 808 self.deps_parsed = True | 813 self.deps_parsed = True |
| 809 | 814 |
| 810 def root_dir(self): | 815 def root_dir(self): |
| (...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1103 This allows the capture of an overall 'revision' for the source tree that | 1108 This allows the capture of an overall 'revision' for the source tree that |
| 1104 can be used to reproduce the same tree in the future. It is only useful for | 1109 can be used to reproduce the same tree in the future. It is only useful for |
| 1105 'unpinned dependencies', i.e. DEPS/deps references without a svn revision | 1110 'unpinned dependencies', i.e. DEPS/deps references without a svn revision |
| 1106 number or a git hash. A git branch name isn't 'pinned' since the actual | 1111 number or a git hash. A git branch name isn't 'pinned' since the actual |
| 1107 commit can change. | 1112 commit can change. |
| 1108 """ | 1113 """ |
| 1109 parser.add_option('--deps', dest='deps_os', metavar='OS_LIST', | 1114 parser.add_option('--deps', dest='deps_os', metavar='OS_LIST', |
| 1110 help='override deps for the specified (comma-separated) ' | 1115 help='override deps for the specified (comma-separated) ' |
| 1111 'platform(s); \'all\' will process all deps_os ' | 1116 'platform(s); \'all\' will process all deps_os ' |
| 1112 'references') | 1117 'references') |
| 1118 parser.add_option('-a', '--actual', action='store_true', |
| 1119 help='gets the actual checked out revisions instead of the ' |
| 1120 'ones specified in the DEPS and .gclient files') |
| 1113 parser.add_option('-s', '--snapshot', action='store_true', | 1121 parser.add_option('-s', '--snapshot', action='store_true', |
| 1114 help='creates a snapshot .gclient file of the current ' | 1122 help='creates a snapshot .gclient file of the current ' |
| 1115 'version of all repositories to reproduce the tree') | 1123 'version of all repositories to reproduce the tree, ' |
| 1124 'implies -a') |
| 1116 (options, args) = parser.parse_args(args) | 1125 (options, args) = parser.parse_args(args) |
| 1117 client = GClient.LoadCurrentConfig(options) | 1126 client = GClient.LoadCurrentConfig(options) |
| 1118 if not client: | 1127 if not client: |
| 1119 raise gclient_utils.Error('client not configured; see \'gclient config\'') | 1128 raise gclient_utils.Error('client not configured; see \'gclient config\'') |
| 1120 client.PrintRevInfo() | 1129 client.PrintRevInfo() |
| 1121 return 0 | 1130 return 0 |
| 1122 | 1131 |
| 1123 | 1132 |
| 1124 def Command(name): | 1133 def Command(name): |
| 1125 return getattr(sys.modules[__name__], 'CMD' + name, None) | 1134 return getattr(sys.modules[__name__], 'CMD' + name, None) |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1203 return CMDhelp(parser, argv) | 1212 return CMDhelp(parser, argv) |
| 1204 except gclient_utils.Error, e: | 1213 except gclient_utils.Error, e: |
| 1205 print >> sys.stderr, 'Error: %s' % str(e) | 1214 print >> sys.stderr, 'Error: %s' % str(e) |
| 1206 return 1 | 1215 return 1 |
| 1207 | 1216 |
| 1208 | 1217 |
| 1209 if '__main__' == __name__: | 1218 if '__main__' == __name__: |
| 1210 sys.exit(Main(sys.argv[1:])) | 1219 sys.exit(Main(sys.argv[1:])) |
| 1211 | 1220 |
| 1212 # vim: ts=2:sw=2:tw=80:et: | 1221 # vim: ts=2:sw=2:tw=80:et: |
| OLD | NEW |