From: Alex Riesen Date: Sat, 08 Sep 2007 22:20:59 GMT Subject: Re: [PATCH] HEAD, ORIG_HEAD and FETCH_HEAD are really special. Message-ID: <20070908222059.GA5035@steel.home> In-Reply-To: <7vabry43cg.fsf@gitster.siamese.dyndns.org> Junio C Hamano, Fri, Sep 07, 2007 22:39:43 +0200: > Pierre Habouzit writes: > > > I'd have added though that maybe update-ref should print a warning for > > the references that do not match the restriction Junio added. This could > > be done using the function Junio proposed un update_ref() in refs.c > > I would even suggest making it into an error, even if we do not > error out on the reading side (being liberal when reading but > more strict when creating, that is). I agree (and suggest failing even on reading), but see below > That confused_ref() needs to be tightened further, by the way. > It is called only when we are considering to tack the user > string immediately below $GIT_DIR/ so the only valid cases are > (1) the string begins with "refs/", If that will be the case git-p4-import.bat (yes, just a script of mine) will break because it has its namespace directly in $GIT_DIR (i.e. .git/p4/*) and stores there backup references. It is just a someones (ok, it is mine) script, but maybe there are others, who expect that plumbing level git-update-ref just do what its told. > or (2) the string is all uppercase (or underscore), especially > without slash. I'd suggest just check for uppercase+underscore _or_ slash. It is plumbing after all.