# [PATCH v2 2/2] git-C: Add test to check "git -C ''"

3 messages from 2015-03-05 to 2015-03-05. Participants: Karthik Nayak, karthik nayak, Junio C Hamano.
Thread: https://gitlist.dev/t/38706

## Karthik Nayak, 2015-03-05 10:57

Subject: [PATCH v2 2/2] git-C: Add test to check "git -C ''"
Message-ID: <1425553031-22264-1-git-send-email-karthik.188@gmail.com>
URL: https://gitlist.dev/e/1425553031-22264-1-git-send-email-karthik.188%40gmail.com

```
Add a test to check whether "git -C ''" works
without giving an error. This is achieved by
adding a commit and checking the log using
"git -C ''" and comparing the log message with
the commit message.

Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
---
 t/t0056-git-C.sh | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/t/t0056-git-C.sh b/t/t0056-git-C.sh
index 99c0377..1cefd4a 100755
--- a/t/t0056-git-C.sh
+++ b/t/t0056-git-C.sh
@@ -1,3 +1,4 @@
+
 #!/bin/sh
 
 test_description='"-C <path>" option and its effects on other path-related options'
@@ -81,4 +82,13 @@ test_expect_success 'Relative followed by fullpath: "-C ./here -C /there" is equ
 	test_cmp expected actual
 '
 
+test_expect_success 'Should not barf when "git -C "" cmd" is used' '
+	echo 1 > a.txt &&
+	msg="initial a.txt" &&
+	(git add a.txt && git commit -m "$msg") &&
+	echo "$msg" >expected &&
+	git -C "" log --format=%s >actual &&
+	test_cmp expected actual
+'
+
 test_done
-- 
2.3.1.167.g7f4ba4b.dirty

```

## karthik nayak, 2015-03-05 11:02

Subject: Re: [PATCH v2 2/2] git-C: Add test to check "git -C ''"
Message-ID: <54F837B4.2060003@gmail.com>
URL: https://gitlist.dev/e/54F837B4.2060003%40gmail.com
In-Reply-To: <1425553031-22264-1-git-send-email-karthik.188@gmail.com>

```

On 03/05/2015 04:27 PM, Karthik Nayak wrote:
> Add a test to check whether "git -C ''" works
> without giving an error. This is achieved by
> adding a commit and checking the log using
> "git -C ''" and comparing the log message with
> the commit message.
>
> Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
> ---
>   t/t0056-git-C.sh | 10 ++++++++++
>   1 file changed, 10 insertions(+)
>
> diff --git a/t/t0056-git-C.sh b/t/t0056-git-C.sh
> index 99c0377..1cefd4a 100755
> --- a/t/t0056-git-C.sh
> +++ b/t/t0056-git-C.sh
> @@ -1,3 +1,4 @@
> +
>   #!/bin/sh
>
>   test_description='"-C <path>" option and its effects on other path-related options'
> @@ -81,4 +82,13 @@ test_expect_success 'Relative followed by fullpath: "-C ./here -C /there" is equ
>       test_cmp expected actual
>   '
>
> +test_expect_success 'Should not barf when "git -C "" cmd" is used' '
> +    echo 1 > a.txt &&
> +    msg="initial a.txt" &&
> +    (git add a.txt && git commit -m "$msg") &&
> +    echo "$msg" >expected &&
> +    git -C "" log --format=%s >actual &&
> +    test_cmp expected actual
> +'
> +
>   test_done
>
Ignore This, Didnt connect it to the first patch!

```

## Junio C Hamano, 2015-03-05 21:39

Subject: Re: [PATCH v2 2/2] git-C: Add test to check "git -C ''"
Message-ID: <xmqq1tl32kfi.fsf@gitster.dls.corp.google.com>
URL: https://gitlist.dev/e/xmqq1tl32kfi.fsf%40gitster.dls.corp.google.com
In-Reply-To: <1425553031-22264-1-git-send-email-karthik.188@gmail.com>

```
Karthik Nayak <karthik.188@gmail.com> writes:

> Add a test to check whether "git -C ''" works without giving an
> error. This is achieved by adding a commit and checking the log
> using "git -C ''" and comparing the log message with the commit
> message.

Why choose something complex like commit and log, though?

Wouldn't something like this match the series of current tests
better?  Also I think a small change with a small test like these
should be in a single patch, not two separate ones.

Thanks.

 t/t0056-git-C.sh | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/t/t0056-git-C.sh b/t/t0056-git-C.sh
index 99c0377..551d806 100755
--- a/t/t0056-git-C.sh
+++ b/t/t0056-git-C.sh
@@ -14,6 +14,16 @@ test_expect_success '"git -C <path>" runs git from the directory <path>' '
 	test_cmp expected actual
 '
 
+test_expect_success '"git -C <path>" with an empty <path> is a no-op' '
+	(
+		mkdir -p dir1/subdir &&
+		cd dir1/subdir &&
+		git -C "" rev-parse --show-prefix >actual &&
+		echo subdir/ >expect
+		test_cmp expect actual
+	)
+'
+
 test_expect_success 'Multiple -C options: "-C dir1 -C dir2" is equivalent to "-C dir1/dir2"' '
 	test_create_repo dir1/dir2 &&
 	echo 1 >dir1/dir2/b.txt &&

```
