git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH/RFC] Make git-commit cleverer - have it figure out whether it needs -a automatically
@ 2006-11-30 12:59 Andy Parkins
  2006-11-30 13:13 ` Jakub Narebski
  2006-11-30 17:14 ` Alex Riesen
  0 siblings, 2 replies; 21+ messages in thread
From: Andy Parkins @ 2006-11-30 12:59 UTC (permalink / raw)
  To: git

Raimund Bauer offered this suggestion (paraphrased):

"Maybe we could do git-commit -a  _only_ if the index matches HEAD, and
otherwise keep current behavior?  So people who don't care about the
index won't get tripped up, and when you do have a dirty index, you get
told about it?"

Johannes Schindelin pointed out that this isn't the right thing to do for
an --amend, so that is checked for.

Additionally, it's probably not the right thing to do if any files are
specified with "--only" or "--include", so they turn this behaviour off
as well.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
---
I've been using this today, and so far it's been quite friendly.  git-commit
is suddenly just doing the Right Thing.

It's so good that the only (small) hurdle, is remembering during an amend
that you need to update the index first to get any code changes in to the
amend - but that is the same as it ever was.

 git-commit.sh |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/git-commit.sh b/git-commit.sh
index 81c3a0c..e9aed2b 100755
--- a/git-commit.sh
+++ b/git-commit.sh
@@ -265,6 +265,13 @@ $1"
 done
 case "$edit_flag" in t) no_edit= ;; esac
 
+# Clever commit - if this commit would do nothing, then make it an "all"
+# commit
+if [ -z "$(git-diff-index --cached --name-only HEAD)" \
+	-a -z "$amend" -a -z "$only" -a -z "$also" ]; then
+	all=t
+fi
+
 ################################################################
 # Sanity check options
 
-- 
1.4.4.1.g3ece-dirty

^ permalink raw reply related	[flat|nested] 21+ messages in thread
* [PATCH] Make git-commit cleverer - have it figure out whether it needs -a automatically
@ 2006-12-01 11:06 Andy Parkins
  2006-12-01 11:15 ` Junio C Hamano
  2006-12-02  8:09 ` Junio C Hamano
  0 siblings, 2 replies; 21+ messages in thread
From: Andy Parkins @ 2006-12-01 11:06 UTC (permalink / raw)
  To: git

Raimund Bauer offered this suggestion (paraphrased):

"Maybe we could do git-commit -a  _only_ if the index matches HEAD, and
otherwise keep current behavior?  So people who don't care about the
index won't get tripped up, and when you do have a dirty index, you get
told about it?"

Johannes Schindelin pointed out that this isn't the right thing to do for
an --amend, so that is checked for. Additionally, it's probably not the
right thing to do if any files are specified with "--only" or
"--include", so they turn this behaviour off as well.

Nguyen Thai Ngoc Duy asked that git-commit let you know it's done this
by adding an extra comment to the commit message.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
---
This time we also inhibit if "all" mode is already set; if the user
has specified "-a" we don't need to tell them that we've switched "-a"
mode on.


 git-commit.sh |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/git-commit.sh b/git-commit.sh
index 81c3a0c..4552727 100755
--- a/git-commit.sh
+++ b/git-commit.sh
@@ -265,6 +265,16 @@ $1"
 done
 case "$edit_flag" in t) no_edit= ;; esac
 
+# Clever commit - if this commit would do nothing, then make it an "all"
+# commit
+if [ -z "$(git-diff-index --cached --name-only HEAD)" \
+	-a -z "$amend" -a -z "$only" -a -z "$also" -a -z "$all" ]; then
+	echo "# There was nothing to commit but changes were detected in the" > $GIT_DIR/SQUASH_MSG
+	echo "# working tree. 'git commit -a' mode activated." >> $GIT_DIR/SQUASH_MSG
+	echo "#" >> $GIT_DIR/SQUASH_MSG
+	all=t
+fi
+
 ################################################################
 # Sanity check options
 
-- 
1.4.4.1.g3ece-dirty

^ permalink raw reply related	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2006-12-03 10:00 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-30 12:59 [PATCH/RFC] Make git-commit cleverer - have it figure out whether it needs -a automatically Andy Parkins
2006-11-30 13:13 ` Jakub Narebski
2006-11-30 13:24   ` [PATCH] " Andy Parkins
2006-11-30 13:32     ` Nguyen Thai Ngoc Duy
2006-11-30 13:41       ` Jakub Narebski
2006-11-30 15:01       ` Andy Parkins
2006-11-30 15:43         ` Salikh Zakirov
2006-11-30 16:28         ` Jakub Narebski
2006-12-01 10:59           ` Andy Parkins
2006-11-30 15:34   ` [PATCH/RFC] " Johannes Schindelin
2006-11-30 17:14 ` Alex Riesen
2006-12-01 10:52   ` Andy Parkins
2006-12-01 13:07     ` Alex Riesen
2006-12-01 15:17       ` Andy Parkins
  -- strict thread matches above, loose matches on Subject: below --
2006-12-01 11:06 [PATCH] " Andy Parkins
2006-12-01 11:15 ` Junio C Hamano
2006-12-01 11:32   ` Junio C Hamano
2006-12-01 12:33   ` Andy Parkins
2006-12-02  8:09 ` Junio C Hamano
2006-12-02  9:45   ` Carl Worth
2006-12-03  9:57   ` Andy Parkins

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).