From fa4625c1a44e0566a6cc330abc62c34f51d8ee62 Mon Sep 17 00:00:00 2001 From: "machenbach@chromium.org" Date: Thu, 13 Mar 2014 15:12:18 +0000 Subject: [PATCH] Maintain change log file directly on trunk branch in push-to-trunk. This is another step for deprecating the change log file on bleeding edge. BUG= R=jarin@chromium.org Review URL: https://codereview.chromium.org/196283014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- tools/push-to-trunk/push_to_trunk.py | 19 +++++++++++++++++-- tools/push-to-trunk/test_scripts.py | 33 ++++++++++++++++++++++++++++++--- 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/tools/push-to-trunk/push_to_trunk.py b/tools/push-to-trunk/push_to_trunk.py index 0ebfb9c..19a0d1d 100755 --- a/tools/push-to-trunk/push_to_trunk.py +++ b/tools/push-to-trunk/push_to_trunk.py @@ -267,8 +267,12 @@ class SquashCommits(Step): def RunStep(self): # Instead of relying on "git rebase -i", we'll just create a diff, because - # that's easier to automate. - TextToFile(self.GitDiff("svn/trunk", self["prepare_commit_hash"]), + # that's easier to automate. Exclude the ChangeLog file. It is not + # maintained on bleeding edge. Changes will be added in a separate step + # below. + TextToFile(self.GitDiff("svn/trunk", + self["prepare_commit_hash"], + exclude=[self.Config(CHANGELOG_FILE)]), self.Config(PATCH_FILE)) # Convert the ChangeLog entry to commit message format. @@ -311,6 +315,16 @@ class ApplyChanges(Step): Command("rm", "-f %s*" % self.Config(PATCH_FILE)) +class AddChangeLog(Step): + MESSAGE = "Add ChangeLog changes to trunk branch." + + def RunStep(self): + 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 +543,7 @@ class PushToTrunk(ScriptsBase): SquashCommits, NewBranch, ApplyChanges, + AddChangeLog, SetVersion, CommitTrunk, SanityCheck, diff --git a/tools/push-to-trunk/test_scripts.py b/tools/push-to-trunk/test_scripts.py index 207cac4..505cbda 100644 --- a/tools/push-to-trunk/test_scripts.py +++ b/tools/push-to-trunk/test_scripts.py @@ -643,7 +643,10 @@ Performance and stability improvements on all platforms.""" 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]) + old_change_log = """1999-04-05: Version 3.22.4 + + Performance and stability improvements on all platforms.\n""" + TextToFile(old_change_log, TEST_CONFIG[CHANGELOG_FILE]) TextToFile("Some line\n \"v8_revision\": \"123444\",\n some line", TEST_CONFIG[DEPS_FILE]) os.environ["EDITOR"] = "vi" @@ -660,6 +663,11 @@ Performance and stability improvements on all platforms.""" version = FileToText(TEST_CONFIG[VERSION_FILE]) self.assertTrue(re.search(r"#define BUILD_NUMBER\s+6", version)) + def TrunkBranchSideEffects(): + """On 'git co -b new_branch svn/trunk', the ChangLog will be reset to its + original content.""" + TextToFile(old_change_log, TEST_CONFIG[CHANGELOG_FILE]) + def CheckSVNCommit(): commit = FileToText(TEST_CONFIG[COMMITMSG_FILE]) self.assertEquals( @@ -675,6 +683,21 @@ Performance and stability improvements on all platforms.""", commit) 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\nTBR=reviewer@chromium.org" if not manual else "" self.ExpectGit([ @@ -711,10 +734,14 @@ Performance and stability improvements on all platforms.""", commit) Git(("log -1 --format=%H --grep=\"Prepare push to trunk. " "Now working on version 3.22.6.\""), "hash1\n"), - Git("diff --name-only svn/trunk hash1", "file1\nfile2\n"), + # The ChangeLog file will be one of the files with differences between + # trunk and bleeding edge. + Git("diff --name-only svn/trunk hash1", + "file1\n%s\nfile2\n" % TEST_CONFIG[CHANGELOG_FILE]), Git("diff svn/trunk hash1 file1 file2", "patch content"), 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=TrunkBranchSideEffects), Git("apply --index --reject \"%s\"" % TEST_CONFIG[PATCH_FILE], ""), Git("add \"%s\"" % TEST_CONFIG[VERSION_FILE], ""), Git("commit -aF \"%s\"" % TEST_CONFIG[COMMITMSG_FILE], "", -- 2.7.4