Subject: Re: [PATCH] Allow branch names that end with ".lock"

From: "Shawn O. Pearce" <[email-masked]>
Date: Thu, 7 May 2009 18:01:10 -0700

Junio C Hamano <[email-masked]> wrote:
> "Shawn O. Pearce" <[email-masked]> writes:
> 
> > Junio C Hamano <[email-masked]> wrote:
> >> A project policy for naming branches could be to use a dot as a word
> >> separator (instead of '-' which is often done by existing projects), and
> >> "fix.vm.lock" could be a very valid name for a branch to address a VM
> >> locking issues.
> >
> > I think we sent the same patch... except...
> >
> >>  git-gui/lib/index.tcl                    |    2 +-
> >
> > Don't do that.  I'll patch git-gui and send you a pull request.
> 
> Why not?  I never commit my "how about this" weatherbaloon patches
> directly ;-)

I know.  I was saying, "don't patch git-gui in the same commit
as git.git".  I would have spun that as two different commits.

> If you found that ours match identically except for that one line, that is
> a very good indication.  I didn't check.

Here's `git diff yours mine`, we were really close:

diff --git a/Documentation/technical/api-lockfile.txt b/Documentation/technical/api-lockfile.txt
index 31e1141..982984f 100644
--- a/Documentation/technical/api-lockfile.txt
+++ b/Documentation/technical/api-lockfile.txt
@@ -4,7 +4,7 @@ lockfile API
 The lockfile API serves two purposes:
 
 * Mutual exclusion.  When we write out a new index file, first
-  we create a new "lock" file `$GIT_DIR/index..lck`, write the new
+  we create a new file `$GIT_DIR/index..lck`, write the new
   contents into it, and rename it to the final destination
   `$GIT_DIR/index`.  We try to create the `$GIT_DIR/index..lck`
   file with O_EXCL so that we can notice and fail when somebody

ACK, I like your version better than mine.

diff --git a/refs.c b/refs.c
index 03aded9..b4ca305 100644
--- a/refs.c
+++ b/refs.c
@@ -742,8 +742,6 @@ int check_ref_format(const char *ref)
 				return CHECK_REF_FORMAT_ERROR;
 			if (level < 2)
 				return CHECK_REF_FORMAT_ONELEVEL;
-			if (has_extension(ref, "..lck"))
-				return CHECK_REF_FORMAT_ERROR;
 			return ret;
 		}
 	}

NAK, I like how I removed this block.  It can't happen anymore,
the no ".." in name earlier should have caught the condition.

-- 
Shawn.