Add new constants for last-upload-hash and gerritsquashhash

Also add comments.

Bug: 1382528
Change-Id: If4311f36e7d1f591be48a6d0de772701290d69db
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4015279
Auto-Submit: Gavin Mak <gavinmak@google.com>
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
changes/79/4015279/4
Gavin Mak 3 years ago committed by LUCI CQ
parent 35ac4b47f6
commit be2e926c5e

@ -125,6 +125,13 @@ YAPF_CONFIG_FILENAME = '.style.yapf'
ISSUE_CONFIG_KEY = 'gerritissue'
PATCHSET_CONFIG_KEY = 'gerritpatchset'
CODEREVIEW_SERVER_CONFIG_KEY = 'gerritserver'
# When using squash workflow, _CMDUploadChange doesn't simply push the commit(s)
# you make to Gerrit. Instead, it creates a new commit object that contains all
# changes you've made, diffed against a parent/merge base.
# This is the hash of the new squashed commit and you can find this on Gerrit.
GERRIT_SQUASH_HASH_CONFIG_KEY = 'gerritsquashhash'
# This is the latest uploaded local commit hash.
LAST_UPLOAD_HASH_CONFIG_KEY = 'last-upload-hash'
# Shortcut since it quickly becomes repetitive.
Fore = colorama.Fore
@ -1289,11 +1296,11 @@ class Changelist(object):
else:
# Reset all of these just to be clean.
reset_suffixes = [
'last-upload-hash',
LAST_UPLOAD_HASH_CONFIG_KEY,
ISSUE_CONFIG_KEY,
PATCHSET_CONFIG_KEY,
CODEREVIEW_SERVER_CONFIG_KEY,
'gerritsquashhash',
GERRIT_SQUASH_HASH_CONFIG_KEY,
]
for prop in reset_suffixes:
try:
@ -1598,7 +1605,8 @@ class Changelist(object):
options, git_diff_args, custom_cl_base, change_desc)
if not ret:
self._GitSetBranchConfigValue(
'last-upload-hash', scm.GIT.ResolveCommit(settings.GetRoot(), 'HEAD'))
LAST_UPLOAD_HASH_CONFIG_KEY,
scm.GIT.ResolveCommit(settings.GetRoot(), 'HEAD'))
# Run post upload hooks, if specified.
if settings.GetRunPostUploadHook():
self.RunPostUploadHook(options.verbose, base_branch,
@ -2108,7 +2116,7 @@ class Changelist(object):
'Are you sure you wish to bypass it?\n',
action='bypass CQ')
differs = True
last_upload = self._GitGetBranchConfigValue('gerritsquashhash')
last_upload = self._GitGetBranchConfigValue(GERRIT_SQUASH_HASH_CONFIG_KEY)
# Note: git diff outputs nothing if there is no diff.
if not last_upload or RunGit(['diff', last_upload]).strip():
print('WARNING: Some changes from local branch haven\'t been uploaded.')
@ -2217,8 +2225,8 @@ class Changelist(object):
self.SetIssue(parsed_issue_arg.issue)
self.SetPatchset(patchset)
fetched_hash = scm.GIT.ResolveCommit(settings.GetRoot(), 'FETCH_HEAD')
self._GitSetBranchConfigValue('last-upload-hash', fetched_hash)
self._GitSetBranchConfigValue('gerritsquashhash', fetched_hash)
self._GitSetBranchConfigValue(LAST_UPLOAD_HASH_CONFIG_KEY, fetched_hash)
self._GitSetBranchConfigValue(GERRIT_SQUASH_HASH_CONFIG_KEY, fetched_hash)
else:
print('WARNING: You are in detached HEAD state.\n'
'The patch has been applied to your checkout, but you will not be '
@ -2631,7 +2639,7 @@ class Changelist(object):
('Created|Updated %d issues on Gerrit, but only 1 expected.\n'
'Change-Id: %s') % (len(change_numbers), change_id), change_desc)
self.SetIssue(change_numbers[0])
self._GitSetBranchConfigValue('gerritsquashhash', ref_to_push)
self._GitSetBranchConfigValue(GERRIT_SQUASH_HASH_CONFIG_KEY, ref_to_push)
if self.GetIssue() and (reviewers or cc):
# GetIssue() is not set in case of non-squash uploads according to tests.
@ -2689,8 +2697,8 @@ class Changelist(object):
# the tree hash of the parent branch. The upside is less likely bogus
# requests to reupload parent change just because it's uploadhash is
# missing, yet the downside likely exists, too (albeit unknown to me yet).
parent = scm.GIT.GetBranchConfig(
settings.GetRoot(), upstream_branch_name, 'gerritsquashhash')
parent = scm.GIT.GetBranchConfig(settings.GetRoot(), upstream_branch_name,
GERRIT_SQUASH_HASH_CONFIG_KEY)
# Verify that the upstream branch has been uploaded too, otherwise
# Gerrit will create additional CLs when uploading.
if not parent or (RunGitSilent(['rev-parse', upstream_branch + ':']) !=
@ -5008,9 +5016,9 @@ def CMDdiff(parser, args):
if not issue:
DieWithError('No issue found for current branch (%s)' % branch)
base = cl._GitGetBranchConfigValue('last-upload-hash')
base = cl._GitGetBranchConfigValue(LAST_UPLOAD_HASH_CONFIG_KEY)
if not base:
base = cl._GitGetBranchConfigValue('gerritsquashhash')
base = cl._GitGetBranchConfigValue(GERRIT_SQUASH_HASH_CONFIG_KEY)
if not base:
detail = cl._GetChangeDetail(['CURRENT_REVISION', 'CURRENT_COMMIT'])
revision_info = detail['revisions'][detail['current_revision']]

Loading…
Cancel
Save