Customize git command for installations that lack certain commands.

When the platform lacks certain git subcommands, omit them from the
list of subcommands that are available from "git" wrapper.

Noticed by Geert Bosch.

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Junio C Hamano 2005-10-02 00:20:45 -07:00
parent 18c5a52537
commit 0842acff57
2 changed files with 50 additions and 12 deletions

View File

@ -122,6 +122,8 @@ PROGRAMS = \
# Backward compatibility -- to be removed after 1.0
PROGRAMS += git-ssh-pull git-ssh-push
GIT_LIST_TWEAK =
PYMODULES = \
gitMergeCommon.py
@ -131,6 +133,8 @@ endif
ifdef WITH_SEND_EMAIL
SCRIPT_PERL += git-send-email.perl
else
GIT_LIST_TWEAK += -e '/^send-email$$/d'
endif
LIB_FILE=libgit.a
@ -282,7 +286,8 @@ all:
git: git.sh Makefile
rm -f $@+ $@
sed -e '1s|#!.*/sh|#!$(SHELL_PATH)|' \
-e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' <$@.sh >$@+
-e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
$(GIT_LIST_TWEAK) <$@.sh >$@+
chmod +x $@+
mv $@+ $@

55
git.sh
View File

@ -16,17 +16,50 @@ esac
echo "Usage: git COMMAND [OPTIONS] [TARGET]"
if [ -n "$cmd" ]; then
echo " git command '$cmd' not found: commands are:"
else
echo " git commands are:"
echo "git command '$cmd' not found."
fi
echo "git commands are:"
cat <<\EOF
add apply archimport bisect branch checkout cherry clone
commit count-objects cvsimport diff fetch format-patch
fsck-cache get-tar-commit-id init-db log ls-remote octopus
pack-objects parse-remote patch-id prune pull push rebase
relink rename repack request-pull reset resolve revert
send-email shortlog show-branch status tag verify-tag
whatchanged
fmt <<\EOF | sed -e 's/^/ /'
add
apply
archimport
bisect
branch
checkout
cherry
clone
commit
count-objects
cvsimport
diff
fetch
format-patch
fsck-objects
get-tar-commit-id
init-db
log
ls-remote
octopus
pack-objects
parse-remote
patch-id
prune
pull
push
rebase
relink
rename
repack
request-pull
reset
resolve
revert
send-email
shortlog
show-branch
status
tag
verify-tag
whatchanged
EOF