[ 
https://issues.apache.org/jira/browse/SCM-791?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16584902#comment-16584902
 ] 

ASF GitHub Bot commented on SCM-791:
------------------------------------

asfgit closed pull request #77: SCM-791,SCM-815: fixes for Windows paths in git 
command line
URL: https://github.com/apache/maven-scm/pull/77
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/test/java/org/apache/maven/scm/provider/git/repository/GitScmProviderRepositoryTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/test/java/org/apache/maven/scm/provider/git/repository/GitScmProviderRepositoryTest.java
index a5400ab45..2efe7555b 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/test/java/org/apache/maven/scm/provider/git/repository/GitScmProviderRepositoryTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/test/java/org/apache/maven/scm/provider/git/repository/GitScmProviderRepositoryTest.java
@@ -109,6 +109,7 @@ public void testLegalHttpsURL()
     public void testLegalFileWindowsURL()
             throws Exception
     {
+        // FIXME This URL is invalid, hell knows why Git accepts it. It should 
be by us right away
         testUrl( "scm:git:file://c:\\tmp\\repo", null, "file://c:\\tmp\\repo", 
null, null, null, null, 0, null);
     }
 
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/GitExeScmProvider.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/GitExeScmProvider.java
index 596177a25..2096cadfc 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/GitExeScmProvider.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/GitExeScmProvider.java
@@ -141,7 +141,8 @@ protected String getRepositoryURL( File path )
         // 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.
         // and a dummy ScmProviderRepository
-        InfoScmResult result = info( new GitScmProviderRepository( 
path.getPath() ), new ScmFileSet( path ), null );
+        InfoScmResult result = info( new GitScmProviderRepository( 
path.toPath().toUri().toASCIIString() ),
+                                     new ScmFileSet( path ), null );
 
         if ( result.getInfoItems().size() != 1 )
         {
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/GitCommandLineUtils.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/GitCommandLineUtils.java
index 4f23195ec..bb1dad113 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/GitCommandLineUtils.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/GitCommandLineUtils.java
@@ -19,6 +19,8 @@
  * under the License.
  */
 
+import org.apache.commons.io.FilenameUtils;
+
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.log.ScmLogger;
 import org.apache.maven.scm.provider.git.util.GitUtil;
@@ -34,7 +36,7 @@
 
 /**
  * Command line construction utility.
- * 
+ *
  * @author Brett Porter
  * @author <a href="mailto:strub...@yahoo.de";>Mark Struberg</a>
  *
@@ -73,7 +75,7 @@ public static void addTarget( Commandline cl, List<File> 
files )
                 }
 
                 // no setFile() since this screws up the working directory!
-                cl.createArg().setValue( relativeFile );
+                cl.createArg().setValue( FilenameUtils.separatorsToUnix( 
relativeFile ) );
             }
         }
         catch ( IOException ex )
@@ -84,7 +86,7 @@ public static void addTarget( Commandline cl, List<File> 
files )
     }
 
     /**
-     * 
+     *
      * @param workingDirectory
      * @param command
      * @return
@@ -97,7 +99,7 @@ public static Commandline getBaseGitCommandLine( File 
workingDirectory, String c
     /**
      * Creates a {@link Commandline} for which the toString() do not display
      * password.
-     * 
+     *
      * @param workingDirectory
      * @param command
      * @return CommandLine with anonymous output.
@@ -176,4 +178,4 @@ public static int execute( Commandline cl, 
CommandLineUtils.StringStreamConsumer
         return exitCode;
     }
 
-}
\ No newline at end of file
+}
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java
index fe62ef6e9..e4879ba25 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java
@@ -236,7 +236,7 @@ else if ( version != null )
         // We have to report only the changes of the current project.
         // This is needed for child projects, otherwise we would get the 
changelog of the 
         // whole parent-project including all childs.
-        cl.createArg().setFile( workingDirectory );
+        cl.createArg().setValue( "." );
         
         return cl;
     }
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
index d2e8613c7..7fcda9ccb 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
@@ -194,7 +194,7 @@ private Commandline createCloneCommand( 
GitScmProviderRepository repository, Fil
 
         cl.createArg().setValue( repository.getFetchUrl() );
 
-        cl.createArg().setFile( workingDirectory );
+        cl.createArg().setValue( workingDirectory.getName() );
 
         return cl;
     }
@@ -223,8 +223,8 @@ private Commandline createPullCommand( 
GitScmProviderRepository repository, File
                 // A tag will not be pulled but we only fetch all the commits 
from the upstream repo
                 // This is done because checking out a tag might not happen on 
the current branch
                 // but create a 'detached HEAD'.
-                // In fact, a tag in git may be in multiple branches. This 
occurs if 
-                // you create a branch after the tag has been created 
+                // In fact, a tag in git may be in multiple branches. This 
occurs if
+                // you create a branch after the tag has been created
                 cl = GitCommandLineUtils.getBaseGitCommandLine( 
workingDirectory, "fetch" );
 
                 cl.createArg().setValue( repository.getFetchUrl() );
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/info/GitInfoConsumer.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/info/GitInfoConsumer.java
index 3ef1cc382..3b236ebf2 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/info/GitInfoConsumer.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/info/GitInfoConsumer.java
@@ -47,7 +47,7 @@ public GitInfoConsumer( ScmLogger logger, ScmFileSet 
scmFileSet )
         super( logger );
         this.scmFileSet = scmFileSet;
     }
-    
+
     /**
      * @see 
org.codehaus.plexus.util.cli.StreamConsumer#consumeLine(java.lang.String)
      */
@@ -57,14 +57,14 @@ public void consumeLine( String line )
         {
             getLogger().debug( "consume line " + line );
         }
-        
+
         if ( infoItems.isEmpty() )
         {
             if ( !StringUtils.isEmpty( line ) )
             {
                 InfoItem infoItem = new InfoItem();
                 infoItem.setRevision( StringUtils.trim( line ) );
-                infoItem.setURL( scmFileSet.getBasedir().getPath() );
+                infoItem.setURL( 
scmFileSet.getBasedir().toPath().toUri().toASCIIString() );
                 infoItems.add( infoItem );
             }
         }
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/GitCommandLineUtilsAddTargetTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/GitCommandLineUtilsAddTargetTest.java
index 65749222b..5005ceec6 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/GitCommandLineUtilsAddTargetTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/GitCommandLineUtilsAddTargetTest.java
@@ -65,7 +65,7 @@ public void testAddTargetWindows()
         // https://jira.codehaus.org/browse/SCM-667
         final List<File> filesToAdd = Arrays.asList( new File( 
"C:\\prj\\pom.xml" ),
             new File( "c:\\prj\\mod1\\pom.xml" ) );
-        final String expectedArguments = "[add, pom.xml, mod1\\pom.xml]";
+        final String expectedArguments = "[add, pom.xml, mod1/pom.xml]";
         check( workingDir, filesToAdd, expectedArguments );
     }
 
