Subject: Re: [PATCH v8 38/44] refs.c: pack all refs before we start to rename a ref

From: Jonathan Nieder <[email-masked]>
Date: Wed, 21 May 2014 16:57:41 -0700

Ronnie Sahlberg wrote:

> This means that most loose refs will no longer be present after the rename

Is this to handle the "git branch -m foo/bar foo" case or for some other
purpose?

[...]
> --- a/t/t3200-branch.sh
> +++ b/t/t3200-branch.sh
> @@ -289,7 +289,7 @@ test_expect_success 'renaming a symref is not allowed' '
>  	git symbolic-ref refs/heads/master2 refs/heads/master &&
>  	test_must_fail git branch -m master2 master3 &&
>  	git symbolic-ref refs/heads/master2 &&
> -	test_path_is_file .git/refs/heads/master &&
> +	test_path_is_missing .git/refs/heads/master &&
>  	test_path_is_missing .git/refs/heads/master3

It's kind of silly that this test is mucking about in the .git directory
at all.  Shouldn't the check be something like

	git rev-parse --verify refs/heads/master &&
	test_must_fail git symbolic-ref refs/heads/master3 &&
	test_must_fail git rev-parse refs/heads/master3

?