X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=tg.sh;h=ffc120a9bedc18b0bde6501f4264c58fd1c92465;hb=8cf11543aebd8cf79555a1668f718e8950e3e4a8;hp=9082d88910569af146dde388332bedd0b555ffc1;hpb=cfed23b5b79563c7224df89fec8b5e3d91874784;p=topgit.git diff --git a/tg.sh b/tg.sh index 9082d88..ffc120a 100644 --- a/tg.sh +++ b/tg.sh @@ -18,6 +18,20 @@ die() exit 1 } +# Make sure we are in the worktree, not under .git; die otherwise +ensure_git_repo_or_die() +{ + local is_inside_repo is_inside_git_dir + is_inside_repo=1 + is_inside_git_dir=$(git rev-parse --is-inside-git-dir 2>/dev/null) || + is_inside_repo=0 + + case "$is_inside_repo/$is_inside_git_dir" in + 0*) die "Cannot run outside of a Git repository.";; + 1/true) die "Cannot run from inside \`.git\` hierarchy, please switch to work-tree.";; + esac +} + # cat_file TOPIC:PATH [FROM] # cat the file PATH from branch TOPIC when FROM is empty. # FROM can be -i or -w, than the file will be from the index or worktree, @@ -364,8 +378,8 @@ do_help() setup_pager @cmddir@/tg-$1 -h 2>&1 || : echo - if [ -r "@sharedir@/tg-$1.txt" ] ; then - cat "@sharedir@/tg-$1.txt" + if [ -r "@docdir@/tg-$1.txt" ] ; then + cat "@docdir@/tg-$1.txt" fi else echo "`basename $0`: no help for $1" 1>&2 @@ -427,6 +441,8 @@ get_temp() [ -d "@cmddir@" ] || die "No command directory: '@cmddir@'" +ensure_git_repo_or_die + ## Initial setup set -e