summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <junkio@cox.net>2006-02-18 20:51:26 -0800
committerLibravatar Junio C Hamano <junkio@cox.net>2006-02-22 13:14:57 -0800
commitd64e6b04291e2313343866a6b206caf13313f1f9 (patch)
tree511478e8e11aa4cdf1a9cedcd5000e4ba9960098
parentDelay "empty ident" errors until they really matter. (diff)
downloadtgif-d64e6b04291e2313343866a6b206caf13313f1f9.tar.xz
Keep Porcelainish from failing by broken ident after making changes.
"empty ident not allowed" error makes commit-tree fail, so we are already safer in that we would not end up with commit objects that have bogus names on the author or committer fields. However, before commit-tree is called there are already changes made to the index file and the working tree. The operation can be resumed after fixing the environment problem, but when this triggers to a newcomer with unusable gecos, the first question becomes "what did I lose and how would I recover". This patch modifies some Porcelainish commands to verify GIT_COMMITTER_IDENT as soon as we know we are going to make some commits before doing much damage to prevent confusion. Signed-off-by: Junio C Hamano <junkio@cox.net>
-rwxr-xr-xgit-am.sh4
-rwxr-xr-xgit-applymbox.sh2
-rwxr-xr-xgit-merge.sh5
-rwxr-xr-xgit-resolve.sh3
4 files changed, 13 insertions, 1 deletions
diff --git a/git-am.sh b/git-am.sh
index 98b9215f70..85ecada657 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -1,11 +1,13 @@
#!/bin/sh
#
-#
+# Copyright (c) 2005, 2006 Junio C Hamano
USAGE='[--signoff] [--dotest=<dir>] [--utf8] [--binary] [--3way] <mbox>
or, when resuming [--skip | --resolved]'
. git-sh-setup
+git var GIT_COMMITTER_IDENT >/dev/null || exit
+
stop_here () {
echo "$1" >"$dotest/next"
exit 1
diff --git a/git-applymbox.sh b/git-applymbox.sh
index 61c8c024c6..5569fdcc34 100755
--- a/git-applymbox.sh
+++ b/git-applymbox.sh
@@ -21,6 +21,8 @@
USAGE='[-u] [-k] [-q] [-m] (-c .dotest/<num> | mbox) [signoff]'
. git-sh-setup
+git var GIT_COMMITTER_IDENT >/dev/null || exit
+
keep_subject= query_apply= continue= utf8= resume=t
while case "$#" in 0) break ;; esac
do
diff --git a/git-merge.sh b/git-merge.sh
index 74f07610fa..2b4a603dff 100755
--- a/git-merge.sh
+++ b/git-merge.sh
@@ -142,6 +142,8 @@ case "$#,$common,$no_commit" in
1,*,)
# We are not doing octopus, not fast forward, and have only
# one common. See if it is really trivial.
+ git var GIT_COMMITTER_IDENT >/dev/null || exit
+
echo "Trying really trivial in-index merge..."
git-update-index --refresh 2>/dev/null
if git-read-tree --trivial -m -u $common $head "$1" &&
@@ -179,6 +181,9 @@ case "$#,$common,$no_commit" in
;;
esac
+# We are going to make a new commit.
+git var GIT_COMMITTER_IDENT >/dev/null || exit
+
case "$use_strategies" in
'')
case "$#" in
diff --git a/git-resolve.sh b/git-resolve.sh
index 9263070054..b53ede8d87 100755
--- a/git-resolve.sh
+++ b/git-resolve.sh
@@ -50,6 +50,9 @@ case "$common" in
;;
esac
+# We are going to make a new commit.
+git var GIT_COMMITTER_IDENT >/dev/null || exit
+
# Find an optimum merge base if there are more than one candidates.
LF='
'