From 368f1f4e19d30a7fc3a8c9d36ca294258548d2f1 Mon Sep 17 00:00:00 2001 From: Christian Hammond Date: Sun, 31 Jan 2010 00:56:56 -0800 Subject: 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/ --- rbtools/postreview.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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) -- cgit v1.2.3