You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2012/11/18 17:21:05 UTC

git commit: [SCM-435] can not work with local copy

Updated Branches:
  refs/heads/SCM-435 [created] c96ca2477


[SCM-435] can not work with local copy


Project: http://git-wip-us.apache.org/repos/asf/maven-scm/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-scm/commit/c96ca247
Tree: http://git-wip-us.apache.org/repos/asf/maven-scm/tree/c96ca247
Diff: http://git-wip-us.apache.org/repos/asf/maven-scm/diff/c96ca247

Branch: refs/heads/SCM-435
Commit: c96ca2477eb0c8227631784417173afa7805a410
Parents: c23125b
Author: rfscholte <rf...@apache.org>
Authored: Sun Nov 18 17:20:06 2012 +0100
Committer: rfscholte <rf...@apache.org>
Committed: Sun Nov 18 17:20:06 2012 +0100

----------------------------------------------------------------------
 .../maven-scm-provider-svnexe/pom.xml              |   12 +++
 .../scm/provider/svn/svnexe/SvnExeScmProvider.java |    9 +-
 .../provider/svn/svnexe/SvnExeScmProviderTest.java |   78 +++++++++++++++
 3 files changed, 96 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-scm/blob/c96ca247/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/pom.xml
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/pom.xml b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/pom.xml
index 62ade84..eb5cbef 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/pom.xml
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/pom.xml
@@ -33,6 +33,12 @@
   <name>Maven SCM Subversion Provider - SVN Executable Impl.</name>
   <description>Executable library for SCM SVN Provider.</description>
 
+  <contributors>
+    <contributor>
+      <name>James Nord</name>
+    </contributor>
+  </contributors>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
@@ -53,6 +59,12 @@
       <artifactId>maven-scm-provider-svntest</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <version>1.9.5</version>
+      <scope>test</scope>
+	</dependency>
   </dependencies>
 
   <build>

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/c96ca247/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProvider.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProvider.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProvider.java
index 6d63d12..06393d1 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProvider.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProvider.java
@@ -19,6 +19,8 @@ package org.apache.maven.scm.provider.svn.svnexe;
  * under the License.
  */
 
+import java.io.File;
+
 import org.apache.maven.scm.CommandParameters;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
@@ -45,8 +47,6 @@ import org.apache.maven.scm.provider.svn.svnexe.command.tag.SvnTagCommand;
 import org.apache.maven.scm.provider.svn.svnexe.command.update.SvnUpdateCommand;
 import org.apache.maven.scm.repository.ScmRepositoryException;
 
-import java.io.File;
-
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  *
@@ -180,7 +180,10 @@ public class SvnExeScmProvider
     {
         // Note: I need to supply just 1 absolute path, but ScmFileSet won't let me without
         // a basedir (which isn't used here anyway), so use a dummy file.
-        InfoScmResult result = info( null, new ScmFileSet( new File( "" ), path ), null );
+        SvnInfoCommand infoCmd = (SvnInfoCommand) getInfoCommand();
+        infoCmd.setLogger( this.getLogger() );
+        InfoScmResult result =
+            infoCmd.executeInfoCommand( null, new ScmFileSet( new File( "" ), path ), null, false, null );
 
         if ( result.getInfoItems().size() != 1 )
         {

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/c96ca247/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProviderTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProviderTest.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProviderTest.java
new file mode 100644
index 0000000..9d7c8c0
--- /dev/null
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProviderTest.java
@@ -0,0 +1,78 @@
+package org.apache.maven.scm.provider.svn.svnexe;
+
+import static org.junit.Assert.assertFalse;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.log.ScmLogger;
+import org.codehaus.plexus.util.Os;
+import org.junit.Assume;
+import org.junit.Before;
+import org.junit.Test;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+public class SvnExeScmProviderTest
+{
+    private SvnExeScmProvider scmProvider;
+    
+    @Before
+    public void onSetup() 
+    {
+        scmProvider = new SvnExeScmProvider();
+    }
+    
+    // SCM-435
+    @Test 
+    public void testGetRepositoryURL_Windows()
+        throws Exception
+    {
+        Assume.assumeTrue( Os.isFamily( Os.FAMILY_WINDOWS ) );
+        
+        // prepare
+        ScmLogger logger = mock( ScmLogger.class );
+        when( logger.isInfoEnabled() ).thenReturn( Boolean.TRUE );
+        scmProvider.addListener( logger );
+        File workingDirectory = new File( "." );
+        
+        // test
+        // Since SCM-project has moved from svn to GIT, we can't verify the URL of this project 
+        String url;
+        try
+        {
+            url = scmProvider.getRepositoryURL( workingDirectory );
+            
+            // verify
+            assertFalse( url.startsWith( "file://" ) );
+        }
+        catch ( ScmException e )
+        {
+        }
+        
+        // verify
+        verify( logger ).info( "Executing: cmd.exe /X /C \"svn --non-interactive info .\"" );
+        verify( logger ).info( "Working directory: " + workingDirectory.getCanonicalPath() );
+    }
+}
+