From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [WIP PATCH 02/18] Add t1510 for setup tests
Date: Sun, 24 Oct 2010 19:11:34 +0700 [thread overview]
Message-ID: <1287922310-14678-3-git-send-email-pclouds@gmail.com> (raw)
In-Reply-To: <1287922310-14678-1-git-send-email-pclouds@gmail.com>
---
t/t1510-repo-setup.sh | 56 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 56 insertions(+), 0 deletions(-)
create mode 100755 t/t1510-repo-setup.sh
diff --git a/t/t1510-repo-setup.sh b/t/t1510-repo-setup.sh
new file mode 100755
index 0000000..d618787
--- /dev/null
+++ b/t/t1510-repo-setup.sh
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+test_description='Tests of cwd/prefix/worktree/gitdir setup in all cases'
+
+. ./test-lib.sh
+
+# A few principles for repo setup:
+#
+# 1. GIT_DIR is relative to user's cwd. This directory is refered as
+# "git_dir" below. Auto discovered repo is also "git_dir".
+# --git-dir is equivalent to GIT_DIR.
+#
+# 2. core.worktree is relative to git_dir
+#
+# 3. GIT_WORK_TREE is relative to user's cwd. --work-tree is
+# equivalent to GIT_WORK_TREE.
+#
+# 4. .git file is relative to git_dir. Note that the repo where .git
+# file points to is not considered "git_dir" in the above.
+#
+# 5. GIT_WORK_TREE is only effective if GIT_DIR is
+# set (hence "Effective GIT_WORK_TREE"
+# below). Uneffective GIT_WORK_TREE should be warned.
+#
+# 6. Effective GIT_WORK_TREE will override core.worktree
+#
+# 7. During repo discovery, if "." is found a repo, it is considered a
+# bare repo unless core.worktree is set
+#
+# 8. core.bare conflicts with core.worktree
+#
+# 9. Effective GIT_WORK_TREE will override core.bare
+#
+# 10. When user's cwd is outside worktree, cwd will remain unchanged,
+# prefix be NULL.
+
+test_repo() {
+ (
+ if [ -n "$1" ]; then cd "$1"; fi &&
+ git symbolic-ref HEAD >/dev/null && # git_dir reachability test first
+ git rev-parse --internal-git-dir >result &&
+ git rev-parse --show-toplevel >>result &&
+ git rev-parse --internal-cwd >>result &&
+ git rev-parse --show-prefix >>result &&
+ test_cmp expected result
+ )
+}
+
+# Bit 0 = GIT_WORK_TREE
+# Bit 1 = GIT_DIR
+# Bit 2 = core.worktree
+# Bit 3 = .git is a file
+# Bit 4 = bare repo
+# Case# = encoding of the above 5 bits
+
+test_done
--
1.7.0.2.445.gcbdb3
next prev parent reply other threads:[~2010-10-24 12:12 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-24 12:11 [WIP PATCH 00/18] setup tests Nguyễn Thái Ngọc Duy
2010-10-24 12:11 ` [WIP PATCH 01/18] rev-parse: add --internal-cwd and --internal-git-dir for tests Nguyễn Thái Ngọc Duy
2010-10-24 15:40 ` Jonathan Nieder
2010-10-25 0:04 ` Nguyen Thai Ngoc Duy
2010-10-25 10:15 ` Jakub Narebski
2010-10-25 10:30 ` Nguyen Thai Ngoc Duy
2010-10-24 12:11 ` Nguyễn Thái Ngọc Duy [this message]
2010-10-24 12:11 ` [WIP PATCH 03/18] t1510: setup case #0 Nguyễn Thái Ngọc Duy
2010-10-24 12:11 ` [WIP PATCH 04/18] t1510: setup case #1 Nguyễn Thái Ngọc Duy
2010-10-24 12:11 ` [WIP PATCH 05/18] t1510: setup case #2 Nguyễn Thái Ngọc Duy
2010-10-24 12:11 ` [WIP PATCH 06/18] t1510: setup case #3 Nguyễn Thái Ngọc Duy
2010-10-24 12:11 ` [WIP PATCH 07/18] t1510: setup case #4 Nguyễn Thái Ngọc Duy
2010-10-24 12:11 ` [WIP PATCH 08/18] t1510: setup case #5 Nguyễn Thái Ngọc Duy
2010-10-24 12:11 ` [WIP PATCH 09/18] t1510: setup case #6 Nguyễn Thái Ngọc Duy
2010-10-24 12:11 ` [WIP PATCH 10/18] t1510: setup case #7 Nguyễn Thái Ngọc Duy
2010-10-24 12:11 ` [WIP PATCH 11/18] t1510: setup case #8 Nguyễn Thái Ngọc Duy
2010-10-24 12:11 ` [WIP PATCH 12/18] t1510: setup case #9 Nguyễn Thái Ngọc Duy
2010-10-24 12:11 ` [WIP PATCH 13/18] t1510: setup case #10 Nguyễn Thái Ngọc Duy
2010-10-24 12:11 ` [WIP PATCH 14/18] t1510: setup case #11 Nguyễn Thái Ngọc Duy
2010-10-24 12:11 ` [WIP PATCH 15/18] t1510: setup case #12 Nguyễn Thái Ngọc Duy
2010-10-24 12:11 ` [WIP PATCH 16/18] t1510: setup case #13 Nguyễn Thái Ngọc Duy
2010-10-24 12:11 ` [WIP PATCH 17/18] t1510: setup case #14 Nguyễn Thái Ngọc Duy
2010-10-24 12:11 ` [WIP PATCH 18/18] t1510: setup case #15 Nguyễn Thái Ngọc Duy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1287922310-14678-3-git-send-email-pclouds@gmail.com \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).