X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topgit.git;a=blobdiff_plain;f=tg.sh;h=f8c8de4ba859d76d254580ef88041b3bdce05f19;hp=a3ee0f8de1c4c106b553e0f2f3ae008a146c44e4;hb=e0e1ce4d27242585b6edeb35ca3cf62a6454b074;hpb=492ad94f72e546a16cf7ce57c36670e0ef4d3fd0 diff --git a/tg.sh b/tg.sh index a3ee0f8..f8c8de4 100644 --- a/tg.sh +++ b/tg.sh @@ -17,6 +17,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 +} + # setup_hook NAME setup_hook() { @@ -249,15 +263,7 @@ do_help() [ -d "@cmddir@" ] || die "No command directory: '@cmddir@'" -# Make sure we are in the worktree, not under .git -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 +ensure_git_repo_or_die ## Initial setup