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 )


Reply via email to