A Large Angry SCM [off-list ref] writes:
It also breaks a lot of commands not related to making commits;
git-fetch for one.
git-sh-setup one is easy to fix. We could say something equally
silly like this instead:
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index 1e638e4..157c7e4 100755
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -41,7 +41,11 @@ then
: ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"}
# Make sure we are in a valid repository of a vintage we understand.
- GIT_DIR="$GIT_DIR" git-var GIT_AUTHOR_IDENT >/dev/null || exit
+ GIT_DIR="$GIT_DIR" git repo-config --get core.nosuch >/dev/null
+ if test $? == 128
+ then
+ exit
+ fi
else
GIT_DIR=$(git-rev-parse --git-dir) || exit
fi
The only thing that code cares about is to use a relatively
cheap command to examine "$GIT_DIR/config" to make sure that the
respository format version recorded in the file is of old enough
vintage we understand; the command to cause .git/config to be
read does not have to be git-var.
So after nixing that one, the remaining users all look like they
do want something reasonable from the user anyway, so for them
git-var that fails when the user has not fixed the unusable
gecos is a desirable thing.
git grep -n git-var '*.sh'
shows:
git-am, git-applypatch, git-format-patch::
use it to add sign-off by the user.
git-commit, git-tag::
use it to record the user identity.
git-pull::
this uses git-var-l which is unfortunate. We should
be able to use git-repo-config instead. Patches
welcome.