From f2e9853ae82a5b792ddf1af7c7d8924e9cb8c9b4 Mon Sep 17 00:00:00 2001 From: Primiano Tucci Date: Wed, 10 Sep 2014 15:39:33 +0100 Subject: Fix LASTCHANGE in merge_from_chromium.py when merging a release. The previous changes to merge_from_chromium caused the script to crash when generating LASTCHANGE for a release. This fixes the crash by using the SHA1 of the upstream merge parent to generate LASTCHANGE. Change-Id: I34ff309400135bb09a91e7e32a9eb1aea1e8c310 --- chromium/tools/merge_from_chromium.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'chromium/tools') diff --git a/chromium/tools/merge_from_chromium.py b/chromium/tools/merge_from_chromium.py index 027b909..bf1ce13 100755 --- a/chromium/tools/merge_from_chromium.py +++ b/chromium/tools/merge_from_chromium.py @@ -140,6 +140,9 @@ def _MergeProjects(version, root_sha1, target, unattended, buildspec_url): target: The target branch to merge to. unattended: Run in unattended mode. buildspec_url: URL for buildspec repository, when merging a branch. + Returns: + The abbrev sha1 merged. It will be either |root_sha1| itself (when merging + chromium trunk) or the upstream sha1 of the release. Raises: TemporaryMergeError: If incompatibly licensed code is left after pruning. """ @@ -205,15 +208,17 @@ def _MergeProjects(version, root_sha1, target, unattended, buildspec_url): if not root_sha1: merge_info = _GetProjectMergeInfo([''], deps_vars) url = merge_info['']['url'] - root_sha1 = merge_info['']['sha1'] - merge_common.GetCommandStdout(['git', 'fetch', url, root_sha1]) - merge_msg_version = '%s (%s)' % (version, root_sha1) + merged_sha1 = merge_info['']['sha1'] + merge_common.GetCommandStdout(['git', 'fetch', url, merged_sha1]) + merged_sha1 = merge_common.Abbrev(merged_sha1) + merge_msg_version = '%s (%s)' % (version, merged_sha1) else: merge_msg_version = root_sha1 + merged_sha1 = root_sha1 - logging.debug('Merging Chromium at %s ...', root_sha1) + logging.debug('Merging Chromium at %s ...', merged_sha1) # Merge conflicts make git merge return 1, so ignore errors - merge_common.GetCommandStdout(['git', 'merge', '--no-commit', root_sha1], + merge_common.GetCommandStdout(['git', 'merge', '--no-commit', merged_sha1], ignore_errors=True) merge_common.CheckNoConflictsAndCommitMerge( 'Merge Chromium at %s\n\n%s' @@ -241,6 +246,8 @@ def _MergeProjects(version, root_sha1, target, unattended, buildspec_url): merge_common.GetCommandStdout(['git', 'commit', '-m', 'Exclude unwanted directories'], cwd=dest_dir) + assert(root_sha1 is None or root_sha1 == merged_sha1) + return merged_sha1 def _CheckLicenses(): @@ -439,7 +446,8 @@ def Snapshot(root_sha1, release, target, unattended, buildspec_url): logging.info('Snapshotting Chromium at %s (%s)', version, root_sha1) # 1. Merge, accounting for excluded directories - _MergeProjects(version, root_sha1, target, unattended, buildspec_url) + merged_sha1 = _MergeProjects(version, root_sha1, target, unattended, + buildspec_url) # 2. Generate Android makefiles _GenerateMakefiles(version, unattended) @@ -451,7 +459,7 @@ def Snapshot(root_sha1, release, target, unattended, buildspec_url): _GenerateNoticeFile(version) # 5. Generate LASTCHANGE file - _GenerateLastChange(version, root_sha1) + _GenerateLastChange(version, merged_sha1) return True -- cgit v1.2.3