git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[TopGit PATCH] Ensure we are inside a Git worktree

From
MKmartin f. krafft <madduck@debian.org>
Date
Nov 21, 2008, 12:09 UTC
Message-ID
<1227269356-19093-1-git-send-email-madduck@debian.org>
In-Reply-To
<20081121120609.GA10326@piper.oerlikon.madduck.net>

Bert Wesarg suggests to check that we are not inside the .git directory before setting up topgit. Because git rev-parse --git-dir only works in the top .git dir, not deeper (i.e. inside .git/refs) and will always return "."

This patch thus causes topgit to die early on when it's called from outside of a Git repository, or from underneath .git and outputs error messages accordingly.

This temporarily makes it even more impossible to call tg --help, but I expect to have that fixed soon too.

Signed-off-by: martin f. krafft <madduck@debian.org>
---
 tg.sh |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/tg.sh b/tg.sh
index 8c23d26..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,6 +263,8 @@ do_help()
 [ -d "@cmddir@" ] ||
 	die "No command directory: '@cmddir@'"
 
+ensure_git_repo_or_die
+
 ## Initial setup
 
 set -e
-- 
tg: (2ea19b6..) fixes/ensure-worktree (depends on: upstream)
Previous: martin f krafftNext: Bert Wesarg
Message 12 of 16 in “[TopGit] Improve help output”
  1. martin f. krafftNov 19, 2008
  2. Check for help invocation before setupmartin f. krafft, Nov 19, 2008
  3. Change tg help exit code to 0martin f. krafft, Nov 19, 2008
  4. Check for cmddir earliermartin f. krafft, Nov 19, 2008
  5. Print help output when no command is givenmartin f. krafft, Nov 19, 2008
  6. Petr BaudisNov 19, 2008
  7. martin f krafftNov 19, 2008
  8. Petr BaudisNov 19, 2008
  9. martin f krafftNov 20, 2008
  10. Bert WesargNov 21, 2008
  11. TopGit: ensure worktree (was: [TopGit PATCH] Check for help invocation before setup)martin f krafft, Nov 21, 2008
  12. Ensure we are inside a Git worktreemartin f. krafft, Nov 21, 2008
  13. Bert WesargNov 21, 2008
  14. Bert WesargNov 21, 2008
  15. martin f krafftNov 21, 2008
  16. martin f krafftNov 21, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.