Linux distribution of Apache subversion provides svnadmin to create a svn repository.But this is not capable of creating repository remotely.By issuing svnadmin command we can only create a repository within local file system.
Here i am going to describe couple of ways by which we can create svn repositories remotely.Here all my ways achieve above mentioned objective through java.Here is the list of method that i found.
1.Using ssh to execute svnadmin command remotely.
a)Using apache sshd library
b)Using JSch library
2.Using SCM -Manager
3.Using PHP+java Client
To use apache sshd library you have to add following maven dependency.
Following is the maven dependency which can be used to create maven project.
a server which provide user interface to create repository and manage them with users.Currently it support svn ,git and mercurial.In addition to user interface, it expose REST API to manage repositories.Here i am going to use the REST API to create a repository.Before staring writing the REST Client Download the SCM Manager from here and start the server by executing the script which can be found in bin folder of the distribution.
To write the REST client there so many ways.
1.Using HTTP client
2.Apache Wink client
3.Jersey Client
I am using http client wich is very simple to use.All the REST calls are protected by BASIC Auth in SCM Manager.We have to set the credential in http client.
Here i used Axiom for generating XML payload.
Here is the java client that is used to call the php page.
This is how we can create svn repositories remotely.This will be helpful when ever there is a requirement of automatic repository provisioning.
Here i am going to describe couple of ways by which we can create svn repositories remotely.Here all my ways achieve above mentioned objective through java.Here is the list of method that i found.
1.Using ssh to execute svnadmin command remotely.
a)Using apache sshd library
b)Using JSch library
2.Using SCM -Manager
3.Using PHP+java Client
Using ssh to execute svnadmin command remotely
In this approach the repository is created by executing svnadmin or relevant command in remote host using ssh.Here there are two ssh opensource libraries available for java.a) Using apache sshd library
apache sshd is a pure java implementation of ssh available under apache 2.0 license.This is a sub-project of apache Mina.Here is a example code for executing svnadmin command on remote host as a superuser.To use apache sshd library you have to add following maven dependency.
b)Using JSch library
This is another popular java implementation of ssh.There are good examples also available for this libarary.Here is how to execute svnadmin command using JSch library.Following is the maven dependency which can be used to create maven project.
Using SCM -Manager
Next approach is using a source code management system.SCM Manager is an open source source code management system which is implemented in java.This isa server which provide user interface to create repository and manage them with users.Currently it support svn ,git and mercurial.In addition to user interface, it expose REST API to manage repositories.Here i am going to use the REST API to create a repository.Before staring writing the REST Client Download the SCM Manager from here and start the server by executing the script which can be found in bin folder of the distribution.
To write the REST client there so many ways.
1.Using HTTP client
2.Apache Wink client
3.Jersey Client
I am using http client wich is very simple to use.All the REST calls are protected by BASIC Auth in SCM Manager.We have to set the credential in http client.
Here i used Axiom for generating XML payload.
Using PHP+java Client
In this approach a php page that is hosted in apache 2 server in remote host will create a svn repository using svnadmin command and there will be a java client that is used to call the php.The php page is secured using Basic Auth.Here is the very simple php code to create svn repository.Here is the java client that is used to call the php page.
This is how we can create svn repositories remotely.This will be helpful when ever there is a requirement of automatic repository provisioning.