[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] Fix a regression from 1.4 in trunk and branch

From: Augie Fackler <durin42_at_gmail.com>
Date: Wed, 30 Jan 2008 14:53:19 -0600

On Jan 30, 2008, at 2:41 PM, C. Michael Pilato wrote:

> Of interest (to me, at least) is how we managed to get ahold of the
> non-canonicalized path that we currently write to the entries file.
> I mean, the first thing our command-line client does with the paths
> provided to subcommands is canonicalize them, I thought. What gives?

The path is the computed repository root - I haven't figured out in
the code where that happens yet, but it looks to my eye like the
repository root is being computed with the hostname and the path
separate, so that when the path is just / it isn't stored in a
canonical form, but if it was at /foo/ it would get stored as /foo

I was seeing the bug when I was checking out http://svn.perian.org/
trunk, which isn't the repo root, so svn must be computing the repo
root of http://svn.perian.org/ on its own somewhere...

>
>
>
> Augie Fackler wrote:
>> I have a simple one-line patch that fixes the issue for me. It
>> appears the problem occurred when the repo root was also the server
>> root the repo root was declared in entries to be "http://svn.example.com/
>> " but should have been "http://svn.example.com" according to
>> svn_path_canonicalize(). I just tested this against svn.perian.org
>> and the checkout worked as expected from there.
>> Peace,
>> Augie
>> [[[
>> Fix a regression from 1.4 where corrupt WC entries would be
>> generated if the
>> server root and the repository root were the same.
>> * subversion/libsvn_wc/entries.c
>> (write_entry): Call svn_path_canonicalize() on the repository root
>> path before
>> writing to entries.
>> Patch by: Augie Fackler <durin42_at_gmail.com>
>> ]]]
>> Index: subversion/libsvn_wc/entries.c
>> ===================================================================
>> --- subversion/libsvn_wc/entries.c (revision 29086)
>> +++ subversion/libsvn_wc/entries.c (working copy)
>> @@ -1538,9 +1539,9 @@
>> || (this_dir->repos == NULL
>> || (entry->repos
>> && strcmp(this_dir->repos, entry->repos) != 0))))
>> - valuestr = entry->repos;
>> + valuestr = svn_path_canonicalize(entry->repos, pool);
>> else
>> valuestr = NULL;
>> write_str(buf, valuestr, pool);
>> /* Schedule. */
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
>> For additional commands, e-mail: dev-help_at_subversion.tigris.org
>
>
> --
> C. Michael Pilato <cmpilato_at_collab.net>
> CollabNet <> www.collab.net <> Distributed Development On
> Demand
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-01-30 21:53:34 CET

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.