July 20th, 2004

amused, happy
  • mart

Fotobilder CVS on Win32

This probably doesn't concern anyone at all right now, but I thought I'd mention it anyway so I don't forget to later.

Under Win32, the standard filesystems are case-insensitive, as I'm sure most people reading this already know. Both LiveJournal and FotoBilder keep multicvs.conf and the checked-out CVS repositories in a directory called “cvs”, which makes sense and doesn't do any harm in UNIX.

CVS, however, stores state information for the repository in a directory called “CVS” (uppercase) under each directory. In Windows, this directory is the same directory where multicvs.conf is because Windows considers them to be the same filename. This usually doesn't matter, but there is one case where it causes headaches, and that is when multicvs.conf is updated. CVS won't go into the “CVS” directory because it is “special”, so it never sees the updates to multicvs.conf in the “cvs” directory, meaning that without manual intervention a CVS update and a CVS sync will actually break any Fotobilder installation on Windows.

Not really sure what the best thing to do about this is, though. Renaming the directory to something else is the obvious thing, but it's a bit late for that now since CVS isn't very good at renaming directories — it would look to clients as if the old directory was deleted and a new one created with identical contents. Moving multicvs.conf into the root of the repository would work, since that is the only file we need CVS to see; the CVS directory in the cvs directory should be empty since it's just a placeholder for the live site directory.