Message-ID: <01BE9B1B.5FDCA2F0.dbarrell@opentext.com> From: Dylan Barrell <dbarrell@opentext.com> To: "'Sankar Virdhagriswaran'" <sv@hunchuen.crystaliz.com>, Cc: "Falkenhainer, Brian" <Brian.Falkenhainer@usa.xerox.com>, Date: Mon, 10 May 1999 00:27:34 +0200 Subject: RE: Version issues > > > can work in the context of DAV. First, there is the question of 'linked > > > object consistency management'. > > > > Is totally orthogonal to what level of versioning (even none) is supported > > by the server. > > > > Not in the context of parallel development or in the context of > embedded/linked resources. If I edit an HTML page as part of a set of pages > I am working on and you edit one of the pages linked by that HTML page as > part of another set of pages, what should happen when I submit my changes > and you submit your changes? I am *not* talking about *link management* that > is used to detect dead links. I am talking about maintaing consistency. One > (IMHO, horrible) solution is to lock all the pages linked to a page when I > check out the source of the links. In a pathalogical case, this will > essentially lock the Web site out such that only I can work on it. I see the problem - I haven't seen any proposed solution to it in the current spec. Should this be client or server side functionality and should it even be exposed in the protocol? I would argue that it doesn't matter where you put it and it should therefore not be explicity included in the protocol. > > In addition, given that HTML pages embed and link include files, code > segments, style sheets, images, objects, etc., maintained in separate files, > I don't see how the simple versioning scenario can work except to lock all > the embedded/linked files such that they don't evolve while I am editing an > HTML page. IMHO, this will essentially ground site development to a halt in > any web site where more than 3 authors are working on that web site. What about XML structures? Here you could theoretically lock entire sub-structures or a single sentence! Why should the protocol care how the server solves this problem? I check-out a resource, the server figures-out what it has to lock in order to ensure that any changes which are subsequently made are consistent and decides what to inform me about if it identifies a conflict. We simply have to put a protocol and structures in place which allow the server and client to communicate about these types of issues. > > > Can you give an explicit example? I cannot imagine why not! > > > > See above. Does this make sense to you? > > > We must be careful not to argue on terms which haven't been properly > > defined. Before I get into this argument about "simple versioning" and > > "proper configuration management", I would like to understand what we are > > actually discussing. > > > > Fair enough. Simple versioning to me implies a system like SCCS (from a user > interaction model). When I want to evolve a file, I check it out. The system > locks the file such that nobody else can edit it at the same time. When I > check-in my changes, a new version (revision ?) is created. Simple versioning in my mind also excludes multiple trees and parallel development. > > Configuration management allows me to identify a group of files (resources > in the HTTP context) as being a consistent unit. I think of each HTML page > (i.e., the most popular HTTP resource) as a configuration for the reasons > given above (embedding and linking, and the need for parallel development). In my mind simple configurations do not include parallel development. > > > This is totally orthogonal. A variant is simply a translation of a > revision > > to some other format (be it language, document format or character set > > encoding etc. etc.). If you view the resources as a tree with the > > "variantable" (whew!!!) nodes as leaves which can sprout at various points > > on the stem, then variants can be viewed as blossoms which sprout from the > > base of a leaf. Some leaves have no blossoms, some have multiple. Variants > > are never versioned. The base variant is versioned (master). > > > > But, from an authoring perspective how will the user scenario work. > Typically, (at least in the US of A) while some body is editing a english > page, some body else is editing a french variant of the same page. > Typically, the person editing the english page coordinates their work with > the person editing the french page. Unless these two pages are considered to > be part of a set whose consistency has to be maintained (i.e., a > configuration), the system cannot help resolve potential conflicts that > might arise when one of the authors looks (i.e., reads) the page being > edited by the other author in order to edit their page (and vise versa). No problem - one of the two is still the master. It does not seem to make sense (at least in my experience) for two "authors" to have to perform the same "creative" effort of defining what each chapter, paragraph and section is going to communicate. The content is authored in one language and then simply translated into the other languages. For each version of the master there may be a translation and this translation may even be incomplete (it represents the work in progress at that particular point in time). At some point the master version is released and the translators working on the other variants will continue to update the most recent version of the variant until complete and then mark it "published". The translations changes do not necessarily need to be "versioned" in the usual sense of the word as their origin is always the master which is versioned. > This in my mind results in a requirement for configurations. And, read-write > based conflicts - which I have been pushing for without much success. Even > if we don't do read-write conflicts, at least configurations help me deal > with multi-lingual authroing situations. Yes but configurations are indpependent of variants. Either a configuration contains "the English variants of the user documentation for product X.Y" or they contain "all language variants for the quick start manual for product X.Y" or possibly "all language variants of all the documentation for product X.Y". Depending on how you view configurations, these will either be created once all the items are complete (for example when used for production of box contents) or they will be created at the beginning of the development/authoring process and be "frozen" once all items are complete. In the latter case if the master is English and the variant French, then the English content will be versioned and "snapshots" of the French translation will be created intermittently along the way. In the former case it doesn't matter. > Maybe there are simpler solutions, > but given the fact that we are dealing with embedded and linked resources > and given that some of these resources have variants that are edited by > multiple people in parallel, I really can't see how simple versioning will > work. My prediction is that with tools that support simple versioning (i.e., > level 1), the authoring organization will build procedures to implement > 'configuration management' suffering through human imposed errors or > serializing the development process losing productivity. But, hey, that is > the market choice!! In my opinion its all a matter of interpretation of the meaning of the variant - if it is a true variant and not a related resource, then it is simply a translation.