@@ -108,4 +108,4 @@ private boolean runsOnWindows()
     {
         return Os.isFamily( Os.FAMILY_WINDOWS );
     }
-}
\ No newline at end of file
+}
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommandTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommandTest.java
index ecc6086fa..fd54a6220 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommandTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommandTest.java
@@ -53,7 +53,7 @@ public void testCommandLineNoDates()
     {
         testCommandLine( "scm:git:http://foo.com/git";, null, (Date) null, 
(Date) null, 40,
                          "git whatchanged --date=iso --max-count=40"
-                         + " -- " + StringUtils.quoteAndEscape( 
workingDirectory.getPath(), '"' ) );
+                         + " -- ." );
     }
 
     public void testCommandLineNoDatesLimitedCount()
@@ -61,7 +61,7 @@ public void testCommandLineNoDatesLimitedCount()
     {
         testCommandLine( "scm:git:http://foo.com/git";, null, (Date) null, 
(Date) null,
                          "git whatchanged --date=iso"
-                         + " -- " + StringUtils.quoteAndEscape( 
workingDirectory.getPath(), '"' ) );
+                         + " -- ." );
     }
 
     public void testCommandLineWithDates()
@@ -72,7 +72,7 @@ public void testCommandLineWithDates()
 
         testCommandLine( "scm:git:http://foo.com/git";, null, startDate, 
endDate,
                          "git whatchanged \"--since=2003-09-10 00:00:00 
+0000\" \"--until=2007-10-10 00:00:00 +0000\" --date=iso" 
-                         + " -- " + StringUtils.quoteAndEscape( 
workingDirectory.getPath(), '"' ) );
+                         + " -- ." );
     }
 
     public void testCommandLineStartDateOnly()
