diff options
author | Christian Hammond <chipx86@chipx86.com> | 2010-01-31 00:56:56 -0800 |
---|---|---|
committer | Christian Hammond <chipx86@chipx86.com> | 2010-01-31 01:13:26 -0800 |
commit | 368f1f4e19d30a7fc3a8c9d36ca294258548d2f1 (patch) | |
tree | 66fef7f086e941441266c68bb7a22dfedb12d743 | |
parent | c754c6b916721f560d1c385bd30823674c4241ee (diff) |
Add a --diff-filename parameter to post-review.
This new parameter allows the caller to override the diff being uploaded to
the Review Board server. This diff will be used instead of generating a diff
manually.
Patch by Chris Clark
Reviewed at http://reviews.reviewboard.org/r/1197/
-rwxr-xr-x | rbtools/postreview.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/rbtools/postreview.py b/rbtools/postreview.py index c8508d4..c8c0300 100755 --- a/rbtools/postreview.py +++ b/rbtools/postreview.py @@ -2587,6 +2587,10 @@ def parse_options(args): parser.add_option("-d", "--debug", action="store_true", dest="debug", default=DEBUG, help="display debug output") + parser.add_option("--diff-filename", + dest="diff_filename", default=None, + help='upload an existing diff file, instead of ' + 'generating a new diff') (globals()["options"], args) = parser.parse_args(args) @@ -2667,6 +2671,8 @@ def determine_client(): return (repository_info, tool) def main(): + origcwd = os.path.abspath(os.getcwd()) + if 'APPDATA' in os.environ: homepath = os.environ['APPDATA'] elif 'HOME' in os.environ: @@ -2706,6 +2712,19 @@ def main(): parent_diff = None elif options.label and isinstance(tool, ClearCaseClient): diff, parent_diff = tool.diff_label(options.label) + elif options.diff_filename: + parent_diff = None + + if options.diff_filename == '-': + raise NotImplemented('- for diff filename') + #diff = sys.stdin.read() + else: + try: + fp = open(os.path.join(origcwd, options.diff_filename), 'r') + diff = fp.read() + fp.close() + except IOError, e: + die("Unable to open diff filename: %s" % e) else: diff, parent_diff = tool.diff(args) |