This morning I was reminded yet again of why XML is a vastly superior format to plain text. I wasted at least an hour trying to troubleshoot a problem that in the end came down to this. My cvspserver file was
service cvspserver {
disable = no
socket_type = stream
wait = no
user = root
server = /sw/bin/cvs
server_args = -f --allow-root=/usr/local/CVS pserver
groups = yes
flags = REUSE
}
It should have been:
service cvspserver
{
disable = no
socket_type = stream
wait = no
user = root
server = /sw/bin/cvs
server_args = -f --allow-root=/usr/local/CVS pserver
groups = yes
flags = REUSE
}
If the difference eludes you, well it eluded me too. This never would have been an issue in XML. The problem is that config files are not plain text. They have embedded markup. It's just that the markup is composed of line breaks, tabs, spaces, and other invisible characters you can't even see. Furthermore, every different tool uses a slightly different markup format, and more often than not that format isn't even documented. The real contest is not between XML and plain text. If it were the first file would have worked. The contest is between reliable, robust, explicit, well-understood, well-documented XML formats and fragile, idiosyncratic, implicit, undocumented formats. When you realize that's the choice, there really is no choice. In 2005 no new config format should be anything other than XML.