summaryrefslogtreecommitdiffstats
path: root/WebKitTools/Scripts/webkitpy/tool/steps
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2010-05-11 18:35:50 +0100
committerBen Murdoch <benm@google.com>2010-05-14 10:23:05 +0100
commit21939df44de1705786c545cd1bf519d47250322d (patch)
treeef56c310f5c0cdc379c2abb2e212308a3281ce20 /WebKitTools/Scripts/webkitpy/tool/steps
parent4ff1d8891d520763f17675827154340c7c740f90 (diff)
downloadexternal_webkit-21939df44de1705786c545cd1bf519d47250322d.zip
external_webkit-21939df44de1705786c545cd1bf519d47250322d.tar.gz
external_webkit-21939df44de1705786c545cd1bf519d47250322d.tar.bz2
Merge Webkit at r58956: Initial merge by Git.
Change-Id: I1d9fb60ea2c3f2ddc04c17a871acdb39353be228
Diffstat (limited to 'WebKitTools/Scripts/webkitpy/tool/steps')
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/abstractstep.py19
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/applypatch.py2
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/applypatchwithlocalcommit.py6
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/build.py2
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/checkstyle.py16
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/cleanworkingdirectory.py2
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/closebug.py2
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/closebugforlanddiff.py2
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/commit.py14
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/confirmdiff.py2
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/createbug.py2
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/ensurebuildersaregreen.py2
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/ensurelocalcommitifneeded.py2
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/obsoletepatches.py2
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/options.py6
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/postcodereview.py6
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/postdiff.py7
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/postdiffforcommit.py4
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/postdiffforrevert.py4
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/preparechangelog.py10
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/preparechangelogforrevert.py2
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/runtests.py2
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/steps_unittest.py3
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/update.py2
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/updatechangelogswithreviewer.py7
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py11
26 files changed, 94 insertions, 45 deletions
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/abstractstep.py b/WebKitTools/Scripts/webkitpy/tool/steps/abstractstep.py
index 1ad343d..abafe63 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/abstractstep.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/abstractstep.py
@@ -28,6 +28,7 @@
from webkitpy.common.system.deprecated_logging import log
from webkitpy.common.config.ports import WebKitPort
+from webkitpy.tool.steps.options import Options
class AbstractStep(object):
@@ -36,10 +37,13 @@ class AbstractStep(object):
self._options = options
self._port = None
- def _run_script(self, script_name, quiet=False, port=WebKitPort):
+ def _run_script(self, script_name, args=None, quiet=False, port=WebKitPort):
log("Running %s" % script_name)
+ command = [port.script_path(script_name)]
+ if args:
+ command.extend(args)
# FIXME: This should use self.port()
- self._tool.executive.run_and_throw_if_fail(port.script_path(script_name), quiet)
+ self._tool.executive.run_and_throw_if_fail(command, quiet)
# FIXME: The port should live on the tool.
def port(self):
@@ -49,8 +53,8 @@ class AbstractStep(object):
return self._port
_well_known_keys = {
- "diff" : lambda self: self._tool.scm().create_patch(),
- "changelogs" : lambda self: self._tool.checkout().modified_changelogs(),
+ "diff": lambda self: self._tool.scm().create_patch(self._options.git_commit, self._options.squash),
+ "changelogs": lambda self: self._tool.checkout().modified_changelogs(self._options.git_commit, self._options.squash),
}
def cached_lookup(self, state, key, promise=None):
@@ -63,7 +67,12 @@ class AbstractStep(object):
@classmethod
def options(cls):
- return []
+ return [
+ # We need these options here because cached_lookup uses them. :(
+ Options.git_commit,
+ Options.no_squash,
+ Options.squash,
+ ]
def run(self, state):
raise NotImplementedError, "subclasses must implement"
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/applypatch.py b/WebKitTools/Scripts/webkitpy/tool/steps/applypatch.py
index 66d0a03..6cded27 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/applypatch.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/applypatch.py
@@ -33,7 +33,7 @@ from webkitpy.common.system.deprecated_logging import log
class ApplyPatch(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
Options.non_interactive,
]
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/applypatchwithlocalcommit.py b/WebKitTools/Scripts/webkitpy/tool/steps/applypatchwithlocalcommit.py
index 70ddfe5..d6b026d 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/applypatchwithlocalcommit.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/applypatchwithlocalcommit.py
@@ -32,12 +32,12 @@ from webkitpy.tool.steps.options import Options
class ApplyPatchWithLocalCommit(ApplyPatch):
@classmethod
def options(cls):
- return [
+ return ApplyPatch.options() + [
Options.local_commit,
- ] + ApplyPatch.options()
+ ]
def run(self, state):
ApplyPatch.run(self, state)
if self._options.local_commit:
- commit_message = self._tool.checkout().commit_message_for_this_commit()
+ commit_message = self._tool.checkout().commit_message_for_this_commit(git_commit=None, squash=False)
self._tool.scm().commit_locally_with_message(commit_message.message() or state["patch"].name())
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/build.py b/WebKitTools/Scripts/webkitpy/tool/steps/build.py
index f0570f9..456db25 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/build.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/build.py
@@ -34,7 +34,7 @@ from webkitpy.common.system.deprecated_logging import log
class Build(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
Options.build,
Options.quiet,
Options.build_style,
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/checkstyle.py b/WebKitTools/Scripts/webkitpy/tool/steps/checkstyle.py
index 63f0114..7b2be99 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/checkstyle.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/checkstyle.py
@@ -36,9 +36,12 @@ from webkitpy.common.system.deprecated_logging import error
class CheckStyle(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
Options.non_interactive,
Options.check_style,
+ Options.git_commit,
+ Options.no_squash,
+ Options.squash,
]
def run(self, state):
@@ -46,7 +49,16 @@ class CheckStyle(AbstractStep):
return
os.chdir(self._tool.scm().checkout_root)
try:
- self._run_script("check-webkit-style")
+ args = []
+ if self._options.git_commit:
+ args.append("--git-commit")
+ args.append(self._options.git_commit)
+ if self._tool.scm().should_squash(self._options.squash):
+ args.append("--squash")
+ else:
+ args.append("--no-squash")
+
+ self._run_script("check-webkit-style", args)
except ScriptError, e:
if self._options.non_interactive:
# We need to re-raise the exception here to have the
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/cleanworkingdirectory.py b/WebKitTools/Scripts/webkitpy/tool/steps/cleanworkingdirectory.py
index 3768297..e13fbc2 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/cleanworkingdirectory.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/cleanworkingdirectory.py
@@ -39,7 +39,7 @@ class CleanWorkingDirectory(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
Options.force_clean,
Options.clean,
]
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/closebug.py b/WebKitTools/Scripts/webkitpy/tool/steps/closebug.py
index d5059ea..e77bc24 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/closebug.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/closebug.py
@@ -34,7 +34,7 @@ from webkitpy.common.system.deprecated_logging import log
class CloseBug(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
Options.close_bug,
]
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/closebugforlanddiff.py b/WebKitTools/Scripts/webkitpy/tool/steps/closebugforlanddiff.py
index 476d3af..e5a68db 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/closebugforlanddiff.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/closebugforlanddiff.py
@@ -35,7 +35,7 @@ from webkitpy.common.system.deprecated_logging import log
class CloseBugForLandDiff(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
Options.close_bug,
]
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/commit.py b/WebKitTools/Scripts/webkitpy/tool/steps/commit.py
index 294b41e..7bf8b8a 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/commit.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/commit.py
@@ -27,11 +27,21 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
from webkitpy.tool.steps.abstractstep import AbstractStep
+from webkitpy.tool.steps.options import Options
class Commit(AbstractStep):
+ @classmethod
+ def options(cls):
+ return AbstractStep.options() + [
+ Options.git_commit,
+ Options.no_squash,
+ Options.squash,
+ ]
+
def run(self, state):
- commit_message = self._tool.checkout().commit_message_for_this_commit()
+ commit_message = self._tool.checkout().commit_message_for_this_commit(self._options.git_commit, self._options.squash)
if len(commit_message.message()) < 50:
raise Exception("Attempted to commit with a commit message shorter than 50 characters. Either your patch is missing a ChangeLog or webkit-patch may have a bug.")
- state["commit_text"] = self._tool.scm().commit_with_message(commit_message.message())
+ state["commit_text"] = self._tool.scm().commit_with_message(commit_message.message(),
+ git_commit=self._options.git_commit, squash=self._options.squash)
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/confirmdiff.py b/WebKitTools/Scripts/webkitpy/tool/steps/confirmdiff.py
index d08e477..626fcf3 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/confirmdiff.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/confirmdiff.py
@@ -41,7 +41,7 @@ _log = logutils.get_logger(__file__)
class ConfirmDiff(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
Options.confirm,
]
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/createbug.py b/WebKitTools/Scripts/webkitpy/tool/steps/createbug.py
index 2f3d42c..cd043d6 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/createbug.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/createbug.py
@@ -33,7 +33,7 @@ from webkitpy.tool.steps.options import Options
class CreateBug(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
Options.cc,
Options.component,
]
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/ensurebuildersaregreen.py b/WebKitTools/Scripts/webkitpy/tool/steps/ensurebuildersaregreen.py
index fd44564..40bc302 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/ensurebuildersaregreen.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/ensurebuildersaregreen.py
@@ -34,7 +34,7 @@ from webkitpy.common.system.deprecated_logging import error
class EnsureBuildersAreGreen(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
Options.check_builders,
]
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/ensurelocalcommitifneeded.py b/WebKitTools/Scripts/webkitpy/tool/steps/ensurelocalcommitifneeded.py
index 4f799f2..d0cda46 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/ensurelocalcommitifneeded.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/ensurelocalcommitifneeded.py
@@ -34,7 +34,7 @@ from webkitpy.common.system.deprecated_logging import error
class EnsureLocalCommitIfNeeded(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
Options.local_commit,
]
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/obsoletepatches.py b/WebKitTools/Scripts/webkitpy/tool/steps/obsoletepatches.py
index 9f65d41..de508c6 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/obsoletepatches.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/obsoletepatches.py
@@ -35,7 +35,7 @@ from webkitpy.common.system.deprecated_logging import log
class ObsoletePatches(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
Options.obsolete_patches,
]
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/options.py b/WebKitTools/Scripts/webkitpy/tool/steps/options.py
index 7f76f55..524a252 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/options.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/options.py
@@ -42,7 +42,10 @@ class Options(object):
email = make_option("--email", action="store", type="string", dest="email", help="Email address to use in ChangeLogs.")
fancy_review = make_option("--fancy-review", action="store_true", dest="fancy_review", default=False, help="(Experimental) Upload the patch to Rietveld code review tool.")
force_clean = make_option("--force-clean", action="store_true", dest="force_clean", default=False, help="Clean working directory before applying patches (removes local changes and commits)")
+# FIXME: Make commit ranges treat each commit separately instead of squashing them into one.
+ git_commit = make_option("--git-commit", action="store", dest="git_commit", help="Local git commit to upload/land. If a range, the commits are squashed into one.")
local_commit = make_option("--local-commit", action="store_true", dest="local_commit", default=False, help="Make a local commit for each applied patch")
+ no_squash = make_option("--no-squash", action="store_false", dest="squash", help="Don't squash local commits into one on upload/land (git-only).")
non_interactive = make_option("--non-interactive", action="store_true", dest="non_interactive", default=False, help="Never prompt the user, fail as fast as possible.")
obsolete_patches = make_option("--no-obsolete", action="store_false", dest="obsolete_patches", default=True, help="Do not obsolete old patches before posting this one.")
open_bug = make_option("--open-bug", action="store_true", dest="open_bug", default=False, help="Opens the associated bug in a browser.")
@@ -52,5 +55,6 @@ class Options(object):
request_commit = make_option("--request-commit", action="store_true", dest="request_commit", default=False, help="Mark the patch as needing auto-commit after review.")
review = make_option("--no-review", action="store_false", dest="review", default=True, help="Do not mark the patch for review.")
reviewer = make_option("-r", "--reviewer", action="store", type="string", dest="reviewer", help="Update ChangeLogs to say Reviewed by REVIEWER.")
- test = make_option("--test", action="store_true", dest="test", default=False, help="Commit without running run-webkit-tests")
+ squash = make_option("-s", "--squash", action="store_true", dest="squash", help="Squash all local commits into one on upload/land (git-only).")
+ test = make_option("--test", action="store_true", dest="test", default=False, help="Run run-webkit-tests before committing.")
update = make_option("--no-update", action="store_false", dest="update", default=True, help="Don't update the working directory.")
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/postcodereview.py b/WebKitTools/Scripts/webkitpy/tool/steps/postcodereview.py
index 3e7ed76..198cfce 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/postcodereview.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/postcodereview.py
@@ -33,11 +33,10 @@ from webkitpy.tool.steps.options import Options
class PostCodeReview(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
Options.cc,
Options.description,
Options.fancy_review,
- Options.review,
]
def run(self, state):
@@ -66,7 +65,8 @@ class PostCodeReview(AbstractStep):
# Unreachable with our current commands, but we might hit
# this case if we support bug-less code reviews.
message = "Code review"
- created_issue = self._tool.codereview.post(message=message,
+ created_issue = self._tool.codereview.post(diff=self.cached_lookup(state, "diff"),
+ message=message,
codereview_issue=codereview_issue,
cc=self._options.cc)
if created_issue:
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/postdiff.py b/WebKitTools/Scripts/webkitpy/tool/steps/postdiff.py
index 6a3dee4..a542dba 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/postdiff.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/postdiff.py
@@ -26,8 +26,6 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import StringIO
-
from webkitpy.tool.steps.abstractstep import AbstractStep
from webkitpy.tool.steps.options import Options
@@ -35,7 +33,7 @@ from webkitpy.tool.steps.options import Options
class PostDiff(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
Options.description,
Options.review,
Options.request_commit,
@@ -44,7 +42,6 @@ class PostDiff(AbstractStep):
def run(self, state):
diff = self.cached_lookup(state, "diff")
- diff_file = StringIO.StringIO(diff) # add_patch_to_bug expects a file-like object
description = self._options.description or "Patch"
comment_text = None
codereview_issue = state.get("codereview_issue")
@@ -52,6 +49,6 @@ class PostDiff(AbstractStep):
# but it makes doing the rietveld integration a lot easier.
if codereview_issue:
description += "-%s" % state["codereview_issue"]
- self._tool.bugs.add_patch_to_bug(state["bug_id"], diff_file, description, comment_text=comment_text, mark_for_review=self._options.review, mark_for_commit_queue=self._options.request_commit)
+ self._tool.bugs.add_patch_to_bug(state["bug_id"], diff, description, comment_text=comment_text, mark_for_review=self._options.review, mark_for_commit_queue=self._options.request_commit)
if self._options.open_bug:
self._tool.user.open_url(self._tool.bugs.bug_url_for_bug_id(state["bug_id"]))
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/postdiffforcommit.py b/WebKitTools/Scripts/webkitpy/tool/steps/postdiffforcommit.py
index 03b9e78..13bc00c 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/postdiffforcommit.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/postdiffforcommit.py
@@ -26,8 +26,6 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import StringIO
-
from webkitpy.tool.steps.abstractstep import AbstractStep
@@ -35,7 +33,7 @@ class PostDiffForCommit(AbstractStep):
def run(self, state):
self._tool.bugs.add_patch_to_bug(
state["bug_id"],
- StringIO.StringIO(self.cached_lookup(state, "diff")),
+ self.cached_lookup(state, "diff"),
"Patch for landing",
mark_for_review=False,
mark_for_landing=True)
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/postdiffforrevert.py b/WebKitTools/Scripts/webkitpy/tool/steps/postdiffforrevert.py
index 3b9da04..bfa631f 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/postdiffforrevert.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/postdiffforrevert.py
@@ -26,8 +26,6 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import StringIO
-
from webkitpy.common.net.bugzilla import Attachment
from webkitpy.tool.steps.abstractstep import AbstractStep
@@ -44,7 +42,7 @@ following command:\n\n\
where ATTACHMENT_ID is the ID of this attachment."
self._tool.bugs.add_patch_to_bug(
state["bug_id"],
- StringIO.StringIO(self.cached_lookup(state, "diff")),
+ self.cached_lookup(state, "diff"),
"%s%s" % (Attachment.rollout_preamble, state["revision"]),
comment_text=comment_text,
mark_for_review=False,
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/preparechangelog.py b/WebKitTools/Scripts/webkitpy/tool/steps/preparechangelog.py
index fcb40be..3a5c013 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/preparechangelog.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/preparechangelog.py
@@ -37,10 +37,13 @@ from webkitpy.common.system.deprecated_logging import error
class PrepareChangeLog(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
Options.port,
Options.quiet,
Options.email,
+ Options.git_commit,
+ Options.no_squash,
+ Options.squash,
]
def run(self, state):
@@ -52,6 +55,11 @@ class PrepareChangeLog(AbstractStep):
args.append("--bug=%s" % state["bug_id"])
if self._options.email:
args.append("--email=%s" % self._options.email)
+ if self._tool.scm().should_squash(self._options.squash):
+ args.append("--merge-base=%s" % self._tool.scm().svn_merge_base())
+ if self._options.git_commit:
+ args.append("--git-commit=%s" % self._options.git_commit)
+
try:
self._tool.executive.run_and_throw_if_fail(args, self._options.quiet)
except ScriptError, e:
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/preparechangelogforrevert.py b/WebKitTools/Scripts/webkitpy/tool/steps/preparechangelogforrevert.py
index f7d9cd3..4d299fa 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/preparechangelogforrevert.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/preparechangelogforrevert.py
@@ -36,7 +36,7 @@ class PrepareChangeLogForRevert(AbstractStep):
def run(self, state):
# This could move to prepare-ChangeLog by adding a --revert= option.
self._run_script("prepare-ChangeLog")
- changelog_paths = self._tool.checkout().modified_changelogs()
+ changelog_paths = self._tool.checkout().modified_changelogs(git_commit=None, squash=False)
bug_url = self._tool.bugs.bug_url_for_bug_id(state["bug_id"]) if state["bug_id"] else None
for changelog_path in changelog_paths:
# FIXME: Seems we should prepare the message outside of changelogs.py and then just pass in
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/runtests.py b/WebKitTools/Scripts/webkitpy/tool/steps/runtests.py
index 55d8c62..b1c2d3b 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/runtests.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/runtests.py
@@ -33,7 +33,7 @@ from webkitpy.common.system.deprecated_logging import log
class RunTests(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
Options.test,
Options.non_interactive,
Options.quiet,
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/steps_unittest.py b/WebKitTools/Scripts/webkitpy/tool/steps/steps_unittest.py
index 40bee90..5abfc6d 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/steps_unittest.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/steps_unittest.py
@@ -48,7 +48,8 @@ class StepsTest(unittest.TestCase):
def test_update_step(self):
options = Mock()
options.update = True
- self._run_step(Update, options)
+ expected_stderr = "Updating working directory\n"
+ OutputCapture().assert_outputs(self, self._run_step, [Update, options], expected_stderr=expected_stderr)
def test_prompt_for_bug_or_title_step(self):
tool = MockTool()
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/update.py b/WebKitTools/Scripts/webkitpy/tool/steps/update.py
index c98eba7..0f450f3 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/update.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/update.py
@@ -34,7 +34,7 @@ from webkitpy.common.system.deprecated_logging import log
class Update(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
Options.update,
Options.port,
]
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/updatechangelogswithreviewer.py b/WebKitTools/Scripts/webkitpy/tool/steps/updatechangelogswithreviewer.py
index a35ed8c..9740013 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/updatechangelogswithreviewer.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/updatechangelogswithreviewer.py
@@ -37,8 +37,11 @@ from webkitpy.common.system.deprecated_logging import log, error
class UpdateChangeLogsWithReviewer(AbstractStep):
@classmethod
def options(cls):
- return [
+ return AbstractStep.options() + [
+ Options.git_commit,
Options.reviewer,
+ Options.no_squash,
+ Options.squash,
]
def _guess_reviewer_from_bug(self, bug_id):
@@ -67,5 +70,5 @@ class UpdateChangeLogsWithReviewer(AbstractStep):
return
os.chdir(self._tool.scm().checkout_root)
- for changelog_path in self._tool.checkout().modified_changelogs():
+ for changelog_path in self._tool.checkout().modified_changelogs(self._options.git_commit, self._options.squash):
ChangeLog(changelog_path).set_reviewer(reviewer)
diff --git a/WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py b/WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py
index 80b2c5d..66ee5b7 100644
--- a/WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py
+++ b/WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py
@@ -31,11 +31,20 @@ import re
from webkitpy.common.checkout.changelog import ChangeLog
from webkitpy.tool.steps.abstractstep import AbstractStep
+from webkitpy.tool.steps.options import Options
from webkitpy.common.system.deprecated_logging import error, log
# FIXME: Some of this logic should probably be unified with CommitterValidator?
class ValidateReviewer(AbstractStep):
+ @classmethod
+ def options(cls):
+ return AbstractStep.options() + [
+ Options.git_commit,
+ Options.no_squash,
+ Options.squash,
+ ]
+
# FIXME: This should probably move onto ChangeLogEntry
def _has_valid_reviewer(self, changelog_entry):
if changelog_entry.reviewer():
@@ -54,7 +63,7 @@ class ValidateReviewer(AbstractStep):
# FIXME: We should figure out how to handle the current working
# directory issue more globally.
os.chdir(self._tool.scm().checkout_root)
- for changelog_path in self._tool.checkout().modified_changelogs():
+ for changelog_path in self._tool.checkout().modified_changelogs(self._options.git_commit, self._options.squash):
changelog_entry = ChangeLog(changelog_path).latest_entry()
if self._has_valid_reviewer(changelog_entry):
continue