[PATCH 2/2] git-commit: Add --no-status option
From: Dmitry V. Levin <hidden>
Date: 2016-06-15 22:43:33
By default, git-commit runs git-runstatus to print changes between the index and the working tree. This operation is very costly and is not always necessary. New option allows user to commit without running git-runstatus when appropriate. Signed-off-by: Dmitry V. Levin <redacted> --- Documentation/git-commit.txt | 7 ++++++- git-commit.sh | 11 ++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt
index e54fb12..177e7cd 100644
--- a/Documentation/git-commit.txt
+++ b/Documentation/git-commit.txt@@ -10,7 +10,7 @@ SYNOPSIS [verse] 'git-commit' [-a | --interactive] [-s] [-v] [-u] [(-c | -C) <commit> | -F <file> | -m <msg> | --amend] - [--no-verify] [-e] [--author <author>] + [--no-status] [--no-verify] [-e] [--author <author>] [--] [[-i | -o ]<file>...] DESCRIPTION
@@ -85,6 +85,11 @@ OPTIONS -s|--signoff:: Add Signed-off-by line at the end of the commit message. +--no-status:: + Do not examine paths in the working tree that has changes + unrecorded to the index file, and changes between the + index file and the current commit. + --no-verify:: This option bypasses the pre-commit hook. See also link:hooks.html[hooks].
diff --git a/git-commit.sh b/git-commit.sh
index 800f96c..75126f1 100755
--- a/git-commit.sh
+++ b/git-commit.sh@@ -3,7 +3,7 @@ # Copyright (c) 2005 Linus Torvalds # Copyright (c) 2006 Junio C Hamano -USAGE='[-a | --interactive] [-s] [-v] [--no-verify] [-m <message> | -F <logfile> | (-C|-c) <commit> | --amend] [-u] [-e] [--author <author>] [--template <file>] [[-i | -o] <path>...]' +USAGE='[-a | --interactive] [-s] [-v] [--no-status] [--no-verify] [-m <message> | -F <logfile> | (-C|-c) <commit> | --amend] [-u] [-e] [--author <author>] [--template <file>] [[-i | -o] <path>...]' SUBDIRECTORY_OK=Yes . git-sh-setup require_work_tree
@@ -54,6 +54,7 @@ run_status () { else color=--nocolor fi + test t = "$status" || return 0 git runstatus ${color} \ ${verbose:+--verbose} \ ${amend:+--amend} \
@@ -81,6 +82,7 @@ edit_flag= no_edit= log_given= log_message= +status=t verify=t quiet= verbose=
@@ -184,6 +186,13 @@ $1" no_edit=t shift ;; + --no-s|--no-st|--no-sta|--no-stat|--no-statu|\ + --no-status) + test "$status_only" = t && + die "Option $1 does not make sense with ${0##*/}." + status= + shift + ;; -n|--n|--no|--no-|--no-v|--no-ve|--no-ver|--no-veri|--no-verif|\ --no-verify) verify=
--
ldv