def CMDLand(self, force, bypass_hooks, verbose):
    if git_common.is_dirty_git_tree('land'):
        return 1
    detail = self._GetChangeDetail(['CURRENT_REVISION', 'LABELS'])
    if (u'Commit-Queue' in detail.get('labels', {})):
        if (not force):
            ask_for_data('\nIt seems this repository has a Commit Queue, which can test and land changes for you. Are you sure you wish to bypass it?\nPress Enter to continue, Ctrl+C to abort.')
    differs = True
    last_upload = RunGit(['config', ('branch.%s.gerritsquashhash' % self.GetBranch())], error_ok=True).strip()
    if ((not last_upload) or RunGit(['diff', last_upload]).strip()):
        print("WARNING: some changes from local branch haven't been uploaded")
    elif (detail['current_revision'] == last_upload):
        differs = False
    else:
        print('WARNING: local branch contents differ from latest uploaded patchset')
    if differs:
        if (not force):
            ask_for_data('Do you want to submit latest Gerrit patchset and bypass hooks?')
        print('WARNING: bypassing hooks and submitting latest uploaded patchset')
    elif (not bypass_hooks):
        hook_results = self.RunHook(committing=True, may_prompt=(not force), verbose=verbose, change=self.GetChange(self.GetCommonAncestorWithUpstream(), None))
        if (not hook_results.should_continue()):
            return 1
    self.SubmitIssue(wait_for_merge=True)
    print(('Issue %s has been submitted.' % self.GetIssueURL()))
    return 0
def CMDLand(self, force, bypass_hooks, verbose):
    if git_common.is_dirty_git_tree('land'):
        return 1
    detail = self._GetChangeDetail(['CURRENT_REVISION', 'LABELS'])
    if (u'Commit-Queue' in detail.get('labels', {})):
        if (not force):
            ask_for_data('\nIt seems this repository has a Commit Queue, which can test and land changes for you. Are you sure you wish to bypass it?\nPress Enter to continue, Ctrl+C to abort.')
    differs = True
    last_upload = RunGit(['config', ('branch.%s.gerritsquashhash' % self.GetBranch())], error_ok=True).strip()
    if ((not last_upload) or RunGit(['diff', last_upload]).strip()):
        print("WARNING: some changes from local branch haven't been uploaded")
    elif (detail['current_revision'] == last_upload):
        differs = False
    else:
        print('WARNING: local branch contents differ from latest uploaded patchset')
    if differs:
        if (not force):
            ask_for_data('Do you want to submit latest Gerrit patchset and bypass hooks?')
        print('WARNING: bypassing hooks and submitting latest uploaded patchset')
    elif (not bypass_hooks):
        hook_results = self.RunHook(committing=True, may_prompt=(not force), verbose=verbose, change=self.GetChange(self.GetCommonAncestorWithUpstream(), None))
        if (not hook_results.should_continue()):
            return 1
    self.SubmitIssue(wait_for_merge=True)
    print(('Issue %s has been submitted.' % self.GetIssueURL()))
    return 0