Any advice for using Subversion as Version Control for Replicate ?
In our organisation it is mandatory for us to use Subversion for version control. Does anyone have experiences of using Subversion for version control for Replicate and Compose that could be shared with us?
Thanks for posting your question- it is an interesting one! I have not come across Replicate standards for version control as it typically is up to the customer based on their environment.
You can take snapshots of your Replicate environment in two ways:
1. At a global level, you can export the entire repository any time there is a change or a task added. This will require some manual steps or scripting to produce a file called Replication_Definition.json which you can then commit.
a. Stop all running tasks
b. export Replicate repository (with server info):
Note: if you did revert to an older version of a task/Replication_Definition.json file you would most likely need to do a reload or a restart from timestamp to reproduce associated metadata or sqlite files to get the task up and running.
No need at all to stop tasks before requesting an export repository.
You can often (most of the time?) just STOP, IMPORT and RESUME to revert a change. Changed tables will be reloaded as needed.
Folks often struggle when using REPCTL for the first time
Make sure REPCTL.EXE is in the current PATH
Provide the Replicate Datadirectory with the -d command option (optional if default directory)
TEST with REPCTL -D <data> VERSION
The Export Repository output has a date-stamp inside. Copy and/or rename the output to have a data.
Save the master json (with datestamp) but take it all apart (with some PowerShell or Perl or Awk script as you please into indivual files for tasks,databases,(server)settings and make those files your source control (subversion or otherwise) objects.
Check out REPCTL GETTASKLIST for to drive a script to get individual task JSONs. I'd still take them apart into the tasks itself, and the (two) databases used. REPCTL -d xx HELP OPTION=1 for a list of all commands.
Consider using the Enterprise Manager Replicate API to get your (task) JSON's