Code

http-push: Make WebDAV work with (broken?) default apache2 WebDAV module
authorRutger Nijlunsing <rutger@nospam.com>
Wed, 9 Aug 2006 18:54:23 +0000 (20:54 +0200)
committerJunio C Hamano <junkio@cox.net>
Thu, 10 Aug 2006 06:40:40 +0000 (23:40 -0700)
WebDAV on Debian unstable cannot handle renames on WebDAV from
file.ext to newfile (without ext) when newfile* already
exists. Normally, git creates a file like 'objects/xx/sha1.token',
which is renamed to 'objects/xx/sha1' when transferred completely.

Just use '_' instead of '.' so WebDAV doesn't see it as an extension
change.

Signed-off-by: Rutger Nijlunsing <git@tux.tmfweb.nl>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
http-push.c

index 4021e7d9274b713a7b5c48d66f9ddf21ddc07094..d45733ef64ecb8c153a0f62cfb193eed332402e6 100644 (file)
@@ -530,7 +530,7 @@ static void start_put(struct transfer_request *request)
        request->dest = xmalloc(strlen(request->url) + 14);
        sprintf(request->dest, "Destination: %s", request->url);
        posn += 38;
-       *(posn++) = '.';
+       *(posn++) = '_';
        strcpy(posn, request->lock->token);
 
        slot = get_active_slot();