As noted in my talk earlier, SVK is a really handy tool for building remote operation on top of subversion. If you haven’t tried it yet, you need too. I’ve just tried it and been absolutely blown away by its mirroring abilities.

I committed a change on a local copy of a mirror of XML-Genx. I then said svk push and saw the changes go back from the mirror to my master repository. I ran svn update in a working copy attached to the master repository and there were the changes. This rocks. Everybody needs SVK!


XML::LibXML Oddity

This afternoon at work, I came across something most odd with XML::LibXML: When you call removeChild() on an element, it loses its namespace declarations. For example, if I have this XML:

  <bar:bar xmlns:bar="" />

Then, I call removeChild() on the <bar:bar> element, immediately followed by $node-&gt;toString(). And this is what I get back:


Which is not well formed XML because the namespace declaration is missing. Somewhere along the line, the declaration is being lost. I suspect that it should be copied in to the $node when it’s removed from its parent document, but that’s not happening. As to whether this is a bug in XML::LibXML or libxml2, I don’t know. I’ll file a report and we’ll see what happens.

Update: how odd. This minimal test case works as expected. I’ll have to examine the original situation more closely to work out what I’m not reproducing…

Update#2: I got the example wrong. Actually, the source xml looked like this:

&lt;foo xmlns:bar=""&gt;
  &lt;bar:bar /&gt;

This fails as expected.


Subversion for CVS Users

Today I gave a little presentation on Subversion for CVS Users at work. We’re switching to subversion for new projects rather than having a “big bang” repository conversion approach.

The slides were done using DOMSlides, which seem to work rather well. It’s quite minimalist, unlike S5, which I always find to be terribly slow for some reason.


New Releases

I released new versions of XML-Genx and Config-Setting last night. No particular reason to do so, apart from seeing that my kwalitee ratings could be improved by testing for valid pod…

In fairness, I do need to play with Devel::Cover a bit to see if my tests could be improved. And I need to carry on updating XML::Schematron. So much to do, so little time…