On Mon, Dec 18, 2000 at 12:24:48AM -0500, Geoffrey M. Clemm wrote:
> Hi Greg,
> I've read the Subversion design document (and the disclaimer that it
> is not current). The "mapping to WebDAV" document came up blank for
> me though when I tried to open it last week (the one in .../notes).
> Should I be able to see something there?
Hmm. This should go to firstname.lastname@example.org because I don't really know
the web server setup (where stuff is; I don't have the requisite access; etc)
You can view the doc at:
> The reason I ask is that I believe (based on the design document and
> some comments you have made) that the "baseline" protocol would be a
> good fit for Subversion's notion of "a version of the whole
I took a quick look at baselines the other day, and yes: they might apply
somewhat. At least from the standpoint of fetching a baseline. Operating
against one is a bit more suspect... (see below)
For the moment, I'm going to be ignoring baselines. I suspect they will be
added in a future version of SVN, when we round out the DeltaV support (SVN
1.0's DAV support will probably be pretty tuned to the minimum that the SVN
system requires; future revs will increase interop). I'm also a bit unclear
with the spec in terms of the new resource types: baselines, baseline
selectors, baseline histories, and baseline-controlled collections. That is
a fair bit extra :-)
> We would have to allow you to "checkout" against a
> working baseline, and then you'd get your "atomic checkin" when you
> checked in the working baseline (which creates a "new version" of the
> entire repository). You'd still have an "activity" for each baseline,
> that represents the "change-set" of files modified to create that new
This would certainly be an alternative. But I can also avoid baselines and
just check in an activity and be done with it :-).
[ the flip side of the coin is that adding baseline support could be nice
for other clients who want to use baselines ]
> To verify this, I had a few questions related to:
> - how a client initially selects a "version" to work on
The client could have a whole mix of versions. One subtree could be v8,
while another is v12. It is acceptable (and relatively common/normal) for a
person to update a subtree to the latest, but not worry about the rest.
This means that the client doesn't actually reflect any particular version
(baseline) on the server. Thus, they cannot check in against a single
That said: when a client has changes to commit, they must commit those
against the latest version. If the client doesn't have the latest version,
then they must update (and merge) first. *Then* the client can commit. The
result? The affected files all come from the latest baseline.
> - how a client downloads a tree of resources from that "version"
They run a command line such as:
$ svn checkout http://www.lyra.org/repos/my-project
[ checkout meaning "get"; not a DeltaV "checkout" ]
Periodically, they will do:
$ svn update
This will update the files in the current directory from its corresponding
location on the server.
> - is there a "default version" and how does a cient specify it
The default is the latest. However, we also allow the client to fetch
specific versions, fetch by date, fetch by label, etc. They could end up
with a real mess if they so chose :-)
> Would you prefer these questions:
> - by email just to you
> - by email to the mailing list
Emailing the list is actually preferable because people will see my answers.
That will help to educate other SVN developers/users on how DAV is used
[ I've taken the liberty to CC the list; I hope/presume that was okay to do ]
Of course, you can certainly email me, too, and I'll be happy to answer. I'd
just like a record in the archive, and for sharing the info [ never know
when I'll get hit by a bus :-) ]
Greg Stein, http://www.lyra.org/
Received on Sat Oct 21 14:36:17 2006