From: Jim Whitehead <ejw@ics.uci.edu> To: Versioning <ietf-dav-versioning@w3.org> Date: Thu, 1 Apr 1999 16:57:46 -0800 Message-ID: <003401be7ca3$d2543500$d115c380@ics.uci.edu> Subject: Re: Version issues -----Original Message----- From: Chris Kaler [mailto:ckaler@microsoft.com] Sent: Friday, February 19, 1999 9:58 AM To: 'jamsden@us.ibm.com' Cc: 'gclemm@atria.com'; 'ejw@ics.uci.edu'; 'dgd@cs.bu.edu'; 'Cragun.Bruce@gw.novell.com'; 'bradley_sergeant@intersolv.com' Subject: RE: Version issues Sorry about the formatting -- my mail program at home seems to do that. I cut the long legacy of mail exchanges :-) Some comments below... -----Original Message----- From: jamsden@us.ibm.com [mailto:jamsden@us.ibm.com] Sent: Friday, February 19, 1999 9:01 AM To: Chris Kaler Subject: RE: Version issues Chris, As you can see, the formatting got a little messed up. A couple of points that must be made clear: 1. Everyone sharing the same view does not work on the Web. Recall this is distributed authoring. It must provide the openness, ease of use, and flexibility that is characteristic of the web, not localized development shops. [CK] OK... I'm not sure I understand your point here. Although, this is WebDAV, "web distributed authoring..." 2. First, WebDAV will be a new paradigm for clients. We're not trying to reproduce what everyone already has, we're trying to develop a standard protocol for distributed authoring. This will require compromises and hopefully minor paradigm shifts in order to interoperate with existing systems. However, existing systems and paradigms should not arbitrarily constrain WebDAV or we limit our ability to progress. Second, workspaces in level 1 do not require clients who don't want to use them to do anything. If all you ever want is checkedout and latest, and you want all users to share the same view, put checkedout and latest in the default workspace. There's nothing else that needs to be done. Workspaces don't prevent your simple semantics, they just provide flexibility for more scaleable semantics in a simple way. [CK] My point is that today we have people doing what we are trying to standardize. The products work and scale just fine. Adding in complexity will slow adoption rates. My real issue here is that if I look at products today that I would consider "level 1", the workspace notion, as I understand it, doesn't meet all of their needs, and adds complexity with no perceived value. So why would they want to use it. I'm taking an extreme position here to illustrate my point, clearly I understand the benefits of DAV and standard protocols, ... One example is that I need to be able to checkout any revision, not just the tip and I should have to use workspaces to do that. 3. Using workspaces does not mean you can't access a particular revision with a label. This is in both the goals and the model. Geoff didn't want access by labels, but I have convinced him that this is necessary. For example, say your workspace picks revision R3. You might want to take a quick look at R2 or run a diff program against both. The model specifies that it is possible to specify a URL and workspace, a URL and label, or simply a URL to access a versioned resource. URL+workspace gives the revision selected by the revision selection rule of the workspace. URL+label overrides the workspace and gives the labeled revision. URL alone is resolved in the context of the default workspace. I think this covers all you cases below. [CK] What about URL + revision-id? As well, it is more than just GET. How about PUT? How about CHECKOUT? I think this is where I am getting hung up. The goals talk about labels and get operations and then use workspaces and activities for parallel and non-tip checkouts. What this means is that a simple level 1 client/server could use a default workspace with checkedout, mainline, and latest in the revision selection rule. In this case, "mainline" is effectively the single activity that all changes are made in, no parallel development. Then users could follow the paradigm you suggest by getting anything they've checked out, or the latest revision if they only specify a URL. The activity has no effect in this case because there is only one. So latest is always latest in the mainline activity. Then if a user wants to see some other revision, he can use the URL and a label. If an administrator wants to change the revision all users see by default, he can change the revision selection rule in the default workspace. The clients never need to know this happened. They'll just start seeing the corrected revisions. Finally, if a client does want to see their own view of the revisions, they can create their own workspace, set the revision selection rule as they wish, and then not be effected by other users. [CK] This is great, but I still have a couple problems with it. It doesn't support parallel development for level 1 clients, and updating the RSR feels to complex. For the latter, maybe I'm just stuck at the protocol. You are saying "change the RSR" and I'm saying, "I'd like a method to help me change the RSR". So, I think we are saying the same thing on that point. I think this provides your semantics, is simple, defines level 1 semantics in terms of level 2 constructs, provides saleability where needed but simplicity where it isn't, does not introduce different mechanisms for defaulting in level 1 and 2, and provides client flexibility. [CK] I'm right there with you, if we can have parallel checkouts and non-tip checkouts for level 1 clients. Note that level 1 servers are not required to support any activity including the default mainline activity. They only need to behave as if such an activity did exist. For a single activity, this doesn't mean very much, its just a way of specifying semantics. [CK] Agreed.