OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2014 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2014 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 """This scripts takes the path to a dep and a git or svn revision, and updates | 6 """Rolls a git-svn dependency. |
7 the parent repo's DEPS file with the corresponding git revision. Sample | |
8 invocation: | |
9 | 7 |
10 [chromium/src]$ roll-dep third_party/WebKit 12345 | 8 It takes the path to a dep and a git commit hash or svn revision, and updates |
| 9 the parent repo's DEPS file with the corresponding git commit hash. |
| 10 |
| 11 Sample invocation: |
| 12 |
| 13 [chromium/src]$ roll-dep-svn third_party/WebKit 12345 |
11 | 14 |
12 After the script completes, the DEPS file will be dirty with the new revision. | 15 After the script completes, the DEPS file will be dirty with the new revision. |
13 The user can then: | 16 The user can then: |
14 | 17 |
15 $ git add DEPS | 18 $ git add DEPS |
16 $ git commit | 19 $ git commit |
17 """ | 20 """ |
18 | 21 |
19 import ast | 22 import ast |
20 import optparse | 23 import optparse |
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
353 deps_file_dir = os.path.normpath(os.path.dirname(deps_file)) | 356 deps_file_dir = os.path.normpath(os.path.dirname(deps_file)) |
354 deps_file_root = Popen( | 357 deps_file_root = Popen( |
355 ['git', 'rev-parse', '--show-toplevel'], | 358 ['git', 'rev-parse', '--show-toplevel'], |
356 cwd=deps_file_dir, stdout=PIPE).communicate()[0].strip() | 359 cwd=deps_file_dir, stdout=PIPE).communicate()[0].strip() |
357 with open(os.path.join(deps_file_root, '.git', 'MERGE_MSG'), 'w') as fh: | 360 with open(os.path.join(deps_file_root, '.git', 'MERGE_MSG'), 'w') as fh: |
358 fh.write(commit_msg) | 361 fh.write(commit_msg) |
359 return 0 | 362 return 0 |
360 | 363 |
361 | 364 |
362 def main(argv): | 365 def main(argv): |
363 usage = 'Usage: roll_dep.py [options] <dep path> <rev> [ <DEPS file> ]' | 366 usage = 'Usage: roll-dep-svn [options] <dep path> <rev> [ <DEPS file> ]' |
364 parser = optparse.OptionParser(usage=usage, description=__doc__) | 367 parser = optparse.OptionParser(usage=usage, description=__doc__) |
365 parser.add_option('--no-verify-revision', | 368 parser.add_option('--no-verify-revision', |
366 help='Don\'t verify the revision passed in. This ' | 369 help='Don\'t verify the revision passed in. This ' |
367 'also skips adding an svn revision comment ' | 370 'also skips adding an svn revision comment ' |
368 'for git dependencies and requires the passed ' | 371 'for git dependencies and requires the passed ' |
369 'revision to be a git hash.', | 372 'revision to be a git hash.', |
370 default=False, action='store_true') | 373 default=False, action='store_true') |
371 options, args = parser.parse_args(argv) | 374 options, args = parser.parse_args(argv) |
372 if len(args) not in (2, 3): | 375 if len(args) not in (2, 3): |
373 parser.error('Expected either 2 or 3 positional parameters.') | 376 parser.error('Expected either 2 or 3 positional parameters.') |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
405 return 1 | 408 return 1 |
406 return update_deps(deps_file, dep_path, dep_name, git_rev, comment) | 409 return update_deps(deps_file, dep_path, dep_name, git_rev, comment) |
407 | 410 |
408 | 411 |
409 if __name__ == '__main__': | 412 if __name__ == '__main__': |
410 try: | 413 try: |
411 sys.exit(main(sys.argv[1:])) | 414 sys.exit(main(sys.argv[1:])) |
412 except KeyboardInterrupt: | 415 except KeyboardInterrupt: |
413 sys.stderr.write('interrupted\n') | 416 sys.stderr.write('interrupted\n') |
414 sys.exit(1) | 417 sys.exit(1) |
OLD | NEW |