threads / patch / 5186

patchhttp-push: Make WebDAV work with (broken?) default apache2 WebDAV module

Subject: [PATCH] http-push: Make WebDAV work with (broken?) default apache2 WebDAV module

## tl;dr

3 messages between Aug 9, 2006 and Aug 11, 2006. Diffs are folded; open one to read it.

replies: 2people: 3as markdown or json

Rutger Nijlunsing· Aug 9, 2006, 18:54 UTC · lore

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>
---
 http-push.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to http-push.c +1 −1
diff --git a/http-push.c b/http-push.c
index 4021e7d..d45733e 100644
--- a/http-push.c
+++ b/http-push.c
@@ -530,7 +530,7 @@ static void start_put(struct transfer_re
 	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();
-- 
1.4.2.rc2.g7cb1


-- 
Rutger Nijlunsing ---------------------------------- eludias ed dse.nl
never attribute to a conspiracy which can be explained by incompetence
----------------------------------------------------------------------
Junio C Hamano· Aug 9, 2006, 19:33 UTC · re: Rutger Nijlunsing · lore

Re: [PATCH] http-push: Make WebDAV work with (broken?) default apache2 WebDAV module

Rutger Nijlunsing <rutger@nospam.com> writes:
Show 10 quoted lines
> 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>

Good problem and workaround description. Nick, does this look sane to you, or is there a more kosher way to handle this?

Show 25 quoted lines
> ---
>  http-push.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/http-push.c b/http-push.c
> index 4021e7d..d45733e 100644
> --- a/http-push.c
> +++ b/http-push.c
> @@ -530,7 +530,7 @@ static void start_put(struct transfer_re
>  	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();
> -- 
> 1.4.2.rc2.g7cb1
>
>
> -- 
> Rutger Nijlunsing ---------------------------------- eludias ed dse.nl
> never attribute to a conspiracy which can be explained by incompetence
> ----------------------------------------------------------------------
Nick Hengeveld· Aug 11, 2006, 04:58 UTC · re: Junio C Hamano · lore

Re: [PATCH] http-push: Make WebDAV work with (broken?) default apache2 WebDAV module

On Wed, Aug 09, 2006 at 12:33:42PM -0700, Junio C Hamano wrote:
Show 13 quoted lines
> > 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>
> 
> Good problem and workaround description.  Nick, does this look
> sane to you, or is there a more kosher way to handle this?

This looks good to me - while it seems like the problem is in the DAV server it also seems like problematic DAV servers will be less likely to trip up on an underscore in the filename.

-- 
For a successful technology, reality must take precedence over public
relations, for nature cannot be fooled.

This message (including any attachments) contains confidential information intended for a specific individual and purpose, and is protected by law. If you are not the intended recipient, you should delete this message. Any disclosure, copying, or distribution of this message, or the taking of any action based on it, is strictly prohibited.

← back to recent threads