summaryrefslogtreecommitdiffstats
path: root/webkit/tools
diff options
context:
space:
mode:
authorojan@google.com <ojan@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-03 23:08:56 +0000
committerojan@google.com <ojan@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-03 23:08:56 +0000
commit908a78a01fc6209981f96deb4de56f143d3d3bb8 (patch)
tree39dd59f1756538702655e39ebd29647c185ad405 /webkit/tools
parent2012dc919c070d111e15212b30363191baec0946 (diff)
downloadchromium_src-908a78a01fc6209981f96deb4de56f143d3d3bb8.zip
chromium_src-908a78a01fc6209981f96deb4de56f143d3d3bb8.tar.gz
chromium_src-908a78a01fc6209981f96deb4de56f143d3d3bb8.tar.bz2
Have merge script update DEPS and gclient sync correctly.
Review URL: http://codereview.chromium.org/12924 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6326 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/tools')
-rwxr-xr-xwebkit/tools/merge/merge.py50
-rwxr-xr-xwebkit/tools/merge/merge.sh2
2 files changed, 34 insertions, 18 deletions
diff --git a/webkit/tools/merge/merge.py b/webkit/tools/merge/merge.py
index afcd8bd..2dbd187 100755
--- a/webkit/tools/merge/merge.py
+++ b/webkit/tools/merge/merge.py
@@ -16,11 +16,18 @@ Example usage:
import optparse
import os
+import re
import subprocess
import xml.dom.minidom
import google.path_utils
+DEPS_PATHS_TO_UPDATE = [
+ "http://svn.webkit.org/repository/webkit/trunk/LayoutTests@",
+ "http://svn.webkit.org/repository/webkit/trunk/WebKit@",
+ "http://svn.webkit.org/repository/webkit/trunk/WebKitLibraries@",
+]
+
class Merger(object):
""" Does svn merges. """
@@ -71,8 +78,7 @@ def GetCurrentRepositoryAndRevision(webkit_merge_revision_path):
Args:
webkit_merge_revision_path: path to WEBKIT_MERGE_REVISION file.
"""
- file = open(webkit_merge_revision_path)
- contents = file.read().strip()
+ contents = open(webkit_merge_revision_path).read().strip()
split_contents = contents.split("@")
return {'repository': split_contents[0], 'old_revision': split_contents[1]}
@@ -100,14 +106,29 @@ def UpdateWebKitMergeRevision(webkit_merge_revision_path, repository,
if is_dry_run:
print "%s=%s" % (webkit_merge_revision_path, new_merge_revision)
else:
- file = open(webkit_merge_revision_path, "w")
+ print "Updating %s" % webkit_merge_revision_path
#TODO(ojan): Check that the write suceeded.
- file.write(new_merge_revision)
+ open(webkit_merge_revision_path, "w").write(new_merge_revision)
def UpdateDeps(deps_path, new_revision, is_dry_run):
- #TODO(ojan): Get this to update the revision of the appropriate bits in DEPS.
- pass
-
+ contents = open(deps_path).read()
+ for path in DEPS_PATHS_TO_UPDATE:
+ pattern = re.compile(path + "\d+", re.MULTILINE)
+ contents = pattern.sub(path + str(new_revision), contents)
+ if is_dry_run:
+ print "%s=%s" % (deps_path, contents)
+ else:
+ print "Updating %s" % deps_path
+ open(deps_path, "w").write(contents)
+
+def Sync(is_dry_run):
+ sync_command = ["gclient", "sync"]
+ if is_dry_run:
+ print ' '.join(sync_command)
+ else:
+ #TODO(ojan): Check return code here.
+ subprocess.call(sync_command, shell=True)
+
def main(options, args):
""" Does the merge and updates WEBKIT_MERGE_REVISION.
@@ -115,18 +136,10 @@ def main(options, args):
options: a dictionary of commandline arguments.
args: currently unused.
"""
- #TODO(ojan): Check return code here.
- sync_command = ["gclient", "sync"]
- if options.dry_run:
- print ' '.join(sync_command)
- else:
- subprocess.call(sync_command, shell=True)
-
+ Sync(options.dry_run)
+
webkit_merge_revision_path = google.path_utils.FindUpward(
google.path_utils.ScriptDir(), 'WEBKIT_MERGE_REVISION')
-
- deps_path = google.path_utils.FindUpward(
- google.path_utils.ScriptDir(), 'DEPS')
repository_and_revision = GetCurrentRepositoryAndRevision(
webkit_merge_revision_path)
@@ -148,7 +161,10 @@ def main(options, args):
UpdateWebKitMergeRevision(webkit_merge_revision_path, repository,
new_revision, options.dry_run)
+ deps_path = google.path_utils.FindUpward(
+ google.path_utils.ScriptDir(), 'src', 'DEPS')
UpdateDeps(deps_path, new_revision, options.dry_run)
+ Sync(options.dry_run)
if '__main__' == __name__:
option_parser = optparse.OptionParser()
diff --git a/webkit/tools/merge/merge.sh b/webkit/tools/merge/merge.sh
index b2026d6..c0e6a30 100755
--- a/webkit/tools/merge/merge.sh
+++ b/webkit/tools/merge/merge.sh
@@ -4,7 +4,7 @@ exec_dir=$(dirname $0)
if [ "$OSTYPE" = "cygwin" ]; then
system_root=`cygpath "$SYSTEMROOT"`
- PATH="/usr/bin:$system_root/system32:$system_root:$system_root/system32/WBEM"
+ PATH="/usr/bin:$system_root/system32:$system_root:$system_root/system32/WBEM:$PATH"
export PATH
PYTHON_PROG="$exec_dir/../../../third_party/python_24/python.exe"
else