From: Junio C Hamano Date: Fri, 08 May 2009 00:32:51 GMT Subject: Re: [JGIT PATCH 2/2] Make Repository.isValidRefName compatible with Git 1.6.3 Message-ID: <7vprekbfik.fsf@alter.siamese.dyndns.org> In-Reply-To: Linus Torvalds 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.