- From: <Edgar@EdgarSchwarz.de>
- Date: Thu, 4 Jan 2001 08:31:39 -0500
- To: ietf-dav-versioning@w3.org
- Cc: Edgar@EdgarSchwarz.de
Hi Geoff and Greg,
thanks for your detailed replies. BTW, my current printout was 10.11.
I just downloaded 1.13 now.
> workspace I think it makes sense to allow it. Just some months ago
> I had the pathological case that I needed two different versions of
> a file in a software release.
>
> I believe that the term "pathological case" is key here. There are
> cases where exposing two versions in a release does arise, but in
> practice, these cases tend to be pathological, and the value of
> supporting this is outweighed by the cost of ambiguous merging behavior.
>
> For those (rare) cases when you need to do this, Greg's suggestion
> should be fine (where you just initialize a new version history
> with the version that you need to expose in the same workspace).
Will be OK in practice but I still don't love it. Because it wouldn't be a
problem in my model.
> > > My ideal solution would be to allow collection versions, and
> > > thusly working collections, to contain version resources
> > > *instead* of version histories.
>
> Sorry I'm not sure I understand. What's a "version resource" ? A
> versioned resource, a version of a resource or a versionable
> resource ? Just to name some guesses.
>
> A version resource is a resource that contains a particular state of a
> version-controlled resource. It is one of the three kinds of
> resources introduced by core versioning (version-controlled resources,
> version resources, and version history resources).
My problem was that in the draft 10.11 there is a definition for "version" but
not for "version resource". Also Greg (And you in Chapter 11) was talking
about "collection versions" so I assumed that the equivalent term would be
"resource version" and wondered about "version resource".
In his reply Greg told me the following
> When we say "resource", we are always referring to collections AND member
> resources.
> Resource := Collection Resource | Member Resource
Perhaps that is in RFC 2518 ? But I didn't find it at the start of DELTA-V.
Perhaps this should be made clear (even if 2518 and 2616 are mentioned).
Because the obvious interpretation of a resource I think is of a
"member resource" (Aka file :-)
> Somebody came and told me: I want the OSI-Stack of MS14 4.0 for our
> new project ! So I had a look: MS14 4.0 is version 2.61 (just an
> example number) which is composed of a couple of thousand of C,
> include, assembler and other files.
> In deltav terminology, MS14-4.0 is a "baseline" (which is a special
> kind of "version" that selects other versions).
> And it contains OSI-Stack 5.55
> which in deltav would be a "subbaseline".
OK, so I suppose I can do what I want. "subbaselines" didn't exist yet the last
time I read the complete draft. A while ago I admit :-)
But perhaps I can do this also with version controlled collection.
So I still have something to read for the next days :-)
> A deltav workspace resource is a set of version-controlled (and
> non-version-controlled) resources. Since you show "PUT" working
> against a relativePath, it looks like you are supporting server
> workspaces (not client workspaces), so your workspace would
> not have workingResource's or workingCollection's (but rather
> would have checked-out version-controlled resources and checked-out
> version-controlled collections).
There is a definition of "working resource" in 4.1 but I would prefer it
to be in 1.3 (Terms) to get a better overview what's going on.
> and not a version argument. If you want to change the state
> of the workspace member (to correspond to some other version)
> before checking it out, you must first issue an UPDATE request,
> and then the checkout, e.g.:
> WS.update(relativePath, VersionHistory, versionName)
> WS.checkout(relativePath).
OK, sounds fine.
Another comment to 10.13.
5 is about Server Workspace Option. 5.4.1 gives an example creating a
workspace.
But the examples for CHECKOUT and CHECKIN in look very normal and show
no reference to a workspace. Wouldn't it be better to include the
workspace used in 5.4.1 in them somehow ?
I see that there are some important additions to the draft
since I looked at it closely a couple of months ago (The difference between
client and server side workspaces, subbaselines, ...)
All in all I think I will be able to map my model to a DAV-Server supporting
server workspaces. The only feeling that I have is that it's too complex
and introduces too much unnecessary terms.
But because a lot of stuff is optional now this shouldn't be too big a
problem for implementors.
Neverthess my question is whether it would be possible/useful to give a short
formal definition of DELTA-V concepts somewhere as an EBNF grammer
like I'm trying with my stuff. Please don't look at the semantics but just
the syntax. A small grammer can tell you a lot sometimes where you need a lot
of text to describe it in prose.
I changed it a little bit after reading Geoff's comments, thanks.
The basic idea is that a Unit (system, module, component, .... whatever you want
to call it) consists of items and sub units which are mapped to (member) resources
and collection (resources).
VersionHistory = collectionVersionHistory | resourceVersionHistory
VersionSelector = VersionHistory versionName | versionURL
CollectionVersion = collectionVersionHistory versionName wsRelativePath
{ ResourceVersion | CollectionVersion }
ResourceVersion = resourceVersionHistory versionName wsRelativePath
WorkSpace =
{ ResourceVersion | workingResource | CollectionVersion | workingCollection }
Some operations for a server workspace:
WS.baseline-control(wsRelativePath, VersionSelector)
WS.checkin(wsRelativePath)
WS.update(wsRelativePath, VersionSelector)
WS.checkout(wsRelativePath)
WS.put(wsRelativePath)
WS.get(wsRelativePath)
Cheers, Edgar
--
edgar@edgarschwarz.de http://www.edgarschwarz.de
* DOSenfreie Zone. Running Native Oberon. *
Make it as simple as possible, but not simpler. Albert Einstein
Received on Thursday, 4 January 2001 08:31:40 UTC