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

55
git.sh
View File

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