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

[PATCH 5/7] t0001: test git init when run via an alias

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Nov 11, 2010, 14:20 UTC
Message-ID
<1289485248-8966-6-git-send-email-pclouds@gmail.com>
In-Reply-To
<1289485248-8966-1-git-send-email-pclouds@gmail.com>
From: Jonathan Nieder <jrnieder@gmail.com>

Add some tests to document the correct behavior of (possibly aliased) init when run within and outside a git directory.

If I set up a simple git alias “quietinit = init --quiet”, usually it will work just like ‘git init --quiet’.

There are some differences, unfortunately, since in the process of checking for aliases, git has to look for a .git/config file. If ‘git quietinit’ is run from a subdirectory of an existing git repository, that repository’s configuration will affect the configuration of the new repository. In particular, the new repository can inherit bogus values for core.bare and core.worktree.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 t/t0001-init.sh |   56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 56 insertions(+), 0 deletions(-)
diff --git a/t/t0001-init.sh b/t/t0001-init.sh
index 7fe8883..28c1858 100755
--- a/t/t0001-init.sh
+++ b/t/t0001-init.sh
@@ -33,6 +33,62 @@ test_expect_success 'plain' '
 	check_config plain/.git false unset
 '
 
+test_expect_success 'plain nested in bare' '
+	(
+		unset GIT_DIR GIT_WORK_TREE &&
+		git init --bare bare-ancestor.git &&
+		cd bare-ancestor.git &&
+		mkdir plain-nested &&
+		cd plain-nested &&
+		git init
+	) &&
+	check_config bare-ancestor.git/plain-nested/.git false unset
+'
+
+test_expect_success 'plain through aliased command, outside any git repo' '
+	(
+		unset GIT_DIR GIT_WORK_TREE GIT_CONFIG_NOGLOBAL &&
+		HOME=$(pwd)/alias-config &&
+		export HOME &&
+		mkdir alias-config &&
+		echo "[alias] aliasedinit = init" >alias-config/.gitconfig &&
+
+		GIT_CEILING_DIRECTORIES=$(pwd) &&
+		export GIT_CEILING_DIRECTORIES &&
+
+		mkdir plain-aliased &&
+		cd plain-aliased &&
+		git aliasedinit
+	) &&
+	check_config plain-aliased/.git false unset
+'
+
+test_expect_failure 'plain nested through aliased command' '
+	(
+		unset GIT_DIR GIT_WORK_TREE &&
+		git init plain-ancestor-aliased &&
+		cd plain-ancestor-aliased &&
+		echo "[alias] aliasedinit = init" >>.git/config &&
+		mkdir plain-nested &&
+		cd plain-nested &&
+		git aliasedinit
+	) &&
+	check_config plain-ancestor-aliased/plain-nested/.git false unset
+'
+
+test_expect_failure 'plain nested in bare through aliased command' '
+	(
+		unset GIT_DIR GIT_WORK_TREE &&
+		git init --bare bare-ancestor-aliased.git &&
+		cd bare-ancestor-aliased.git &&
+		echo "[alias] aliasedinit = init" >>config &&
+		mkdir plain-nested &&
+		cd plain-nested &&
+		git aliasedinit
+	) &&
+	check_config bare-ancestor-aliased.git/plain-nested/.git false unset
+'
+
 test_expect_success 'plain with GIT_WORK_TREE' '
 	if (
 		unset GIT_DIR
-- 
1.7.3.2.210.g045198
Previous: Nguyễn Thái Ngọc DuyNext: Nguyễn Thái Ngọc Duy
Message 6 of 8 in “nd/setup fixups”
  1. 0/7 nd/setup fixupsNguyễn Thái Ngọc Duy, Nov 11, 2010
  2. 1/7 t1020-subdirectory: test alias expansion in a subdirectoryNguyễn Thái Ngọc Duy, Nov 11, 2010
  3. 2/7 setup: clean up setup_discovered_git_dir()Nguyễn Thái Ngọc Duy, Nov 11, 2010
  4. 3/7 setup: rework setup_explicit_git_dir()Nguyễn Thái Ngọc Duy, Nov 11, 2010
  5. 4/7 Remove all logic from get_git_work_tree()Nguyễn Thái Ngọc Duy, Nov 11, 2010
  6. 5/7 t0001: test git init when run via an aliasNguyễn Thái Ngọc Duy, Nov 11, 2010
  7. 6/7 Revert "Documentation: always respect core.worktree if set"Nguyễn Thái Ngọc Duy, Nov 11, 2010
  8. 7/7 git.txt: correct where --work-tree path is relative toNguyễn Thái Ngọc Duy, Nov 11, 2010

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.