Author: evenisse
Date: Tue Jan 31 01:49:59 2006
New Revision: 373783

URL: http://svn.apache.org/viewcvs?rev=373783&view=rev
Log:
[SCM-143] add a patch that makes that initial step more robust by forcing 
non-recursive add and by always use absolute paths.
Submitted by: Torbjorn EIkli Smorgrav

Modified:
    maven/scm/trunk/sandbox/maven-scm-provider-bazaar/   (props changed)
    
maven/scm/trunk/sandbox/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/BazaarTestUtils.java

Propchange: maven/scm/trunk/sandbox/maven-scm-provider-bazaar/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Jan 31 01:49:59 2006
@@ -0,0 +1,4 @@
+maven-scm-provider-bazaar.ipr
+maven-scm-provider-bazaar.iws
+target
+maven-scm-provider-bazaar.iml

Modified: 
maven/scm/trunk/sandbox/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/BazaarTestUtils.java
URL: 
http://svn.apache.org/viewcvs/maven/scm/trunk/sandbox/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/BazaarTestUtils.java?rev=373783&r1=373782&r2=373783&view=diff
==============================================================================
--- 
maven/scm/trunk/sandbox/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/BazaarTestUtils.java
 (original)
+++ 
maven/scm/trunk/sandbox/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/BazaarTestUtils.java
 Tue Jan 31 01:49:59 2006
@@ -2,7 +2,10 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
 
+import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.provider.bazaar.command.BazaarCommand;
 import org.codehaus.plexus.util.FileUtils;
 
@@ -14,7 +17,7 @@
 public class BazaarTestUtils
 {
 
-    public static final String[] filesInOriginalRepository = new String[] {
+    public static final String[] filesInTestBranch = new String[] {
         "pom.xml",
         "readme.txt",
         "src/main/java/Application.java",
@@ -22,57 +25,65 @@
 
     public static final String TCK_FILE_CONSTANT = "/";
 
-    public static final String TEMP_PATH = "target"; //System.getProperty( 
"java.io.tmpdir" );
+    public static final String BRANCH_NAME = "target" + File.separator + 
"test-branch";
 
-    public static final String COMMIT_MESSAGE = "Initial revision";
+    public static final File WORKING_DIR = new File(BRANCH_NAME);
+
+    public static final String COMMIT_MESSAGE = "Add files to test branch";
 
     public static String getScmUrl()
         throws Exception
     {
-        File workingDir = new File( TEMP_PATH, "BazaarTmpRepository" );
-        return "scm:bazaar:" + workingDir.getAbsolutePath();
+        return "scm:bazaar:" + WORKING_DIR.getAbsolutePath();
     }
 
     public static void initRepo()
         throws Exception
     {
         // Prepare tmp directory
-        File workingDir = new File( TEMP_PATH, "BazaarTmpRepository" );
-        if ( workingDir.exists() )
+        if ( WORKING_DIR.exists() )
         {
-            FileUtils.deleteDirectory( workingDir );
+            FileUtils.deleteDirectory( WORKING_DIR );
         }
-        boolean workingDirReady = workingDir.mkdirs();
+        boolean workingDirReady = WORKING_DIR.mkdirs();
         if ( !workingDirReady )
         {
-            throw new IOException( "Could not initiate test repository at: " + 
workingDir );
+            throw new IOException( "Could not initiate test branch at: " + 
WORKING_DIR );
         }
 
         // Init repository
         String[] init_cmd = new String[] { BazaarCommand.INIT_CMD };
-        BazaarUtils.execute( workingDir, init_cmd );
+        BazaarUtils.execute( WORKING_DIR, init_cmd );
 
         // Create and add files to repository
-        for ( int i = 0; i < filesInOriginalRepository.length; i++ )
+        List files = new ArrayList();
+        for ( int i = 0; i < filesInTestBranch.length; i++ )
         {
-            File file = new File( workingDir, filesInOriginalRepository[i] );
-            if ( !file.getParentFile().exists() )
+            File file = new File( WORKING_DIR.getAbsolutePath(), 
filesInTestBranch[i] );
+            if ( file.getParentFile() != null && 
!file.getParentFile().exists() )
             {
                 boolean success = file.getParentFile().mkdirs();
                 if ( !success )
                 {
-                    throw new IOException( "Could not create directories in 
repository for: " + file );
+                    throw new IOException( "Could not create directories in 
branch for: " + file );
                 }
             }
             file.createNewFile();
 
-            FileUtils.fileWrite( file.getAbsolutePath(), TCK_FILE_CONSTANT + 
filesInOriginalRepository[i] );
+            FileUtils.fileWrite( file.getAbsolutePath(), TCK_FILE_CONSTANT + 
filesInTestBranch[i] );
+
+            files.add(file);
         }
+
+        //Add to repository
         String[] add_cmd = new String[] { BazaarCommand.ADD_CMD };
-        BazaarUtils.execute( workingDir, add_cmd );
+        ScmFileSet filesToAdd = new ScmFileSet(new File(""), 
(File[])files.toArray(new File[0]));
+        add_cmd = BazaarUtils.expandCommandLine(add_cmd, filesToAdd);
+        BazaarUtils.execute( WORKING_DIR, add_cmd );
 
         // Commit the initial repository
-        String[] commit_cmd = new String[] { BazaarCommand.COMMIT_CMD, 
BazaarCommand.MESSAGE_OPTION, COMMIT_MESSAGE };
-        BazaarUtils.execute( workingDir, commit_cmd );
+        String[] commit_cmd = new String[] { BazaarCommand.COMMIT_CMD,
+                BazaarCommand.MESSAGE_OPTION, COMMIT_MESSAGE };
+        BazaarUtils.execute( WORKING_DIR, commit_cmd );
     }
 }


Reply via email to