From 9fb64ae29cb978f869de5ff11a47f86e070b4274 Mon Sep 17 00:00:00 2001 From: Martin Geisler Date: Fri, 8 Jul 2022 10:50:10 +0200 Subject: [PATCH] =?UTF-8?q?upload:=20add=20=E2=80=98--ignore-untracked-fil?= =?UTF-8?q?es=E2=80=99=20option?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This option will suppress the Uncommitted changes in ... (did you forget to amend?) prompt when there are untracked (unknown) files in the working copy. The prompt is still shown if tracked files are modified. Change-Id: Ia3fcc82989b7fad09b69214eda31e2d0dfc14600 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/340456 Tested-by: Martin Geisler Reviewed-by: Mike Frysinger --- project.py | 8 ++++++-- subcmds/upload.py | 10 ++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/project.py b/project.py index 48cf08c..8274f02 100644 --- a/project.py +++ b/project.py @@ -650,7 +650,7 @@ class Project(object): return True if self.work_git.DiffZ('diff-files'): return True - if consider_untracked and self.work_git.LsOthers(): + if consider_untracked and self.UntrackedFiles(): return True return False @@ -779,12 +779,16 @@ class Project(object): if not get_all: return details - changes = self.work_git.LsOthers() + changes = self.UntrackedFiles() if changes: details.extend(changes) return details + def UntrackedFiles(self): + """Returns a list of strings, untracked files in the git tree.""" + return self.work_git.LsOthers() + def HasChanges(self): """Returns true if there are uncommitted changes. """ diff --git a/subcmds/upload.py b/subcmds/upload.py index 20b8fe5..09ee5c0 100644 --- a/subcmds/upload.py +++ b/subcmds/upload.py @@ -204,6 +204,12 @@ Gerrit Code Review: https://www.gerritcodereview.com/ p.add_option('-y', '--yes', default=False, action='store_true', help='answer yes to all safe prompts') + p.add_option('--ignore-untracked-files', + action='store_true', default=False, + help='ignore untracked files in the working copy') + p.add_option('--no-ignore-untracked-files', + dest='ignore_untracked_files', action='store_false', + help='always ask about untracked files in the working copy') p.add_option('--no-cert-checks', dest='validate_certs', action='store_false', default=True, help='disable verifying ssl certs (unsafe)') @@ -370,6 +376,10 @@ Gerrit Code Review: https://www.gerritcodereview.com/ # Check if there are local changes that may have been forgotten changes = branch.project.UncommitedFiles() + if opt.ignore_untracked_files: + untracked = set(branch.project.UntrackedFiles()) + changes = [x for x in changes if x not in untracked] + if changes: key = 'review.%s.autoupload' % branch.project.remote.review answer = branch.project.config.GetBoolean(key)