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

Re: svn log shows incorrect results (due to UUIDs..)

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Fri, 04 Jul 2008 22:05:44 +0200

James wrote:
> Let's call this either a difference of opinion, or a bug...
>
[snip]
> I get it. And I've seen the various posts where users are asked "are
> your UUIDs different?" when the symptoms are reported. And using UUID
> as the hash key (or however it actually works) is, in theory, more
> reliable than the URL (which can have different cannonical forms).
> Except I think using the URL is better. (or make a "use UUID for
> caching" option that's turned off by default)
>
> Because there's a lot of svn administrators out there (including
> myself) that aren't that smart. Using UUIDs as the unique hash, the
> worst case scenario is much frustration and possibly total failure/
> rejection of TortoiseSVN (or even SVN). Using URLs, the worst case
> scenario is a slightly larger cache file and maybe a bit more network
> traffic.
>
> The only real benifit of UUIDs that I can see is that if the same user
> accesses the same repository using different URL forms, things will be
> slightly faster. Perhaps there are other benifits, I don't know, I'm
> just a user :)

Maybe I should explain a little bit why the cache uses the repository uuids:

Actually, the log cache uses *both* repository UUIDs and the URLs to
distinguish different repositories. If you search the mailing list for
the past few months, you will discover that we had big problems due to
the fact that SvnBridge (http://www.codeplex.com/SvnBridge) created
identical URLs to access different repositories. That's why there's now
a checkbox in the settings dialog under the log cache page "allow
ambiguous urls" which allows dealing with such uncommon situations.
Also, the Microsoft guys who are working on SvnBridge were really fast
in changing SvnBridge so that it now uses different URLs for different
repositories.

Now, imagine you have set up multiple repositories using the
SVNParentPath directive as explained in our docs:
http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-serversetup.html#tsvn-serversetup-apache-parent-path
then you can have repositories accessible with urls like these:

http://server/svn/project1
http://server/svn/project2
http://server/svn/project3

Now, if you look at these urls, a human can easily assume that project1,
project2 and project3 are three different repositories. But only if you
*know* that there's an SVNParentPath set up for /svn. If you don't know
that (and you can only know that if you've either set up the server
yourself or if the one who set it up told you so), then it could also be
that the repository is in fact located under http://server/svn, and
project1, project2, project3 are simply folders inside the very same
repository.

Without using the UUID, there is simply no way to know whether two URLs
point to the same repository or not.

And don't forget: they're called UUIDs for a reason (UUID = universal
UNIQUE identifier), they have to be unique. Otherwise they would be
called simply IDs, not UUIDs.

So, I'm sorry you had problems because of this. But we could either drop
the cache completely or use UUIDs and you have to live with that.
And don't forget: you can disable the log cache in the settings dialog
if you couldn't fix your repositories to have different UUIDs.

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.net

Received on 2008-07-04 22:06:15 CEST

This is an archived mail posted to the TortoiseSVN Users mailing list.