Browse Source

git-help -w: do not require to be in git repository

The users used to be able to say "git help cat-file" from anywhere, but
the browse-help script insisted to be in a git repository, which caused
"git help -w cat-file" to barf outside.  Correct it.

While at it, remove leftover debugging "echo".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Junio C Hamano 17 years ago
parent
commit
22c9071728
  1. 13
      git-browse-help.sh
  2. 45
      git-sh-setup.sh

13
git-browse-help.sh

@ -17,8 +17,10 @@ @@ -17,8 +17,10 @@
#

USAGE='[--browser=browser|--tool=browser] [cmd to display] ...'
SUBDIRECTORY_OK=Yes
OPTIONS_SPEC=

# This must be capable of running outside of git directory, so
# the vanilla git-sh-setup should not be used.
NONGIT_OK=Yes
. git-sh-setup

# Install data.
@ -37,7 +39,7 @@ valid_tool() { @@ -37,7 +39,7 @@ valid_tool() {
}

init_browser_path() {
browser_path=`git config browser.$1.path`
test -z "$GIT_DIR" || browser_path=`git config browser.$1.path`
test -z "$browser_path" && browser_path=$1
}

@ -69,7 +71,8 @@ do @@ -69,7 +71,8 @@ do
shift
done

if test -z "$browser"; then
if test -z "$browser" && test -n "$GIT_DIR"
then
for opt in "help.browser" "web.browser"
do
browser="`git config $opt`"
@ -91,7 +94,7 @@ if test -z "$browser" ; then @@ -91,7 +94,7 @@ if test -z "$browser" ; then
else
browser_candidates="w3m links lynx"
fi
echo "browser candidates: $browser_candidates"

for i in $browser_candidates; do
init_browser_path $i
if type "$browser_path" > /dev/null 2>&1; then

45
git-sh-setup.sh

@ -122,26 +122,33 @@ get_author_ident_from_commit () { @@ -122,26 +122,33 @@ get_author_ident_from_commit () {
LANG=C LC_ALL=C sed -ne "$pick_author_script"
}

# Make sure we are in a valid repository of a vintage we understand.
if [ -z "$SUBDIRECTORY_OK" ]
# Make sure we are in a valid repository of a vintage we understand,
# if we require to be in a git repository.
if test -n "$NONGIT_OK"
then
: ${GIT_DIR=.git}
test -z "$(git rev-parse --show-cdup)" || {
exit=$?
echo >&2 "You need to run this command from the toplevel of the working tree."
exit $exit
}
if git rev-parse --git-dir >/dev/null 2>&1
then
: ${GIT_DIR=.git}
fi
else
GIT_DIR=$(git rev-parse --git-dir) || {
exit=$?
echo >&2 "Failed to find a valid git directory."
exit $exit
if [ -z "$SUBDIRECTORY_OK" ]
then
: ${GIT_DIR=.git}
test -z "$(git rev-parse --show-cdup)" || {
exit=$?
echo >&2 "You need to run this command from the toplevel of the working tree."
exit $exit
}
else
GIT_DIR=$(git rev-parse --git-dir) || {
exit=$?
echo >&2 "Failed to find a valid git directory."
exit $exit
}
fi
test -n "$GIT_DIR" && GIT_DIR=$(cd "$GIT_DIR" && pwd) || {
echo >&2 "Unable to determine absolute path of git directory"
exit 1
}
: ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"}
fi

test -n "$GIT_DIR" && GIT_DIR=$(cd "$GIT_DIR" && pwd) || {
echo >&2 "Unable to determine absolute path of git directory"
exit 1
}

: ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"}

Loading…
Cancel
Save