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() );