The CVS exclude option of rsync can be harmful in some cases.
For example I use rsync to keep my/this website updated. At some point I noticed some strange behavior after the update of several of the WordPress plugins I use. After a bit of investigation I noticed that one plugin (Broken Link Checker) has a directory which is named “core”. This is one of the filenames which are in the exclude list of the CVS exclude feature of rsync. Normally it should only prevent the transfer of core-files, but as rsync does not have a look if this is a file or a directory (it is not supposed to do this), it also prevents the transmission of the directory.
After modifying the rsync options to manually exclude the CVS patterns except for “core”, the site worked correctly again.
It seems this is one of those cases where different development/management cultures show some little incompatibilities.
Since Roman wanted to create his linuxolator branch in perforce, I had to make myself familiar with perforce too, to be able to answer his questions. I learned my first steps in perforce by creating the sound branch (I’m mentoring Ryan together with Ariff). Creating the branch was not hard, but I managed to fail in some way… I used the wrong username part for Ryan’s branch name (“rbeasley” instead of “ryanb”). I think this means I shouldn’t trust my memory and double-check such facts in the future. Since it’s only a namespace issue to not have conflicts when several people want to create branches with the same name (but a different semantic of what has to be done there), I don’t think it matters.
Roman hadn’t as much “luck” than I had. He forgot to add a ‘/’ in an important place which resulted in files like “…_linuxolatoramd64/…” instead of “…_linuxolator/amd64/…” while branching. While ICQ is nice to discuss something in real-time over large distances, you can’t look over the shoulder of someone. Mea culpa (students which are excited and eager to try something… I think I remember how this feels 😉 ). He is resolving this as I write this.
While I see some benefits in the way perforce is working (seems to allow some powerful things we can’t do with CVS), I have to say the performance sucks when creating branches (I did it at home via DSL and a compressed ssh tunnel to the perforce server, not on freefall where it should have been much faster). But I didn’t created a FreeBSD branch with CVS, so maybe CVS sucks more when doing this. 🙂