rsync and CVS exclude

The CVS exclude option of rsync can be harm­ful in some cases.

For exam­ple I use rsync to keep my/this web­site updat­ed. At some point I noticed some strange behav­ior after the update of sev­er­al of the Word­Press plu­g­ins I use. After a bit of inves­ti­ga­tion I noticed that one plu­g­in (Bro­ken Link Check­er) has a direc­to­ry which is named “core”. This is one of the file­names which are in the exclude list of the CVS exclude fea­ture of rsync. Nor­mal­ly it should only pre­vent the trans­fer of core-files, but as rsync does not have a look if this is a file or a direc­to­ry (it is not sup­posed to do this), it also pre­vents the trans­mis­sion of the directory.

After mod­i­fy­ing the rsync options to man­u­al­ly exclude the CVS pat­terns except for “core”, the site worked cor­rect­ly again.

It seems this is one of those cas­es where dif­fer­ent development/management cul­tures show some lit­tle incompatibilities.

SoC2006->my_students->start()

Since Roman want­ed to cre­ate his lin­ux­o­la­tor branch in per­force, I had to make myself famil­iar with per­force too, to be able to answer his ques­tions. I learned my first steps in per­force by cre­at­ing the sound branch (I’m men­tor­ing Ryan togeth­er with Ariff). Cre­at­ing the branch was not hard, but I man­aged to fail in some way… I used the wrong user­name part for Ryan’s branch name (“rbeasley” instead of “ryanb”). I think this means I should­n’t trust my mem­o­ry and double-check such facts in the future. Since it’s only a name­space issue to not have con­flicts when sev­er­al peo­ple want to cre­ate branch­es with the same name (but a dif­fer­ent seman­tic of what has to be done there), I don’t think it matters.

Roman had­n’t as much “luck” than I had. He for­got to add a ‘/’ in an impor­tant place which result­ed in files like “…_linuxolatoramd64/…” instead of “…_linuxolator/amd64/…” while branch­ing. While ICQ is nice to dis­cuss some­thing in real-time over large dis­tances, you can’t look over the shoul­der of some­one. Mea cul­pa (stu­dents which are excit­ed and eager to try some­thing… I think I remem­ber how this feels 😉 ). He is resolv­ing this as I write this.

While I see some ben­e­fits in the way per­force is work­ing (seems to allow some pow­er­ful things we can’t do with CVS), I have to say the per­for­mance sucks when cre­at­ing branch­es (I did it at home via DSL and a com­pressed ssh tun­nel to the per­force serv­er, not on freefall where it should have been much faster). But I did­n’t cre­at­ed a FreeB­SD branch with CVS, so maybe CVS sucks more when doing this. 🙂