@@ -82,7 +82,7 @@ public void testCommandLineStartDateOnly()
 
         testCommandLine( "scm:git:http://foo.com/git";, null, startDate, null,
                          "git whatchanged \"--since=2003-09-10 01:01:01 
+0000\" --date=iso" 
-                         + " -- " + StringUtils.quoteAndEscape( 
workingDirectory.getPath(), '"' ) );
+                         + " -- ." );
     }
 
     public void testCommandLineDateFormat()
@@ -93,7 +93,7 @@ public void testCommandLineDateFormat()
 
         testCommandLine( "scm:git:http://foo.com/git";, null, startDate, 
endDate,
                          "git whatchanged \"--since=2003-09-10 01:01:01 
+0000\" \"--until=2005-11-13 23:23:23 +0000\" --date=iso"
-                         + " -- " + StringUtils.quoteAndEscape( 
workingDirectory.getPath(), '"' ) );
+                         + " -- ." );
     }
 
     public void testCommandLineDateVersionRanges()
@@ -104,7 +104,7 @@ public void testCommandLineDateVersionRanges()
     
         testCommandLine( "scm:git:http://foo.com/git";, null, startDate, 
endDate, new ScmRevision( "1" ), new ScmRevision( "10" ),
                          "git whatchanged \"--since=2003-09-10 01:01:01 
+0000\" \"--until=2005-11-13 23:23:23 +0000\" --date=iso 1..10"
-                         + " -- " + StringUtils.quoteAndEscape( 
workingDirectory.getPath(), '"' ) );
+                         + " -- ." );
     }
     
     public void testCommandLineEndDateOnly()
@@ -115,7 +115,7 @@ public void testCommandLineEndDateOnly()
         // Only specifying end date should print no dates at all
         testCommandLine( "scm:git:http://foo.com/git";, null, null, endDate,
                          "git whatchanged \"--until=2003-11-10 00:00:00 
+0000\" --date=iso"
-                         + " -- " + StringUtils.quoteAndEscape( 
workingDirectory.getPath(), '"' ) );
+                         + " -- ." );
     }
 
     public void testCommandLineWithBranchNoDates()
@@ -123,7 +123,7 @@ public void testCommandLineWithBranchNoDates()
     {
         testCommandLine( "scm:git:http://foo.com/git";, new ScmBranch( 
"my-test-branch" ), (Date) null, (Date) null, 
                          "git whatchanged --date=iso my-test-branch"
-                         + " -- " + StringUtils.quoteAndEscape( 
workingDirectory.getPath(), '"' ) );
+                         + " -- ." );
     }
 
 
@@ -132,7 +132,7 @@ public void testCommandLineWithStartVersion()
     {
         testCommandLine( "scm:git:http://foo.com/git";, null, new ScmRevision( 
"1" ), null, 
                          "git whatchanged --date=iso 1.."
-                         + " -- " + StringUtils.quoteAndEscape( 
workingDirectory.getPath(), '"' ) );
+                         + " -- ." );
     }
 
     public void testCommandLineWithStartVersionAndEndVersion()
@@ -140,7 +140,7 @@ public void testCommandLineWithStartVersionAndEndVersion()
     {
         testCommandLine( "scm:git:http://foo.com/git";, null, new ScmRevision( 
"1" ), new ScmRevision( "10" ), 
                          "git whatchanged --date=iso 1..10"
-                         + " -- " + StringUtils.quoteAndEscape( 
workingDirectory.getPath(), '"' ) );
+                         + " -- ." );
     }
 
     public void testCommandLineWithStartVersionAndEndVersionEquals()
@@ -148,7 +148,7 @@ public void 
testCommandLineWithStartVersionAndEndVersionEquals()
     {
         testCommandLine( "scm:git:http://foo.com/git";, null, new ScmRevision( 
"1" ), new ScmRevision( "1" ), 
                          "git whatchanged --date=iso 1..1"
-                         + " -- " + StringUtils.quoteAndEscape( 
workingDirectory.getPath(), '"' ) );
+                         + " -- ." );
     }
 
     public void testCommandLineWithStartVersionAndEndVersionAndBranch()
