summaryrefslogtreecommitdiff
path: root/deps/v8/tools/push-to-trunk/common_includes.py
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/tools/push-to-trunk/common_includes.py')
-rw-r--r--deps/v8/tools/push-to-trunk/common_includes.py156
1 files changed, 4 insertions, 152 deletions
diff --git a/deps/v8/tools/push-to-trunk/common_includes.py b/deps/v8/tools/push-to-trunk/common_includes.py
index bb040f510f..ac78ef8d27 100644
--- a/deps/v8/tools/push-to-trunk/common_includes.py
+++ b/deps/v8/tools/push-to-trunk/common_includes.py
@@ -45,6 +45,7 @@ import urllib2
from git_recipes import GitRecipesMixin
from git_recipes import GitFailedException
+CHANGELOG_FILE = "ChangeLog"
VERSION_FILE = os.path.join("src", "version.cc")
# V8 base directory.
@@ -271,12 +272,6 @@ class VCInterface(object):
def GetBranches(self):
raise NotImplementedError()
- def GitSvn(self, hsh, branch=""):
- raise NotImplementedError()
-
- def SvnGit(self, rev, branch=""):
- raise NotImplementedError()
-
def MasterBranch(self):
raise NotImplementedError()
@@ -292,15 +287,9 @@ class VCInterface(object):
def RemoteBranch(self, name):
raise NotImplementedError()
- def Land(self):
- raise NotImplementedError()
-
def CLLand(self):
raise NotImplementedError()
- # TODO(machenbach): There is some svn knowledge in this interface. In svn,
- # tag and commit are different remote commands, while in git we would commit
- # and tag locally and then push/land in one unique step.
def Tag(self, tag, remote, message):
"""Sets a tag for the current commit.
@@ -309,68 +298,12 @@ class VCInterface(object):
raise NotImplementedError()
-class GitSvnInterface(VCInterface):
- def Pull(self):
- self.step.GitSVNRebase()
-
- def Fetch(self):
- self.step.GitSVNFetch()
-
- def GetTags(self):
- # Get remote tags.
- tags = filter(lambda s: re.match(r"^svn/tags/[\d+\.]+$", s),
- self.step.GitRemotes())
-
- # Remove 'svn/tags/' prefix.
- return map(lambda s: s[9:], tags)
-
- def GetBranches(self):
- # Get relevant remote branches, e.g. "svn/3.25".
- branches = filter(lambda s: re.match(r"^svn/\d+\.\d+$", s),
- self.step.GitRemotes())
- # Remove 'svn/' prefix.
- return map(lambda s: s[4:], branches)
-
- def GitSvn(self, hsh, branch=""):
- return self.step.GitSVNFindSVNRev(hsh, branch)
-
- def SvnGit(self, rev, branch=""):
- return self.step.GitSVNFindGitHash(rev, branch)
-
- def MasterBranch(self):
- return "bleeding_edge"
-
- def CandidateBranch(self):
- return "trunk"
-
- def RemoteMasterBranch(self):
- return "svn/bleeding_edge"
-
- def RemoteCandidateBranch(self):
- return "svn/trunk"
-
- def RemoteBranch(self, name):
- return "svn/%s" % name
-
- def Land(self):
- self.step.GitSVNDCommit()
-
- def CLLand(self):
- self.step.GitDCommit()
-
- def Tag(self, tag, remote, _):
- self.step.GitSVNFetch()
- self.step.Git("rebase %s" % remote)
- self.step.GitSVNTag(tag)
-
-
-class GitTagsOnlyMixin(VCInterface):
+class GitInterface(VCInterface):
def Pull(self):
self.step.GitPull()
def Fetch(self):
self.step.Git("fetch")
- self.step.GitSVNFetch()
def GetTags(self):
return self.step.Git("tag").strip().splitlines()
@@ -400,9 +333,6 @@ class GitTagsOnlyMixin(VCInterface):
return "origin/%s" % name
return "branch-heads/%s" % name
- def PushRef(self, ref):
- self.step.Git("push origin %s" % ref)
-
def Tag(self, tag, remote, message):
# Wait for the commit to appear. Assumes unique commit message titles (this
# is the case for all automated merge and push commits - also no title is
@@ -421,42 +351,11 @@ class GitTagsOnlyMixin(VCInterface):
"git updater is lagging behind?")
self.step.Git("tag %s %s" % (tag, commit))
- self.PushRef(tag)
-
-
-class GitReadSvnWriteInterface(GitTagsOnlyMixin, GitSvnInterface):
- pass
-
-
-class GitInterface(GitTagsOnlyMixin):
- def Fetch(self):
- self.step.Git("fetch")
-
- def GitSvn(self, hsh, branch=""):
- return ""
-
- def SvnGit(self, rev, branch=""):
- raise NotImplementedError()
-
- def Land(self):
- # FIXME(machenbach): This will not work with checkouts from bot_update
- # after flag day because it will push to the cache. Investigate if it
- # will work with "cl land".
- self.step.Git("push origin")
+ self.step.Git("push origin %s" % tag)
def CLLand(self):
self.step.GitCLLand()
- def PushRef(self, ref):
- self.step.Git("push https://chromium.googlesource.com/v8/v8 %s" % ref)
-
-
-VC_INTERFACES = {
- "git_svn": GitSvnInterface,
- "git_read_svn_write": GitReadSvnWriteInterface,
- "git": GitInterface,
-}
-
class Step(GitRecipesMixin):
def __init__(self, text, number, config, state, options, handler):
@@ -466,7 +365,7 @@ class Step(GitRecipesMixin):
self._state = state
self._options = options
self._side_effect_handler = handler
- self.vc = VC_INTERFACES[options.vc_interface]()
+ self.vc = GitInterface()
self.vc.InjectStep(self)
# The testing configuration might set a different default cwd.
@@ -560,11 +459,6 @@ class Step(GitRecipesMixin):
raise GitFailedException("'git %s' failed." % args)
return result
- def SVN(self, args="", prefix="", pipe=True, retry_on=None, cwd=None):
- cmd = lambda: self._side_effect_handler.Command(
- "svn", args, prefix, pipe, cwd=cwd or self.default_cwd)
- return self.Retry(cmd, retry_on, [5, 30])
-
def Editor(self, args):
if self._options.requires_editor:
return self._side_effect_handler.Command(
@@ -726,34 +620,6 @@ class Step(GitRecipesMixin):
output += "%s\n" % line
TextToFile(output, version_file)
- def SVNCommit(self, root, commit_message):
- patch = self.GitDiff("HEAD^", "HEAD")
- TextToFile(patch, self._config["PATCH_FILE"])
- self.Command("svn", "update", cwd=self._options.svn)
- if self.Command("svn", "status", cwd=self._options.svn) != "":
- self.Die("SVN checkout not clean.")
- if not self.Command("patch", "-d %s -p1 -i %s" %
- (root, self._config["PATCH_FILE"]),
- cwd=self._options.svn):
- self.Die("Could not apply patch.")
- for line in self.Command(
- "svn", "status", cwd=self._options.svn).splitlines():
- # Check for added and removed items. Svn status has seven status columns.
- # The first contains ? for unknown and ! for missing.
- match = re.match(r"^(.)...... (.*)$", line)
- if match and match.group(1) == "?":
- self.Command("svn", "add --force %s" % match.group(2),
- cwd=self._options.svn)
- if match and match.group(1) == "!":
- self.Command("svn", "delete --force %s" % match.group(2),
- cwd=self._options.svn)
-
- self.Command(
- "svn",
- "commit --non-interactive --username=%s --config-dir=%s -m \"%s\"" %
- (self._options.author, self._options.svn_config, commit_message),
- cwd=self._options.svn)
-
class BootstrapStep(Step):
MESSAGE = "Bootstapping v8 checkout."
@@ -872,17 +738,9 @@ class ScriptsBase(object):
help=("Determine current sheriff to review CLs. On "
"success, this will overwrite the reviewer "
"option."))
- parser.add_argument("--svn",
- help=("Optional full svn checkout for the commit."
- "The folder needs to be the svn root."))
- parser.add_argument("--svn-config",
- help=("Optional folder used as svn --config-dir."))
parser.add_argument("-s", "--step",
help="Specify the step where to start work. Default: 0.",
default=0, type=int)
- parser.add_argument("--vc-interface",
- help=("Choose VC interface out of git_svn|"
- "git_read_svn_write."))
parser.add_argument("--work-dir",
help=("Location where to bootstrap a working v8 "
"checkout."))
@@ -902,10 +760,6 @@ class ScriptsBase(object):
print "To determine the current sheriff, requires the googler mapping"
parser.print_help()
return None
- if options.svn and not options.svn_config:
- print "Using pure svn for committing requires also --svn-config"
- parser.print_help()
- return None
# Defaults for options, common to all scripts.
options.manual = getattr(options, "manual", True)
@@ -923,8 +777,6 @@ class ScriptsBase(object):
parser.print_help()
return None
- if not options.vc_interface:
- options.vc_interface = "git_read_svn_write"
if not options.work_dir:
options.work_dir = "/tmp/v8-release-scripts-work-dir"
return options