Make sure leading directories exist when pushing refs.
authorJunio C Hamano <junkio@cox.net>
Wed, 3 Aug 2005 01:27:57 +0000 (18:27 -0700)
committerJunio C Hamano <junkio@cox.net>
Wed, 3 Aug 2005 05:52:58 +0000 (22:52 -0700)
It does not matter if the only refs you push are directly
underneath heads and tags, but we forgot to make sure we have
leading directories so pushing tags/v0.99/1 would not have
worked.

Signed-off-by: Junio C Hamano <junkio@cox.net>
receive-pack.c

index 8d6faaa..9026f1b 100644 (file)
@@ -106,6 +106,8 @@ static int update(const char *name,
                return error("unpack should have generated %s, "
                             "but I can't find it!", new_hex);
 
+       safe_create_leading_directories(lock_name);
+
        newfd = open(lock_name, O_CREAT | O_EXCL | O_WRONLY, 0666);
        if (newfd < 0)
                return error("unable to create %s (%s)",