Jim Blandy <jimb@zwingli.cygnus.com> writes:
> Hmm. I'm not asking you guys to unmake the decision, but I think it's
> worth pointing out that, while the HTTP server has complete freedom in
> interpreting an http URL's path, and thus can assign it whatever
> semantics it likes, a file URL is actually defined to refer to a
> pre-existing structure --- a native filesystem. So it's not as clean
> to split a `file:' path up that way.
>
> And even in the case of an http URL, the user will notice that, say,
> http://www.lyra.org/stuff/repo/gdb/symtab.c does support versioning
> operations (because it's in a repository) while
> http://www.lyra.org/stuff doesn't. I think users will always end up
> asking, "So, where does the repository start?", or thinking in those
> terms. So I'm not sure why it's important that the user have "no need
> to know."
I've been quite ambivalent, or more, about the decision for a while
now (as Greg Stein knows), and would like us to discuss it on this
list. Greg, Jim's point here is exactly the one I was making over the
phone: that users are conscious -- or want to be, anyway -- of where
the actual repository starts.
If we keep track of this separation, do we lose any information or
functionality? No. You can *always* reconstruct the full URL if you
have the two pieces of information.
If we don't keep track of it, do we lose anything? Yes, we lose the
ability to tell the client the full path of a file in the versioned
tree, because we don't know where is the root of the versioned tree.
Another question: if the client kept track of this information, would
you be able to tell that we were doing it? Would the networking code
ever even know that a URL had been constructed from two distinct
parts? :-)
I know that not making the distinction is important to you; what I
don't understand is why...
-K
> But see below.
>
> > > Here's a weird situation: suppose I specify a checkout of
> > >
> > > file:/usr/local/svn/foo/bar/baz/bop
> > >
> > > And suppose that an svn repository (a bunch of berkeley db files)
> > > lives in /usr/local/svn/. But ALSO suppose that another svn repository
> > > lives in /usr/local/foo/bar/ ! Which repository should be used?
> >
> > 1) Who says we should be supporting subdirectories from an SVN repository?
> > Why isn't that directory considered "owned" by SVN and offlimits to
> > monkeying around?
>
> Absolutely. The filesystem owns that directory, and will put whatever
> it pleases there, under whatever name it wants. You can't put your
> own stuff in there.
Received on Sat Oct 21 14:36:21 2006