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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.