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 2013/05/22 23:14:56 UTC

git commit: [SCM-709] REGRESSION: git status doesn't work if repository root is not the working directory All URI.create() calls now use GitStatusConsumer.resolveURI() so escaping-logic isn't spread over several classes

Updated Branches:
  refs/heads/master 7ee56421e -> 223b883b1


[SCM-709] REGRESSION: git status doesn't work if repository root is not the working directory
All URI.create() calls now use GitStatusConsumer.resolveURI() so escaping-logic isn't spread over several classes


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

Branch: refs/heads/master
Commit: 223b883b14e22a76d7550e374c69eb4ea9d22810
Parents: 7ee5642
Author: rfscholte <rf...@apache.org>
Authored: Wed May 22 23:14:17 2013 +0200
Committer: rfscholte <rf...@apache.org>
Committed: Wed May 22 23:14:17 2013 +0200

----------------------------------------------------------------------
 .../git/gitexe/command/add/GitAddCommand.java      |    2 +-
 .../gitexe/command/checkin/GitCheckInCommand.java  |    2 +-
 .../gitexe/command/status/GitStatusCommand.java    |    2 +-
 .../gitexe/command/status/GitStatusConsumer.java   |   20 ++++++++++++---
 4 files changed, 19 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-scm/blob/223b883b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/add/GitAddCommand.java
----------------------------------------------------------------------
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/add/GitAddCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/add/GitAddCommand.java
index 1ea1e07..c920dc5 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/add/GitAddCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/add/GitAddCommand.java
@@ -91,7 +91,7 @@ public class GitAddCommand
         }
         else
         {
-            relativeRepositoryPath = URI.create( stdout.getOutput().trim() ).relativize( fileSet.getBasedir().toURI() ); 
+            relativeRepositoryPath = GitStatusConsumer.resolveURI( stdout.getOutput().trim() , fileSet.getBasedir().toURI() ); 
         }
 
         // git-add doesn't show single files, but only summary :/

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/223b883b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommand.java
----------------------------------------------------------------------
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/checkin/GitCheckInCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommand.java
index a37aaaf..8af561f 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommand.java
@@ -117,7 +117,7 @@ public class GitCheckInCommand
             }
             else
             {
-                relativeRepositoryPath = URI.create( stdout.getOutput().trim() ).relativize( fileSet.getBasedir().toURI() ); 
+                relativeRepositoryPath = GitStatusConsumer.resolveURI( stdout.getOutput().trim(), fileSet.getBasedir().toURI() ); 
             }
 
             // git-commit doesn't show single files, but only summary :/

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/223b883b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusCommand.java
----------------------------------------------------------------------
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/status/GitStatusCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusCommand.java
index 133f5aa..d1be13b 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusCommand.java
@@ -65,7 +65,7 @@ public class GitStatusCommand
         }
         else
         {
-            relativeRepositoryPath = URI.create( stdout.getOutput().trim() ).relativize( fileSet.getBasedir().toURI() ); 
+            relativeRepositoryPath = GitStatusConsumer.resolveURI( stdout.getOutput().trim(), fileSet.getBasedir().toURI() ); 
         }
     	
         Commandline cl = createCommandLine( (GitScmProviderRepository) repo, fileSet );

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/223b883b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumer.java
----------------------------------------------------------------------
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/status/GitStatusConsumer.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumer.java
index 0f9a670..b0ac43a 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumer.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumer.java
@@ -220,10 +220,7 @@ public class GitStatusConsumer
     {
         if ( path != null )
         {
-            // When using URI.create, spaces need to be escaped but not the slashes, so we can't use URLEncoder.encode( String, String )
-            // new File( String ).toURI() results in an absolute URI while path is relative, so that can't be used either.
-            String str = fileEntry.replace( " ", "%20" );
-            return path.relativize( URI.create( str ) ).getPath();
+            return resolveURI( fileEntry, path ).getPath();
         }
         else
         {
@@ -231,6 +228,21 @@ public class GitStatusConsumer
         }
     }
 
+    /**
+     * 
+     * @param fileEntry the fileEntry, must not be {@code null}
+     * @param path the path, must not be {@code null}
+     * @return
+     */
+    public static URI resolveURI( String fileEntry, URI path )
+    {
+        // When using URI.create, spaces need to be escaped but not the slashes, so we can't use URLEncoder.encode( String, String )
+        // new File( String ).toURI() results in an absolute URI while path is relative, so that can't be used either.
+        String str = fileEntry.replace( " ", "%20" );
+        return path.relativize( URI.create( str ) );
+    }
+
+
     public List<ScmFile> getChangedFiles()
     {
         return changedFiles;