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
This commit is contained in:
parent
81a5cfb0e0
commit
fa4625c1a4
@ -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,
|
||||
|
@ -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], "",
|
||||
|
Loading…
Reference in New Issue
Block a user