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

[PATCH 3/4 v2] Add tests for .git file

From
LHLars Hjemli <hjemli@gmail.com>
Date
Feb 6, 2008, 07:56 UTC
Message-ID
<1202284583-24478-1-git-send-email-hjemli@gmail.com>
In-Reply-To
<7vfxw66a0s.fsf@gitster.siamese.dyndns.org>

Verify that the basic plumbing works when .git is a file pointing at the real git directory.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
---
This updated patch replaces cut with sed and tries to do proper quoting.
 t/t0002-gitfile.sh |   74 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 74 insertions(+), 0 deletions(-)
 create mode 100755 t/t0002-gitfile.sh
diff --git a/t/t0002-gitfile.sh b/t/t0002-gitfile.sh
new file mode 100755
index 0000000..7f8ee2f
--- /dev/null
+++ b/t/t0002-gitfile.sh
@@ -0,0 +1,74 @@
+#!/bin/sh
+
+test_description='.git file
+
+Verify that plumbing commands work when .git is a file
+'
+. ./test-lib.sh
+
+objpath() {
+    echo $1 | sed -re 's|(..)(.+)|\1/\2|'
+}
+
+objck() {
+	p=$(objpath $1)
+	if test ! -f "$REAL/objects/$p"
+	then
+		echo "Object not found: $REAL/objects/$p"
+		false
+	fi
+}
+
+test_expect_success 'setup' '
+	REAL="$(pwd)/.real" &&
+	mv .git "$REAL" &&
+	echo "gitdir: $REAL" >.git
+'
+
+test_expect_success 'check rev-parse --git-dir' '
+	test "$REAL" = "$(git rev-parse --git-dir)"
+'
+
+test_expect_success 'check hash-object' '
+	echo "foo" >bar &&
+	SHA=$(cat bar | git hash-object -w --stdin) &&
+	objck $SHA
+'
+
+test_expect_success 'check cat-file' '
+	git cat-file blob $SHA >actual &&
+	diff -u bar actual
+'
+
+test_expect_success 'check update-index' '
+	if test -f "$REAL/index"
+	then
+		echo "Hmm, $REAL/index exists?"
+		false
+	fi &&
+	rm -f "$REAL/objects/$(objpath $SHA)" &&
+	git update-index --add bar &&
+	if ! test -f "$REAL/index"
+	then
+		echo "$REAL/index not found"
+		false
+	fi &&
+	objck $SHA
+'
+
+test_expect_success 'check write-tree' '
+	SHA=$(git write-tree) &&
+	objck $SHA
+'
+
+test_expect_success 'check commit-tree' '
+	SHA=$(echo "commit bar" | git commit-tree $SHA) &&
+	objck $SHA
+'
+
+test_expect_success 'check rev-list' '
+	echo $SHA >"$REAL/HEAD" &&
+	test "$SHA" = "$(git rev-list HEAD)"
+'
+
+test_done
-- 
1.5.4.6.g6627
Previous: Junio C HamanoNext: Junio C Hamano
Message 9 of 13 in “Introduce the .git-file”
  1. 0/4 Introduce the .git-fileLars Hjemli, Feb 4, 2008
  2. 1/4 Add platform-independent .git "symlink"Lars Hjemli, Feb 4, 2008
  3. 2/4 Document the .git-fileLars Hjemli, Feb 4, 2008
  4. 3/4 Add tests for .git fileLars Hjemli, Feb 4, 2008
  5. 4/4 git-submodule: prepare for the .git-fileLars Hjemli, Feb 4, 2008
  6. Mike HommeyFeb 4, 2008
  7. Lars HjemliFeb 4, 2008
  8. Junio C HamanoFeb 6, 2008
  9. 3/4 Add tests for .git fileLars Hjemli, Feb 6, 2008
  10. Junio C HamanoFeb 6, 2008
  11. Lars HjemliFeb 6, 2008
  12. Junio C HamanoFeb 6, 2008
  13. Lars HjemliFeb 6, 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.