Source Control Suggestions?

What source control systems are people using with Rhythmyx? (CVS, SVN, etc.) Does anyone have any advice on what does or does not work well?

The most important suggestion, of course, is that you use Source Control. I recommend exporting all of your Content Types and Templates as XML files. Put these files in your source control tree, along with any other scripts, configuration files, html, JSP, etc.

We’ve had good luck with Subversion, both for developing Java components that will be used with Rhythmyx and for Rhythmyx components as described above.

In the “old days” we used Visual Source Safe. I wouldn’t wish that on my worst enemy.

We’ve also done a couple of projects that used CVS, and found it cumbersome. Given that Subversion seems to be supplanting CVS (it was written as a “CVS replacement”, after all) for projects around the net, I think you’re far better of using Subversion than CVS.


thanks for the tips.
We are leaning toward subversion at the moment, so I am glad to hear it is working well for you.

Is there some automated way that your are keeping the RX tree and your Subversion DB synchronized? I am a total noob in this department and it seems like I would be saving everything twice from the workbench. Is this what you are doing or am I way off?

I don’t know why you say “saving twice”, but I do think it’s rather tedious to have to track all of your changes by hand. Unfortunately, that’s the only way right now.


Sorry, I meant that I assume the only way to save changes to SVN is to (1) save whatever changes you make in the workbench and then (2) save/commit the updated files in the RX folder to subversion. Is this what you mean by “by hand”?

Yes, that’s what I meant. Depending on how you count there may be 3 or more steps in the process. The first step is always to remember what components you’ve changed and need to update in SVN.


I am setting up Subversion now and I am having a bit of trouble.
I have SVN set up on a Win2003 server with Apache 2.0. It seems like the easiest way to keep track of everything is to create an empty repository (on the SVN server)and then check it out to the network share of the RX tree (on our development server). Then I started adding folders using TortoiseSVN and committing them (from my WinXP PC). This seems to be rather slow and unreliable and I have ended up with ostructed files and mysterious locks that keep me from fixing problems.

Can you give me a more detailed description of your set up and process?


I don’t think it’s a good idea to use the Rhythmyx tree as your “sandbox”.

In 5.x (and before) we usually copied the Objectstore XML files and the contents of the Application directories into a separate set of folders, which becomes the local sandbox for source control.

In 6.x, you can still use this strategy, but it’s probably better to Export your content types and templates into a separate folder. If you have legacy applications (for lookups, etc), you should follow copy them from the server.

There are lots of files in the Rhythmyx tree that get modified at unpredictable times, and the Rhythmyx server is sensitive to read-only files.

I know that this is painful, but it’s the only way we’ve been able to do it successfully.


We are looking at integrating Rhthymyx with SVN.

I understand that I can export content types and templates to a file system that is managed by SVN. But what about slots and keyword definitions? What do you think would be best way to manage these?


A few of reasons have made us come to the conclusion that proper CVS or SVN control of our Rhythmyx development isn’t feasable.

Firstly, I’ve never tried it, but from reading this post, it would seem likely that importing a content type will not modify the corresponding table(s). So reverting to a previous revision in your SVN repository, then importing the file into Rhythmyx, probably won’t work. In fact it would probably cause all sorts of trouble. That makes it useful for reference purposes only.

Second, you have to remember to export a template or content type every time you modify it. If you find out how to get Workbench to export templates and content types as a scheduled task, then we’d be interested in knowing how.

Third, as you say, there is no way to export anything else from the system. Ideally everything should have an XML export format. In fact, the real ideal would be for Rhythmyx to have an option to run in a developer mode that saves everything in files on the application server instead or as aswell as in the database.

BTW, you’ll also want to SVN-control the rx_assembly.vm file that contains User Velocity Macros.