From: Sean W. <se...@ya...> - 2003-09-14 10:10:37
|
----- Original Message ----- From: "Cameron Shorter" <ca...@sh...> Sent: Sunday, September 14, 2003 1:09 AM > On Saturday 13 Sep 2003 9:53 pm, Sean Wheller wrote: > > If CVS is managing the files and their versions. Why > > add to the path with a > > version number? If a version is required, could it not > > be included in the > > file name. This way regardless of the file location, > > the version number will > > always be known. > > I envisage that there will be multiple GenerRepositories. Each repository > will be independantly administered from each other, putting out their own > releases of guides relevant to their area of expertise. Each repository will > issue releases which reflect updates. Both new and old releases need to be > accessable via the web by other projects. > > So, if I am creating a Developer's Guide for the Linux Documentation Project, > I may reference the Sun Java Coding Standards (maintained by Sun). > > There are 2 types of guides I may want: > 1. A guide that doesn't change over time. I'm developing a product which is > not going to upgrade it's toolset, so I want my Developer's Guide > configuration to always reference Java 1.4 docs. So I reference release 4.0 > of the Sun's GenerRepository. > > 2. A guide that always refers to the latest development practices. So I > reference the head release of Sun's GenerRepository. > > Does this make sense? Ok, I think I get the picture. At the end you see people referencing only the head, hence you want version control in both the path and file level. When a new version is released it is copied to a new repository. The previous version then remains in its final state and is not touched. That way the integrity of my reference to a file in the head of the previous version will be preserved. The head will always remain the head, from a given date when the new version was started. While this is a solution, I think we will have additional overhead and duplication of content between versions. I am not sure that this is needed. Horizontal Thinking. A file is created called blue.xml. The file is modified and a new version exists. We now have two files in CVS, blue_v1.xml and blue_v2.xml A file is created called red.xml. The file is modified and a new version exists. The file is again modified and a new version exists. We now have three new files in CVS, red_v1.xml and red_v2.xml and red_v3.xml Horizontally all files increment a version in this way until the release. If no more changes are made we have a total of 5 files in the CVS for our release. Vertical Thinking. release 1 = blue_v2.xml and red_v3.xml Now lets move ahead a few releases. release 2 = blue_v2.xml and red_v4.xml release 3 = blue_v2.xml and red_v5.xml and yellow_v1.xml release 4 = blue_v2.xml and red_v5.xml and yellow_v2.xml release 5 = blue_v2.xml and red_v5.xml and yellow_v3.xml By the pattern you can see that if we were to create a new repository folder for each version, then the file blue_v2.xml would exist in duplicate 6 times and red_v5.xml 3 times. Subsequent releases would further increase duplication is the files are not incremented a version because of some modification. In a book I need version control not only of the included XML Instances, but also of the book itself. However, I do not need to always have a new or duplicate copy of the files. In the example below " " is used to represent use of a file from the previous release. Book 1 = release 2(blue_v2.xml, red_v4.xml) Book 2 = release 3(" ", red_v5.xml, yellow_v1.xml) Book 3 = release 4(" ", " ", yellow_v2.xml) Book 4 = release 5(" ", " ", yellow_v3.xml) Book 5 = release 6(" ", red_v6.xml, " ") Book 6 = release 7(" ", " ", yellow_v4.xml) All files exist only once in their final release state. A book may use any file from any release. Book 7 = release 8(" ", red_v4.xml, yellow_v5.xml) red_v4.xml was from release 2, but if the author finds the content in red_v4.xml to be better suited, it may be reused in a future book, this case Book 7. Note that each book remains in version control as do all the files. Flexibility is great, content reuse optimised. I don't know enough about CVS at lower levels to say if this is possible, mainly because I always refer to the head. But it is apparent that the head itself is made of files with varying ages and as with Book 7 it may or may not present a problem. To the current author of Book 7 it is not a problem. To a future author it may be a problem as red_v6.xml will not be known. The collaborative environment presents many challenges. Certainly I would like to have the ability to discover all content. Investigate its lineage and select a version that best suits my requirements. Used it unaltered or modify it to a new version. If I modify to create a new version of red_v5.xml, I cannot name the file red_v6.xml it would have to branch at red_v5.1.xml. My version is then free to discovered and used by other authors. The permeations of this theory can spin our heads for a year. So I ask the question. Is CVS the tool for the job? Perhaps we need CVS and an XML Database, maybe just the database with an application layer above it. CMS and KMS? What tools do we recommended and what tools do we use. Sean Wheller __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com |