views:

125

answers:

2

I want to save to a subversion repository.

I am using the command - svn commit -m \"\" ./cms_test/www

My class is:

public int doBackup(){
 int exitVal=-99;
  try
  {            
      Runtime rt = Runtime.getRuntime();
      Process proc = rt.exec("svn commit -m \"\" ./cms_test/www");
      exitVal = proc.exitValue();
      System.out.println("Process exitValue: " + exitVal);
  } catch (Throwable t)
    {
      t.printStackTrace();
    }
  return exitVal;
}

Should this work, or is there something else I need to do.

+11  A: 

Why don't you use something like SVNKit?

SVNKit is a pure Java toolkit - it implements all Subversion features and provides APIs to work with Subversion working copies, access and manipulate Subversion repositories - everything within your Java application.

The benefits are:

  • No dependency on subversion binaries being installed;
  • Proper errors propagated to Java code instead of checking for return codes and parsing output;
  • Easier to make more advanced use-cases work;

All that plus the fun factor of learning a new API.

Robert Munteanu
I've used SVNKit several times, it is a very well designed library with great maven support
dfa
I agree. Not being forced to use SVN binaries is a huge plus, and you become platform independent. As the wise man said, why reinvent the wheel? SVNKit rocks.
mikek
+1  A: 

It might work, but be sure to be already authenticated to your svn server and call another method where you update your revision before calling your doBackup() method.

Rigo Vides