CVS is prior-art for Interwoven's patent (#6505212)

26 Feb 2003

This is why the state of software patenting really, really, give me the shits. As it does many other Slashdot readers.


Interwoven's press release regarding their patent states the following 6 claims (of 13 claims). I have quoted each claim as described in their press release, and then shown how CVS can be used to show prior-art over the claim.

(And it only took me half an hour and a little googling to work all this out...)

1 Automatic checkout of a branch into a work area

A system for asset management comprised of multiple workareas, each configured to maintain a virtual copy of content as it would appear when published;

This is easy to do in CVS. You can add an entry into loginfo as described in C.3.5.2 of the CVS manual.

The example in the manual is fairly trivial, but it is easy to hack up a script that can do far more sophisticated things, like having a checkout for each and every branch, etc.

2 Plain-old conflict resolution

A staging area to which content is submitted from multiple work areas and where any conflicts between content can be resolved;

Okay, conflicts occur because of two reasons; 1) someone has checked in a change on your branch, and you need to integrate their changes before you can check in, or 2) you are merging branches.

CVS handles 1) easy enough. You can't check in until you are up-to-date. CVS will not let you check in until you have resolved the conflicts, either. (See 10.2 and 10.3 in the CVS manual.)

As for 2), this actually describes the only real process for merging branches in CVS anyway. You have to checkout one branch into a work area and then update -j the sucker. You end up with a workspace in which to resolve the conflicts; where the conflicts are submitted from multiple work areas (branches). (Sections 5.6 and 5.7 are good to read for this process.)

3 Interwoven has branches

Branches and sub-branches (for different projects or initiatives) that contain individual workareas, staging areas, and editions which allows for massively parallel development on a single platform;

This is just saying that Interwoven has branches to begin with, right? CVS has branches too.

4 Plain old file systems

The use of a hierarchical file system and an object repository for representing and hosting content and its structure;

CVS has a hierarchical filesystem. CVS is a repository for any type of file or object (including "content" such as HTML and graphic images); it can store meta-data about the objects (author, comments, file permissions, dates, labels, and the module database); it stores these object hierarchically; and has query mechanisms for accessing these objects (cvs checkout -D etc.).

Hell, even IIS's use of NTFS qualifies as "the use of a hierarchical file system and an object repository for representing and hosting content and its structure".

5 #include

Virtualization of all content regardless of location as well as Web and application servers -- this allows contributors to make changes "in context" of the entire site;

This just means #include right?

Pretty much every web content display technology already has this.

6 "We put your content in a version control system"

The combined concepts of file history, versioning, comparison, and merging as it relates to content, provide an archive of all individual changes as well as collections of changes so they can be versioned and audited.

Oh my. They took a version control system (something that has file history, versioning, comparison and merging). They put content in this marvellous version control system. I wonder if anyone else had thought of that before.


I don't want to have to do the USPTO's job for them, but we all may have to.

  • Home
  • Blog