summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Hammond <chipx86@chipx86.com>2010-01-31 00:56:56 -0800
committerChristian Hammond <chipx86@chipx86.com>2010-01-31 01:13:26 -0800
commit368f1f4e19d30a7fc3a8c9d36ca294258548d2f1 (patch)
tree66fef7f086e941441266c68bb7a22dfedb12d743
parentc754c6b916721f560d1c385bd30823674c4241ee (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-xrbtools/postreview.py19
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)