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

Side by Side Diff: trychange.py

Issue 2408001: More examples at the end of trychange.py help and move the -R flag to the right group (Closed)
Patch Set: Fix typo, add epilog to git-try Created 10 years, 6 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 | « git-try ('k') | 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/python 1 #!/usr/bin/python
2 # Copyright (c) 2009 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2009 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 """Client-side script to send a try job to the try server. It communicates to 5 """Client-side script to send a try job to the try server. It communicates to
6 the try server by either writting to a svn repository or by directly connecting 6 the try server by either writting to a svn repository or by directly connecting
7 to the server by HTTP. 7 to the server by HTTP.
8 """ 8 """
9 9
10 import datetime 10 import datetime
(...skipping 27 matching lines...) Expand all
38 38
39 __version__ = '1.2' 39 __version__ = '1.2'
40 40
41 41
42 # Constants 42 # Constants
43 HELP_STRING = "Sorry, Tryserver is not available." 43 HELP_STRING = "Sorry, Tryserver is not available."
44 USAGE = r"""%prog [options] 44 USAGE = r"""%prog [options]
45 45
46 Client-side script to send a try job to the try server. It communicates to 46 Client-side script to send a try job to the try server. It communicates to
47 the try server by either writting to a svn repository or by directly connecting 47 the try server by either writting to a svn repository or by directly connecting
48 to the server by HTTP. 48 to the server by HTTP."""
49 49
50 EPILOG = """
50 Examples: 51 Examples:
52 Send a patch directly from rietveld:
53 %(prog)s -R codereview.chromium.org/1337
54 --email recipient@example.com --root src
55
51 Try a change against a particular revision: 56 Try a change against a particular revision:
52 %prog -r 123 57 %(prog)s -r 123
53 58
54 A git patch off a web site (git inserts a/ and b/) and fix the base dir: 59 A git patch off a web site (git inserts a/ and b/) and fix the base dir:
55 %prog --url http://url/to/patch.diff --patchlevel 1 --root src 60 %(prog)s --url http://url/to/patch.diff --patchlevel 1 --root src
56
57 Or from rietveld:
58 %prog -R codereview.chromium.org/1337 --email me@example.com --root src
59 61
60 Use svn to store the try job, specify an alternate email address and use a 62 Use svn to store the try job, specify an alternate email address and use a
61 premade diff file on the local drive: 63 premade diff file on the local drive:
62 %prog --email user@example.com 64 %(prog)s --email user@example.com
63 --svn_repo svn://svn.chromium.org/chrome-try/try --diff foo.diff 65 --svn_repo svn://svn.chromium.org/chrome-try/try --diff foo.diff
64 66
65 Running only on a 'mac' slave with revision 123 and clobber first; specify 67 Running only on a 'mac' slave with revision 123 and clobber first; specify
66 manually the 3 source files to use for the try job: 68 manually the 3 source files to use for the try job:
67 %prog --bot mac --revision 123 --clobber -f src/a.cc -f src/a.h 69 %(prog)s --bot mac --revision 123 --clobber -f src/a.cc -f src/a.h
68 -f include/b.h 70 -f include/b.h
69
70 When called from gcl, use the format gcl try <change_name>.
71 """ 71 """
72 72
73 class InvalidScript(Exception): 73 class InvalidScript(Exception):
74 def __str__(self): 74 def __str__(self):
75 return self.args[0] + '\n' + HELP_STRING 75 return self.args[0] + '\n' + HELP_STRING
76 76
77 77
78 class NoTryServerAccess(Exception): 78 class NoTryServerAccess(Exception):
79 def __str__(self): 79 def __str__(self):
80 return self.args[0] + '\n' + HELP_STRING 80 return self.args[0] + '\n' + HELP_STRING
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 for i in range(len(diff)): 442 for i in range(len(diff)):
443 if diff[i].startswith('--- ') or diff[i].startswith('+++ '): 443 if diff[i].startswith('--- ') or diff[i].startswith('+++ '):
444 new_file = posixpath.join(path_diff, diff[i][4:]).replace('\\', '/') 444 new_file = posixpath.join(path_diff, diff[i][4:]).replace('\\', '/')
445 diff[i] = diff[i][0:4] + new_file 445 diff[i] = diff[i][0:4] + new_file
446 return diff 446 return diff
447 447
448 448
449 def TryChange(argv, 449 def TryChange(argv,
450 file_list, 450 file_list,
451 swallow_exception, 451 swallow_exception,
452 prog=None): 452 prog=None,
453 extra_epilog=None):
453 """ 454 """
454 Args: 455 Args:
455 argv: Arguments and options. 456 argv: Arguments and options.
456 file_list: Default value to pass to --file. 457 file_list: Default value to pass to --file.
457 swallow_exception: Whether we raise or swallow exceptions. 458 swallow_exception: Whether we raise or swallow exceptions.
458 """ 459 """
459 # Parse argv 460 # Parse argv
461 epilog = EPILOG % { 'prog': prog }
462 if extra_epilog:
463 epilog += extra_epilog
460 parser = optparse.OptionParser(usage=USAGE, 464 parser = optparse.OptionParser(usage=USAGE,
461 version=__version__, 465 version=__version__,
462 prog=prog) 466 prog=prog,
467 epilog=epilog)
468 # Remove epilog formatting
469 parser.format_epilog = lambda x: parser.epilog
463 parser.add_option("-v", "--verbose", action="count", default=0, 470 parser.add_option("-v", "--verbose", action="count", default=0,
464 help="Prints debugging infos") 471 help="Prints debugging infos")
465 group = optparse.OptionGroup(parser, "Result and status") 472 group = optparse.OptionGroup(parser, "Result and status")
466 group.add_option("-u", "--user", default=getpass.getuser(), 473 group.add_option("-u", "--user", default=getpass.getuser(),
467 help="Owner user name [default: %default]") 474 help="Owner user name [default: %default]")
468 group.add_option("-e", "--email", 475 group.add_option("-e", "--email",
469 default=os.environ.get('TRYBOT_RESULTS_EMAIL_ADDRESS', 476 default=os.environ.get('TRYBOT_RESULTS_EMAIL_ADDRESS',
470 os.environ.get('EMAIL_ADDRESS')), 477 os.environ.get('EMAIL_ADDRESS')),
471 help="Email address where to send the results. Use either " 478 help="Email address where to send the results. Use either "
472 "the TRYBOT_RESULTS_EMAIL_ADDRESS environment " 479 "the TRYBOT_RESULTS_EMAIL_ADDRESS environment "
473 "variable or EMAIL_ADDRESS to set the email address " 480 "variable or EMAIL_ADDRESS to set the email address "
474 "the try bots report results to [default: %default]") 481 "the try bots report results to [default: %default]")
475 group.add_option("-n", "--name", 482 group.add_option("-n", "--name",
476 help="Descriptive name of the try job") 483 help="Descriptive name of the try job")
477 group.add_option("--issue", type='int', 484 group.add_option("--issue", type='int',
478 help="Update rietveld issue try job status") 485 help="Update rietveld issue try job status")
479 group.add_option("--patchset", type='int', 486 group.add_option("--patchset", type='int',
480 help="Update rietveld issue try job status. This is " 487 help="Update rietveld issue try job status. This is "
481 "optional if --issue is used, In that case, the " 488 "optional if --issue is used, In that case, the "
482 "latest patchset will be used.") 489 "latest patchset will be used.")
483 group.add_option("--dry_run", action='store_true', 490 group.add_option("--dry_run", action='store_true',
484 help="Just prints the diff and quits") 491 help="Just prints the diff and quits")
485 group.add_option("-R", "--rietveld_url", default="codereview.appspot.com",
486 metavar="URL",
487 help="The root code review url. Default:%default")
488 parser.add_option_group(group) 492 parser.add_option_group(group)
489 493
490 group = optparse.OptionGroup(parser, "Try job options") 494 group = optparse.OptionGroup(parser, "Try job options")
491 group.add_option("-b", "--bot", action="append", 495 group.add_option("-b", "--bot", action="append",
492 help="Only use specifics build slaves, ex: '--bot win' to " 496 help="Only use specifics build slaves, ex: '--bot win' to "
493 "run the try job only on the 'win' slave; see the try " 497 "run the try job only on the 'win' slave; see the try "
494 "server waterfall for the slave's name") 498 "server waterfall for the slave's name")
495 group.add_option("-r", "--revision", 499 group.add_option("-r", "--revision",
496 help="Revision to use for the try job; default: the " 500 help="Revision to use for the try job; default: the "
497 "revision will be determined by the try server; see " 501 "revision will be determined by the try server; see "
(...skipping 20 matching lines...) Expand all
518 parser.add_option_group(group) 522 parser.add_option_group(group)
519 523
520 group = optparse.OptionGroup(parser, "Patch to run") 524 group = optparse.OptionGroup(parser, "Patch to run")
521 group.add_option("-f", "--file", default=file_list, dest="files", 525 group.add_option("-f", "--file", default=file_list, dest="files",
522 metavar="FILE", action="append", 526 metavar="FILE", action="append",
523 help="Use many times to list the files to include in the " 527 help="Use many times to list the files to include in the "
524 "try, relative to the repository root") 528 "try, relative to the repository root")
525 group.add_option("--diff", 529 group.add_option("--diff",
526 help="File containing the diff to try") 530 help="File containing the diff to try")
527 group.add_option("--url", 531 group.add_option("--url",
528 help="Url where to grab a patch") 532 help="Url where to grab a patch, e.g. "
533 "http://example.com/x.diff")
534 group.add_option("-R", "--rietveld_url", default="codereview.appspot.com",
535 metavar="URL",
536 help="Has 2 usages, both refer to the rietveld instance: "
537 "Specify which code review patch to use as the try job "
538 "or rietveld instance to update the try job results "
539 "Default:%default")
529 group.add_option("--root", 540 group.add_option("--root",
530 help="Root to use for the patch; base subdirectory for " 541 help="Root to use for the patch; base subdirectory for "
531 "patch created in a subdirectory") 542 "patch created in a subdirectory")
532 group.add_option("-p", "--patchlevel", type='int', metavar="LEVEL", 543 group.add_option("-p", "--patchlevel", type='int', metavar="LEVEL",
533 help="Used as -pN parameter to patch") 544 help="Used as -pN parameter to patch")
534 group.add_option("-s", "--sub_rep", action="append", default=[], 545 group.add_option("-s", "--sub_rep", action="append", default=[],
535 help="Subcheckout to use in addition. This is mainly " 546 help="Subcheckout to use in addition. This is mainly "
536 "useful for gclient-style checkouts. Use @rev or " 547 "useful for gclient-style checkouts. Use @rev or "
537 "@branch or @branch1..branch2 to specify the " 548 "@branch or @branch1..branch2 to specify the "
538 "revision/branch to diff against.") 549 "revision/branch to diff against.")
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 except (InvalidScript, NoTryServerAccess), e: 735 except (InvalidScript, NoTryServerAccess), e:
725 if swallow_exception: 736 if swallow_exception:
726 return 1 737 return 1
727 print e 738 print e
728 return 1 739 return 1
729 return 0 740 return 0
730 741
731 742
732 if __name__ == "__main__": 743 if __name__ == "__main__":
733 sys.exit(TryChange(None, [], False)) 744 sys.exit(TryChange(None, [], False))
OLDNEW
« no previous file with comments | « git-try ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698