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

absolute paths (was: Re: ancestor path / revision)

From: Greg Stein <gstein_at_lyra.org>
Date: 2000-12-20 06:02:02 CET

On Tue, Dec 19, 2000 at 11:06:30AM -0600, Ben Collins-Sussman wrote:
>...
> As Karl said before, the concept of revision and ancestor-path are
> inseparable. They are a single concept that designates a location in
> the repository's filesystem. If I say: "glub/foo.c is at revision 7",
> this is a meaningless statement. Why? Because I have no idea where
> this file exists in the repository. The "ancestor" is the *absolute*
> location. My "glub/foo.c" might actually be
> "/products/glorb/mainline/glub/fooc" in repository, for all I know.

Agreed, but you should think in terms of URLs rather than "absolute paths".
Absolute with respect to what? That's an oxymoron, of course... absolute
means it isn't relative. But the point here is that "/products/..." is NOT
absolute. "http://www.lyra.org/products/glorb/..." *is* absolute.

> So it's critical that the working copy know the absolute locations of
> every resource it manages. During a commit, it needs to say *exacly*
> which resource is being changes. And during a pre-update "report", it
> needs to say exactly which resources it has. Any time the working
> copy ever speaks to the repository, it must speak in absolute paths
> and revision numbers.

During a commit and a report: yes. And when we update, we need to perform
changes against an expected revision (but that is for the other thread).

As long as I can reconstruct the proper URL during a commit, then no
problem. It appears that I can do this by taking the repository_URL provided
to RA->open() and appending the appropriate NAME values during the editor
walk.

> Thus when receiving a first-time checkout, this info needs to be given
> to the working copy. The working copy can't function without it. Any
> other system implies that the repository needs to keep track of every
> working copy in existence, which is *not* our model. :)

The WC simply keeps the URLs. I'm not saying it shouldn't.

The editor passed into RA->do_checkout needs to hold the base URL and then
build the rest of the URLs from the names passed during the editor calls.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/
Received on Sat Oct 21 14:36:17 2006

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