Subject: Re: [JGIT PATCH 2/2] Make Repository.isValidRefName compatible with Git 1.6.3

From: Junio C Hamano <[email-masked]>
Date: Thu, 07 May 2009 17:32:51 -0700

Linus Torvalds <[email-masked]> writes:

> On Fri, 8 May 2009, Robin Rosenberg wrote:
>> 
>> In 3e262b95c509 I taught C Git to disallow refs whose names end in
>> ".lock".
>
> Btw, I think we should revert that, and instead change our naming for 
> lock-files.
>
> It's a silly limitation, and for a stupid reason, I think. I can well 
> imagine people using a branch naming policy of using '.' instead of 
> spaces, and then It makes perfect sense to call a branch "fix.vm.lock" 
> when you have a VM locking issue you want to fix.
>
> So I think we should remove that stupid "*.lock" rule from the C version 
> (and then obviously from the JGIT one too).
>
> Now, that leaves what we _should_ call the lock-files, and the only sane 
> thing to do is to pick a sequence that is already invalid for other 
> reasons. We could make the lockfile end in "..lock", for example (".." is 
> not legal in names due to the confusion with the "a..b" range notation), 
> or just end or begin with a "." (same issue, except "..." now).
>
> Or just make it end in '~' which is also invalid for similar reasons.

I was tempted to go for the tilde, but then realized that

	.git/config~

is a common thing to have in a repository owned by an Emacs user, and we
do create with O_CREAT, so it is not such a good idea.

'..lck' may be a good name to use here.