Author: carlos
Date: Tue Feb 19 17:39:54 2008
New Revision: 629310
URL: http://svn.apache.org/viewvc?rev=629310&view=rev
Log:
Update from svn for svn repos
Modified:
maven/archiva/tools/trunk/maven-meeper/src/main/java/org/apache/maven/archiva/meeper/Synchronizer.java
Modified:
maven/archiva/tools/trunk/maven-meeper/src/main/java/org/apache/maven/archiva/meeper/Synchronizer.java
URL:
http://svn.apache.org/viewvc/maven/archiva/tools/trunk/maven-meeper/src/main/java/org/apache/maven/archiva/meeper/Synchronizer.java?rev=629310&r1=629309&r2=629310&view=diff
==============================================================================
---
maven/archiva/tools/trunk/maven-meeper/src/main/java/org/apache/maven/archiva/meeper/Synchronizer.java
(original)
+++
maven/archiva/tools/trunk/maven-meeper/src/main/java/org/apache/maven/archiva/meeper/Synchronizer.java
Tue Feb 19 17:39:54 2008
@@ -23,6 +23,8 @@
private static final String RSYNC = "rsync";
+ private static final String SVN = "svn";
+
private static final String DRY_RUN = "-n";
/** timeout in seconds for each repo */
@@ -62,6 +64,20 @@
public void sync( SyncedRepository repo )
throws InterruptedException
{
+ /* update from svn if necessary */
+ if ( SyncedRepository.PROTOCOL_SVN.equals( repo.getProtocol() ) )
+ {
+ Commandline cl = new Commandline();
+ cl.setExecutable( SVN );
+ cl.createArg().setValue( "update" );
+ cl.createArg().setValue( appendGroupFolder( repo,
repo.getLocation() ) );
+ int exitCode = executeCommandLine( cl, repo );
+ if ( exitCode != 0 )
+ {
+ throw new RuntimeException( "Error updating from SVN. Exit
code: " + exitCode );
+ }
+ }
+
int exitCode = syncMetadata( repo );
if ( exitCode != 0 )
{
@@ -117,13 +133,18 @@
cl.createArg().setValue( "--rsh=ssh " + s );
}
+ cl.createArg().setValue( appendGroupFolder( repo, repo.getLocation() )
);
+ cl.createArg().setValue( appendGroupFolder( repo, options.getBasedir()
) );
+ }
+
+ private String appendGroupFolder( SyncedRepository repo, String location )
+ {
String groupDir = "";
if ( repo.getGroupId() != null )
{
groupDir = repo.getGroupId().replaceAll( "\\.", "\\/" ) + "/";
}
- cl.createArg().setValue( repo.getLocation() + "/" + groupDir );
- cl.createArg().setValue( options.getBasedir() + "/" + groupDir );
+ return location + "/" + groupDir;
}
private int executeCommandLine( Commandline cl, SyncedRepository repo )