Revision: 19953
Author:   [email protected]
Date:     Sat Mar 15 13:06:08 2014 UTC
Log: Reland "Maintain change log file directly on trunk branch in push-to-trunk."

This uses the following approach to modify the trunk change log:
- Calculate the new change log entries
- Apply changes to the bleeding edge change log (this will be removed in a follow up CL) - Apply the diff between BE and trunk to trunk (this includes the diff of the change log)
- Reset the change log to the version on trunk
- Reapply the new change log entries

[email protected]

Review URL: https://codereview.chromium.org/196473012
http://code.google.com/p/v8/source/detail?r=19953

Modified:
 /branches/bleeding_edge/tools/push-to-trunk/git_recipes.py
 /branches/bleeding_edge/tools/push-to-trunk/push_to_trunk.py
 /branches/bleeding_edge/tools/push-to-trunk/test_scripts.py

=======================================
--- /branches/bleeding_edge/tools/push-to-trunk/git_recipes.py Thu Mar 13 15:48:24 2014 UTC +++ /branches/bleeding_edge/tools/push-to-trunk/git_recipes.py Sat Mar 15 13:06:08 2014 UTC
@@ -63,6 +63,10 @@
     assert name
     self.Git(MakeArgs(["checkout -f", name]))

+  def GitCheckoutFile(self, name):
+    assert name
+    self.Git(MakeArgs(["checkout --", name]))
+
   @Strip
   def GitCurrentBranch(self):
     for line in self.Git("status -s -b -uno").strip().splitlines():
=======================================
--- /branches/bleeding_edge/tools/push-to-trunk/push_to_trunk.py Thu Mar 13 15:48:24 2014 UTC +++ /branches/bleeding_edge/tools/push-to-trunk/push_to_trunk.py Sat Mar 15 13:06:08 2014 UTC
@@ -311,6 +311,21 @@
     Command("rm", "-f %s*" % self.Config(PATCH_FILE))


+class AddChangeLog(Step):
+  MESSAGE = "Add ChangeLog changes to trunk branch."
+
+  def RunStep(self):
+ # The change log has been modified by the patch. Reset it to the version + # on trunk and apply the exact changes determined by this PrepareChangeLog
+    # step above.
+    self.GitCheckoutFile(self.Config(CHANGELOG_FILE))
+    changelog_entry = FileToText(self.Config(NEW_CHANGELOG_FILE))
+    old_change_log = FileToText(self.Config(CHANGELOG_FILE))
+    new_change_log = "%s\n\n\n%s" % (changelog_entry, old_change_log)
+    TextToFile(new_change_log, self.Config(CHANGELOG_FILE))
+    os.remove(self.Config(NEW_CHANGELOG_FILE))
+
+
 class SetVersion(Step):
   MESSAGE = "Set correct version for trunk."

@@ -529,6 +544,7 @@
       SquashCommits,
       NewBranch,
       ApplyChanges,
+      AddChangeLog,
       SetVersion,
       CommitTrunk,
       SanityCheck,
=======================================
--- /branches/bleeding_edge/tools/push-to-trunk/test_scripts.py Thu Mar 13 15:48:24 2014 UTC +++ /branches/bleeding_edge/tools/push-to-trunk/test_scripts.py Sat Mar 15 13:06:08 2014 UTC
@@ -642,7 +642,10 @@
     TEST_CONFIG[CHANGELOG_FILE] = self.MakeEmptyTempFile()
     if not os.path.exists(TEST_CONFIG[CHROMIUM]):
       os.makedirs(TEST_CONFIG[CHROMIUM])
-    TextToFile("1999-04-05: Version 3.22.4", TEST_CONFIG[CHANGELOG_FILE])
+    bleeding_edge_change_log = """1999-02-03: Version 3.12.2
+
+        Performance and stability improvements on all platforms.\n"""
+    TextToFile(bleeding_edge_change_log, TEST_CONFIG[CHANGELOG_FILE])
     TextToFile("Some line\n   \"v8_revision\": \"123444\",\n  some line",
                  TEST_CONFIG[DEPS_FILE])
     os.environ["EDITOR"] = "vi"
@@ -659,6 +662,14 @@
       version = FileToText(TEST_CONFIG[VERSION_FILE])
       self.assertTrue(re.search(r"#define BUILD_NUMBER\s+6", version))

+    def ResetChangeLog():
+ """On 'git co -b new_branch svn/trunk', and 'git checkout -- ChangeLog',
+      the ChangLog will be reset to its content on trunk."""
+      trunk_change_log = """1999-04-05: Version 3.22.4
+
+        Performance and stability improvements on all platforms.\n"""
+      TextToFile(trunk_change_log, TEST_CONFIG[CHANGELOG_FILE])
+
     def CheckSVNCommit():
       commit = FileToText(TEST_CONFIG[COMMITMSG_FILE])
       self.assertEquals(
@@ -674,6 +685,21 @@
       self.assertTrue(re.search(r"#define PATCH_LEVEL\s+0", version))
self.assertTrue(re.search(r"#define IS_CANDIDATE_VERSION\s+0", version))

+ # Check that the change log on the trunk branch got correctly modified.
+      change_log = FileToText(TEST_CONFIG[CHANGELOG_FILE])
+      self.assertEquals(
+"""1999-07-31: Version 3.22.5
+
+        Log text 1 (issue 321).
+
+        Performance and stability improvements on all platforms.
+
+
+1999-04-05: Version 3.22.4
+
+        Performance and stability improvements on all platforms.\n""",
+          change_log)
+
     force_flag = " -f" if not manual else ""
     review_suffix = "\n\[email protected]" if not manual else ""
     self.ExpectGit([
@@ -712,8 +738,11 @@
           "hash1\n"),
       Git("diff svn/trunk hash1", "patch content\n"),
       Git("svn find-rev hash1", "123455\n"),
-      Git("checkout -b %s svn/trunk" % TEST_CONFIG[TRUNKBRANCH], ""),
+      Git("checkout -b %s svn/trunk" % TEST_CONFIG[TRUNKBRANCH], "",
+          cb=ResetChangeLog),
       Git("apply --index --reject \"%s\"" % TEST_CONFIG[PATCH_FILE], ""),
+      Git("checkout -- %s" % TEST_CONFIG[CHANGELOG_FILE], "",
+          cb=ResetChangeLog),
       Git("add \"%s\"" % TEST_CONFIG[VERSION_FILE], ""),
       Git("commit -aF \"%s\"" % TEST_CONFIG[COMMITMSG_FILE], "",
           cb=CheckSVNCommit),

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to