You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by st...@apache.org on 2014/03/17 22:01:23 UTC

git commit: SCM-740 proper git-status handling if pwd is not the git root directory

Repository: maven-scm
Updated Branches:
  refs/heads/master 29c1d1d42 -> b4aee5091


SCM-740 proper git-status handling if pwd is not the git root directory

thanks to Jan Novotny for catching this issue and providing a patch.
Applied with fixed imports and formatting.


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

Branch: refs/heads/master
Commit: b4aee5091bfbda166e879b005042b2b7d518436c
Parents: 29c1d1d
Author: Mark Struberg <st...@apache.org>
Authored: Mon Mar 17 21:58:04 2014 +0100
Committer: Mark Struberg <st...@apache.org>
Committed: Mon Mar 17 21:58:04 2014 +0100

----------------------------------------------------------------------
 .../command/status/GitStatusConsumer.java       | 11 ++++++++-
 .../command/status/GitStatusConsumerTest.java   | 25 +++++++++++++++++++-
 2 files changed, 34 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-scm/blob/b4aee509/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 2259223..017b388 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
@@ -213,7 +213,16 @@ public class GitStatusConsumer
 
     private boolean isFile( String file )
     {
-        return new File( workingDirectory, file ).isFile();
+        File targetFile;
+        if ( relativeRepositoryPath == null )
+        {
+            targetFile = new File( workingDirectory, file );
+        }
+        else
+        {
+            targetFile = new File( relativeRepositoryPath.getPath(), file );
+        }
+        return targetFile.isFile();
     }
 
     protected static String resolvePath( String fileEntry, URI path )

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/b4aee509/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumerTest.java
----------------------------------------------------------------------
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/status/GitStatusConsumerTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumerTest.java
index d9ff813..4758038 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumerTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumerTest.java
@@ -79,6 +79,15 @@ public class GitStatusConsumerTest
         return consumer.getChangedFiles();
     }
 
+    private List<ScmFile> getChangedFiles( String line, File workingDirectory, URI relativeRepoPath )
+    {
+        GitStatusConsumer consumer = new GitStatusConsumer( new DefaultLog(), workingDirectory, relativeRepoPath );
+
+        consumer.consumeLine( line );
+
+        return consumer.getChangedFiles();
+    }
+
     public void testConsumerUntrackedFile()
     {
         List<ScmFile> changedFiles = getChangedFiles( "?? project.xml", null );
@@ -139,6 +148,20 @@ public class GitStatusConsumerTest
         assertEquals( 1, changedFiles.size() );
     }
 
+	// SCM-740
+	public void testConsumerModifiedFileInComplexDirectorySetup() throws IOException {
+
+		File dir = createTempDirectory();
+		File subdir = new File( dir.getAbsolutePath() + "/subDirectory/" );
+		subdir.mkdir();
+		FileUtils.write( new File( subdir, "project.xml" ), "data" );
+
+		List<ScmFile> changedFiles = getChangedFiles( "M  subDirectory/project.xml", subdir, dir.toURI() );
+
+		assertNotNull( changedFiles );
+		assertEquals( 1, changedFiles.size() );
+	}
+
     public void testConsumerModifiedFileUnstaged()
     {
         List<ScmFile> changedFiles = getChangedFiles( "M  project.xml", null );
@@ -332,7 +355,7 @@ public class GitStatusConsumerTest
         assertEquals( "work with spaces/pom.xml", GitStatusConsumer.resolvePath( "work with spaces/pom.xml", null ) );
     }
 
-    private void testScmFile( ScmFile fileToTest, String expectedFilePath, ScmFileStatus expectedStatus )
+	private void testScmFile( ScmFile fileToTest, String expectedFilePath, ScmFileStatus expectedStatus )
     {
         assertEquals( expectedFilePath, fileToTest.getPath() );
         assertEquals( expectedStatus, fileToTest.getStatus() );