Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(712)

Side by Side Diff: drover.py

Issue 13730015: Misc improvements to drover (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 import datetime 6 import datetime
7 import optparse 7 import optparse
8 import os 8 import os
9 import re 9 import re
10 import string 10 import string
(...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after
508 if options.branch: 508 if options.branch:
509 DEFAULT_WORKING += ("_" + options.branch) 509 DEFAULT_WORKING += ("_" + options.branch)
510 510
511 if not isMinimumSVNVersion(1, 5): 511 if not isMinimumSVNVersion(1, 5):
512 print "You need to use at least SVN version 1.5.x" 512 print "You need to use at least SVN version 1.5.x"
513 return 1 513 return 1
514 514
515 # Override the default properties if there is a drover.properties file. 515 # Override the default properties if there is a drover.properties file.
516 global file_pattern_ 516 global file_pattern_
517 if os.path.exists("drover.properties"): 517 if os.path.exists("drover.properties"):
518 print 'Using options from %s' % os.path.join(
519 os.getcwd(), 'drover.properties')
518 FILE_PATTERN = file_pattern_ 520 FILE_PATTERN = file_pattern_
519 f = open("drover.properties") 521 f = open("drover.properties")
520 exec(f) 522 exec(f)
521 f.close() 523 f.close()
522 if FILE_PATTERN: 524 if FILE_PATTERN:
523 file_pattern_ = FILE_PATTERN 525 file_pattern_ = FILE_PATTERN
524 526
525 if options.revert and options.branch: 527 if options.revert and options.branch:
526 print 'Note: --branch is usually not needed for reverts.' 528 print 'Note: --branch is usually not needed for reverts.'
527 url = BRANCH_URL.replace("$branch", options.branch) 529 url = BRANCH_URL.replace("$branch", options.branch)
528 elif options.merge and options.sbranch: 530 elif options.merge and options.sbranch:
529 url = BRANCH_URL.replace("$branch", options.sbranch) 531 url = BRANCH_URL.replace("$branch", options.sbranch)
530 elif options.revert: 532 elif options.revert:
531 url = options.url or BASE_URL 533 url = options.url or BASE_URL
532 file_pattern_ = r"[ ]+([MADUC])[ ]+((/.*)/(.*))" 534 file_pattern_ = r"[ ]+([MADUC])[ ]+((/.*)/(.*))"
533 else: 535 else:
534 url = TRUNK_URL 536 url = TRUNK_URL
535 537
536 working = options.workdir or DEFAULT_WORKING 538 working = options.workdir or DEFAULT_WORKING
537 539
538 if options.local: 540 if options.local:
539 working = os.getcwd() 541 working = os.getcwd()
540 if not inCheckoutRoot(working): 542 if not inCheckoutRoot(working):
541 print "'%s' appears not to be the root of a working copy" % working 543 print "'%s' appears not to be the root of a working copy" % working
542 return 1 544 return 1
543 if (isSVNDirty() and not 545 if (isSVNDirty() and not
544 prompt("Working copy contains uncommitted files. Continue?")): 546 prompt("Working copy contains uncommitted files. Continue?")):
545 return 1 547 return 1
546 548
547 if options.revert and not options.no_alt_urls: 549 if options.revert and not options.no_alt_urls and not options.url:
548 for cur_url in [url] + REVERT_ALT_URLS: 550 for cur_url in [url] + REVERT_ALT_URLS:
549 try: 551 try:
550 commit_date_str = getSVNInfo( 552 commit_date_str = getSVNInfo(
551 cur_url, options.revert).get('Last Changed Date', 'x').split()[0] 553 cur_url, options.revert).get('Last Changed Date', 'x').split()[0]
552 commit_date = datetime.datetime.strptime(commit_date_str, '%Y-%m-%d') 554 commit_date = datetime.datetime.strptime(commit_date_str, '%Y-%m-%d')
553 if (datetime.datetime.now() - commit_date).days < 120: 555 if (datetime.datetime.now() - commit_date).days < 180:
554 if cur_url != url: 556 if cur_url != url:
555 print 'Guessing svn repo: %s.' % cur_url, 557 print 'Guessing svn repo: %s.' % cur_url,
556 print 'Use --no-alt-urls to disable heuristic.' 558 print 'Use --no-alt-urls to disable heuristic.'
557 url = cur_url 559 url = cur_url
558 break 560 break
559 except ValueError: 561 except ValueError:
560 pass 562 pass
561 command = 'svn log ' + url + " -r "+str(revision) + " -v" 563 command = 'svn log ' + url + " -r "+str(revision) + " -v"
562 os.system(command) 564 os.system(command)
563 565
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 715
714 if options.branch and options.milestone: 716 if options.branch and options.milestone:
715 option_parser.error("--branch cannot be used with --milestone") 717 option_parser.error("--branch cannot be used with --milestone")
716 return 1 718 return 1
717 719
718 return drover(options, args) 720 return drover(options, args)
719 721
720 722
721 if __name__ == "__main__": 723 if __name__ == "__main__":
722 sys.exit(main()) 724 sys.exit(main())
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698