This is the first public inkling of phpCVS (a very 'working' name). So, before I get asked, I'll explain what it is.
CVS stands for Concurrent Version System, and is simply a method where mutliple users can change the same file at the same time. A master copy of a set of files (often code files, but they don't HAVE to be) is kept on the server. A developer can check out these files, work on them, and check them back in. The master copy is updated to reflect the changes, but also the old files are kept in a very efficient form (basically as a Diff file). The effect of this is twofold. One, you can revert back to ANY prior version of the file set at any time, and two, any number of users can work on the exact same files at exactly the same time. When commited, a file is merged with the master copy, so no one ever loses their work. The only time a problem happens is when two users, working on the same version of the same file at the same time happen to change a the same line. Then there is a conflict, and the conflict is noted and returned to the *second* user for resolution (the second, because when the first user commits, the master copy will have no idea there is a conflict yet). It's a bit technical, but it all works, trust me
The php prefix just means it's being written in php. The point behind phpCVS is that anyone with a website can install it and manage a project with multiple developers. There are such services available at present (SourceForge being the most widely used) but ALL of them have strings attached (SF, for instance, REQUIRES your code be open source). phpCVS willl have no such requirement, although it will, of course, be an option.
phpCVS is basically in exploratory phase. I make absolutely no promise at this point that it will go anywhereI've written a diff engine (a mimic of Unix Diff command that outputs the exact steps required to change one string into another, which is the heart of any CVS system) and an output engine to display the results. The Diff runs bytewise (rather than line-wise) so it will handle binary files as equally well as it does text files (a traditional limitation of CVS systems). I'm working on the input phase now (so you can actually upload FILES to the server).
So that's what this section is about. It may go nowhere. I'm not as good with php as I am with C++, and this project may be beyond me. But I've never let that stop me before
Ron



Reply With Quote




