Repository: mesos Updated Branches: refs/heads/master f1b3c095e -> 4dd48490d
Updated post-reviews.py to auto set 'depends on' field. Review: https://reviews.apache.org/r/34503 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/4dd48490 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/4dd48490 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/4dd48490 Branch: refs/heads/master Commit: 4dd48490dfd931ce857d1e7331f6141970baa6b0 Parents: f1b3c09 Author: Vinod Kone <[email protected]> Authored: Wed May 20 15:21:00 2015 -0700 Committer: Vinod Kone <[email protected]> Committed: Wed May 20 16:12:21 2015 -0700 ---------------------------------------------------------------------- support/post-reviews.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/4dd48490/support/post-reviews.py ---------------------------------------------------------------------- diff --git a/support/post-reviews.py b/support/post-reviews.py index 4849725..e871ceb 100755 --- a/support/post-reviews.py +++ b/support/post-reviews.py @@ -26,15 +26,9 @@ import atexit import os import sys -from subprocess import * - - -def readline(prompt): - try: - return raw_input(prompt) - except KeyboardInterrupt: - sys.exit(1) +from distutils.version import LooseVersion +from subprocess import call, Popen, PIPE, STDOUT def execute(command, ignore_errors=False): process = None @@ -67,6 +61,7 @@ def execute(command, ignore_errors=False): post_review = None rbt_version = execute(['rbt', '--version'], ignore_errors=True) if rbt_version: + rbt_version = LooseVersion(rbt_version) post_review = ['rbt', 'post'] elif execute(['post-review', '--version'], ignore_errors=True): post_review = ['post-review'] @@ -141,6 +136,7 @@ for line in log.split('\n'): previous = parent_branch +parent_review_request_id = None for i in range(len(shas)): sha = shas[i] @@ -188,6 +184,7 @@ for i in range(len(shas)): except KeyboardInterrupt: i = i + 1 previous = sha + parent_review_request_id = review_request_id continue revision_range = previous + ':' + sha @@ -199,9 +196,14 @@ for i in range(len(shas)): command = command + ['--review-request-id=' + review_request_id] # Determine how to specify the revision range. - if 'rbt' in post_review and not rbt_version.startswith('RBTools 0.5'): - # rbt >= 0.6 revisions are passed in as args. - command = command + sys.argv[1:] + [previous, sha] + if 'rbt' in post_review and rbt_version >= LooseVersion('RBTools 0.6'): + # rbt >= 0.6.1 supports '--depends-on' argument. + # Only set the "depends on" if this is not the first review in the chain. + if rbt_version >= LooseVersion('RBTools 0.6.1') and parent_review_request_id: + command = command + ['--depends-on=' + parent_review_request_id] + + # rbt >= 0.6 revisions are passed in as args. + command = command + sys.argv[1:] + [previous, sha] else: # post-review and rbt < 0.6 revisions are passed in using the revision # range option. @@ -213,9 +215,11 @@ for i in range(len(shas)): print output + if review_request_id is not None: i = i + 1 previous = sha + parent_review_request_id = review_request_id continue lines = output.split('\n') @@ -263,3 +267,4 @@ for i in range(len(shas)): execute(['git', 'update-ref', 'refs/heads/' + branch, new_sha, old_sha]) i = i + 1 + parent_review_request_id = review_request_id
