From: Steve W. <sw...@wc...> - 2000-07-15 16:01:40
|
A while back, I mentioned that I had an epiphany of sorts while I was on jury duty... after I explain it, you won't think it's so remarkable but for me it was a combination of the "Aha!" experience, and "Doh! Why didn't I see that before?" I was sitting in the waiting room of the Supreme Court Building here in Manhattan, which is filled with lovely WPA paintings of the city. I was reading "Practical Internet Groupware" by Jon Udell, which is about using SMTP, HTTP and NNTP in combination, across the intranet, extranet and internet spaces. He goes on in length about using private NNTP servers and posting in HTML, since Netscape Communicator and IE can read/write HTML in newsgroups and mail (a powerful combination). I stopped and thought about a probem we had with the Wikis at the New York Times. My project leader Noreen was really enthusiastic about using the Wiki for project documentation and she was dilligent in editing, adding and updating. But as more people used the Wiki it got harder to keep track of pages, what was out of date, who wrote what, and so on. In particular we needed a form of version control. And I thought, if Noreen edits a page and she feels it's complete and up to date, she could then post it to a private (intranet) news server and this would be a cheap form of version control. Once it's on the news server only she (or an admin) could "cancel" the post. And that's when it struck me that if she posted the page to a newsgroup, that this was the same thing as doing a "commit" in CVS. And that's when I had my moment of "Aha! | Doh!" A while back, we (this list) started discussing archive issues and version control, and I put off this post for a long time. But what I wanted to say is: with source code and CVS, you make a lot of little edits, test it, and then commit your changes. With a Wiki, you make lots of little edits, test it (in the browser) and ... well, you're done. But we could add a "commit" feature and that would put a new version in the archive.. This way, I could make an edit to FrontPage, commit it, edit it again a few months later and commit that, and I have two versions now. (Not possible under the current arrangement, unless I came from two different URL's.) How many versions do we want to make available to the user? Apparently, all of them: "Though malicious damage to ?CoWeb pages was infrequent, accidental damage was more common. A frequent cause was users overwriting one another's changes during heated contributions to a single page. "From the very beginning, ?CoWeb stored all versions of a page. Early users then made administrator requests to get pages restored. Later versions of PWS ?CoWeb allowed users to access the last three versions of a page on-line, but even that proved insufficient. The latest version of ?CoWeb allows access to all previous versions of the page." (from the forthcoming book "The Wiki Way," Addison-Wesley Press: http://leuf.net/cgi/wikiway?SwikiGoesEdu. CoWeb is the Squeak Wiki, formerly Swiki, at Georgia Tech.) This is my vision for version control for PhpWiki: the ability to commit changes; the ability to retrieve any previous version. Not too difficult. At this point I wanted to apologize to Jeff for what I think might have been a miscommunication. When we had this thread I posed a few questions to Jeff about doing diffs between versions: was storage an issue? Is doing a diff between version 2 and version 99 hard/expensive? Jeff, I think I might have scared you or intimidated you out of doing what you were working on... storing the diffs of pages. If I did I'm sorry. I was asking questions so we could discuss the possibilities, not to question your objectives. I'd like to revisit that discussion again. sw ...............................ooo0000ooo................................. Hear FM quality freeform radio through the Internet: http://wcsb.org/ home page: www.wcsb.org/~swain |