@@ -156,7 +156,7 @@ public void 
testCommandLineWithStartVersionAndEndVersionAndBranch()
     {
         testCommandLine( "scm:git:http://foo.com/git";, new ScmBranch( 
"my-test-branch" ), new ScmRevision( "1" ), new ScmRevision( "10" ), 
                          "git whatchanged --date=iso 1..10 my-test-branch"
-                         + " -- " + StringUtils.quoteAndEscape( 
workingDirectory.getPath(), '"' ) );
+                         + " -- ." );
     }
 
     // ----------------------------------------------------------------------
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandNoBranchTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandNoBranchTest.java
index e73e16379..d5f722b56 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandNoBranchTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandNoBranchTest.java
@@ -61,7 +61,7 @@ public void testCheckinNoBranch()
         FileUtils.deleteDirectory( repo );
         FileUtils.copyDirectoryStructure( repo_orig, repo );
 
-        ScmRepository scmRepository = getScmManager().makeScmRepository( 
"scm:git:file:///" + repo.getAbsolutePath() );
+        ScmRepository scmRepository = getScmManager().makeScmRepository( 
"scm:git:" + repo.toPath().toUri().toASCIIString() );
 
         CheckOutScmResult checkOutScmResult = checkoutRepo( scmRepository );
 
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandTest.java
index 3221fc677..4dccb9e81 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandTest.java
@@ -65,7 +65,7 @@ public void testCommandLineWithoutTag()
     {
         if ( GitUtil.getSettings().isCommitNoVerify() )
         {
-            testCommandLine( "scm:git:http://foo.com/git/trunk";, "git commit 
--verbose " + messageFileString + " -a" + " --no-verify" );    
+            testCommandLine( "scm:git:http://foo.com/git/trunk";, "git commit 
--verbose " + messageFileString + " -a" + " --no-verify" );
         }
         else
         {
@@ -95,18 +95,18 @@ public void testCheckinAfterRename() throws Exception {
 
         GitScmTestUtils.initRepo("src/test/resources/repository/", 
getRepositoryRoot(), getWorkingDirectory());
 
-        ScmRepository scmRepository = getScmManager().makeScmRepository( 
"scm:git:file://" + repo.getAbsolutePath() );
+        ScmRepository scmRepository = getScmManager().makeScmRepository( 
"scm:git:" + repo.toPath().toUri().toASCIIString() );
         checkoutRepoInto(checkedOutRepo, scmRepository);
 
         // Add a default user to the config
         GitScmTestUtils.setDefaultUser( checkedOutRepo );
 
         // Creating foo/bar/wine.xml
-        File fooDir = new File( checkedOutRepo.getAbsolutePath() + 
File.separator + "foo" );
+        File fooDir = new File( checkedOutRepo.getAbsolutePath(), "foo" );
         fooDir.mkdir();
-        File barDir = new File(fooDir.getAbsolutePath() + File.separator + 
"bar");
+        File barDir = new File(fooDir.getAbsolutePath(), "bar");
         barDir.mkdir();
-        File wineFile = new File(barDir.getAbsolutePath() + File.separator + 
"wine.xml");
+        File wineFile = new File(barDir.getAbsolutePath(), "wine.xml");
         FileUtils.fileWrite( wineFile.getAbsolutePath(), "Lacoste castle" );
 
         // Adding and commiting file
@@ -116,9 +116,9 @@ public void testCheckinAfterRename() throws Exception {
         assertResultIsSuccess( checkInScmResult );
 
         // Cloning foo/bar/wine.xml to foo/newbar/wine.xml
-        File newBarDir = new File(fooDir.getAbsolutePath() + File.separator + 
"newbar");
+        File newBarDir = new File(fooDir.getAbsolutePath(), "newbar");
         newBarDir.mkdir();
-        File movedWineFile = new File(newBarDir.getAbsolutePath() + 
File.separator + "wine.xml");
+        File movedWineFile = new File(newBarDir.getAbsolutePath(), "wine.xml");
         FileUtils.copyFile(wineFile, movedWineFile);
 
         // Removing old file, adding new file and commiting...
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitExeCheckOutCommandNoBranchTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitExeCheckOutCommandNoBranchTest.java
index 0d1c959e4..c442d59b8 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitExeCheckOutCommandNoBranchTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitExeCheckOutCommandNoBranchTest.java
@@ -50,7 +50,7 @@ public void setUp()
         FileUtils.deleteDirectory( workingDirectory );
         repo = new File( "src/test/resources/repository_no_branch" );
 
-        scmRepository = getScmManager().makeScmRepository( "scm:git:file:///" 
+ repo.getAbsolutePath() );
+        scmRepository = getScmManager().makeScmRepository( "scm:git:" + 
repo.toPath().toUri().toASCIIString() );
     }
 
     public void testCheckoutNoBranch()
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/info/GitInfoCommandTckTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/info/GitInfoCommandTckTest.java
index c06f3d614..7d853ebfc 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/info/GitInfoCommandTckTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/info/GitInfoCommandTckTest.java
@@ -50,7 +50,7 @@ public void testInfoCommand()
             provider.info( repository, new ScmFileSet( getRepositoryRoot() ), 
new CommandParameters() );
         assertNotNull( result );
         assertEquals( "cd3c0dfacb65955e6fbb35c56cc5b1bf8ce4f767", 
result.getInfoItems().get( 0 ).getRevision() );
-        // 
+        //
     }
 
     public void testInfoCommandWithShortRevision()
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/GitScmTestUtils.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/GitScmTestUtils.java
index c62458fd7..284bff5a3 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/GitScmTestUtils.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/GitScmTestUtils.java
@@ -19,18 +19,15 @@
  * under the License.
  */
 
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+
 import junit.framework.Assert;
+
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
-import org.codehaus.plexus.util.Os;
-import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.cli.CommandLineException;
-import org.codehaus.plexus.util.cli.CommandLineUtils;
-import org.codehaus.plexus.util.cli.Commandline;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
 
 /**
  * @author <a href="mailto:tryg...@inamo.no";>Trygve Laugst&oslash;l</a>
@@ -79,37 +76,7 @@ public static void initRepo( String source, File repository, 
File workingDirecto
     public static String getScmUrl( File repositoryRootFile, String provider )
         throws CommandLineException
     {
-        String repositoryRoot = repositoryRootFile.getAbsolutePath();
-
-        // TODO: it'd be great to build this into CommandLineUtils somehow
-        // TODO: some way without a custom cygwin sys property?
-        if ( "true".equals( System.getProperty( "cygwin" ) ) )
-        {
-            Commandline cl = new Commandline();
-
-            cl.setExecutable( "cygpath" );
-
-            cl.createArg().setValue( "--unix" );
-
-            cl.createArg().setValue( repositoryRoot );
-
-            CommandLineUtils.StringStreamConsumer stdout = new 
CommandLineUtils.StringStreamConsumer();
-
-            int exitValue = CommandLineUtils.executeCommandLine( cl, stdout, 
null );
-
-            if ( exitValue != 0 )
-            {
-                throw new CommandLineException( "Unable to convert cygwin 
path, exit code = " + exitValue );
-            }
-
-            repositoryRoot = stdout.getOutput().trim();
-        }
-        else if ( Os.isFamily( "windows" ) )
-        {
-            repositoryRoot = "/" + StringUtils.replace( repositoryRoot, "\\", 
"/" );
-        }
-
-        return "scm:" + provider + ":file://" + repositoryRoot;
+        return "scm:" + provider + ":" + 
repositoryRootFile.toPath().toUri().toASCIIString();
     }
 
 
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/changelog/GitChangeLogCommandTckTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/changelog/GitChangeLogCommandTckTest.java
index 1b42d94dd..330255705 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/changelog/GitChangeLogCommandTckTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/changelog/GitChangeLogCommandTckTest.java
@@ -48,7 +48,7 @@
     public void initRepo()
         throws Exception
     {
-        GitScmTestUtils.initRepo( "src/test/resources/linear-changelog/", 
getRepositoryRoot(), getWorkingDirectory() );
+        GitScmTestUtils.initRepo( "src/test/resources/linear-changelog/", 
getRepositoryRoot(), getWorkingCopy() );
     }
 
     @Override
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/update/GitUpdateCommandTckTest.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/update/GitUpdateCommandTckTest.java
index ff277b5ca..12583f653 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/update/GitUpdateCommandTckTest.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/update/GitUpdateCommandTckTest.java
@@ -37,7 +37,7 @@
     public void initRepo()
         throws Exception
     {
-        GitScmTestUtils.initRepo( "src/test/resources/repository/", 
getRepositoryRoot(), getWorkingDirectory() );
+        GitScmTestUtils.initRepo( "src/test/resources/repository/", 
getRepositoryRoot(), getWorkingCopy() );
     }
 
     @Override
diff --git 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/info/JGitInfoCommand.java
 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/info/JGitInfoCommand.java
index 488093eb2..b28b4f543 100644
--- 
a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/info/JGitInfoCommand.java
+++ 
b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/info/JGitInfoCommand.java
@@ -60,7 +60,7 @@ protected ScmResult executeCommand( ScmProviderRepository 
repository, ScmFileSet
 
             InfoItem infoItem = new InfoItem();
             infoItem.setRevision( StringUtils.trim( objectId.name() ) );
-            infoItem.setURL( basedir.getPath() );
+            infoItem.setURL( basedir.toPath().toUri().toASCIIString() );
 
             return new InfoScmResult( Collections.singletonList( infoItem ),
                                       new ScmResult( "JGit.resolve(HEAD)", "", 
objectId.toString(), true ) );
diff --git 
a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svntest/src/main/java/org/apache/maven/scm/provider/svn/SvnScmTestUtils.java
 
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svntest/src/main/java/org/apache/maven/scm/provider/svn/SvnScmTestUtils.java
index d52d61f3f..521bc83cc 100644
--- 
a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svntest/src/main/java/org/apache/maven/scm/provider/svn/SvnScmTestUtils.java
+++ 
b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svntest/src/main/java/org/apache/maven/scm/provider/svn/SvnScmTestUtils.java
@@ -22,7 +22,6 @@
 import junit.framework.Assert;
 import org.apache.maven.scm.ScmTestCase;
 import org.codehaus.plexus.util.FileUtils;
-import org.codehaus.plexus.util.Os;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.cli.CommandLineException;
 import org.codehaus.plexus.util.cli.CommandLineUtils;
@@ -55,7 +54,7 @@ public static void initializeRepository( File repositoryRoot )
         {
             FileUtils.deleteDirectory( repositoryRoot );
         }
-        
+
         Assert.assertFalse( "repositoryRoot still exists", 
repositoryRoot.exists() );
 
         Assert.assertTrue( "Could not make repository root directory: " + 
repositoryRoot.getAbsolutePath(),
@@ -132,36 +131,6 @@ private static void loadSvnDump( File repositoryRoot, 
InputStream dumpStream )
     public static String getScmUrl( File repositoryRootFile )
         throws CommandLineException
     {
-        String repositoryRoot = repositoryRootFile.getAbsolutePath();
-
-        // TODO: it'd be great to build this into CommandLineUtils somehow
-        // TODO: some way without a custom cygwin sys property?
-        if ( "true".equals( System.getProperty( "cygwin" ) ) )
-        {
-            Commandline cl = new Commandline();
-
-            cl.setExecutable( "cygpath" );
-
-            cl.createArg().setValue( "--unix" );
-
-            cl.createArg().setValue( repositoryRoot );
-
-            CommandLineUtils.StringStreamConsumer stdout = new 
CommandLineUtils.StringStreamConsumer();
-
-            int exitValue = CommandLineUtils.executeCommandLine( cl, stdout, 
null );
-
-            if ( exitValue != 0 )
-            {
-                throw new CommandLineException( "Unable to convert cygwin 
path, exit code = " + exitValue );
-            }
-
-            repositoryRoot = stdout.getOutput().trim();
-        }
-        else if ( Os.isFamily( "windows" ) )
-        {
-            repositoryRoot = "/" + StringUtils.replace( repositoryRoot, "\\", 
"/" );
-        }
-
-        return "scm:svn:file://" + repositoryRoot;
+        return "scm:svn:" + 
repositoryRootFile.toPath().toUri().toASCIIString();
     }
 }


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> GitExe Provider does not work properly in Cygwin
> ------------------------------------------------
>
>                 Key: SCM-791
>                 URL: https://issues.apache.org/jira/browse/SCM-791
>             Project: Maven SCM
>          Issue Type: Bug
>          Components: maven-scm-provider-gitexe
>    Affects Versions: 1.9.2
>         Environment: Cygwin under Windows 8
>            Reporter: Irineu Ruiz
>            Assignee: Michael Osipov
>            Priority: Critical
>             Fix For: 1.10.1
>
>         Attachments: bad-01ba0c0.txt, good-SCM-791.txt, 
> test_1.9.2_Cygwin.log, test_1.9.2_prompt.log, test_HEAD_Cygwin.log, 
> test_HEAD_prompt.log
>
>
> The tests of the maven-scm project fails in CygWin and passed in command 
> prompt, as you can see in the attachment.
> Also, using Cygwin under Windows 8, we can't execute a mvn release:prepare 
> properly, because pom.xml is not correct commited in tag and HEAD of 
> repository.
> The maven gives a false positive of Build Sucess, but the tag is incorret, 
> with the SNAPSHOT termination in version.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to