You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2012/08/20 18:10:26 UTC
svn commit: r1375087 - in
/maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src:
main/java/org/apache/maven/scm/provider/git/gitexe/command/status/
test/java/org/apache/maven/scm/provider/git/gitexe/command/status/ ...
Author: olamy
Date: Mon Aug 20 16:10:26 2012
New Revision: 1375087
URL: http://svn.apache.org/viewvc?rev=1375087&view=rev
Log:
[SCM-686] Maven SCM failed to parse "git status" output if git messages are translated
Submitted by Ralf Thielow.
Modified:
maven/scm/trunk/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
maven/scm/trunk/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
maven/scm/trunk/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
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/status/gitstatus-empty.gitlog
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/status/gitstatus1.gitlog
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/status/gitstatus2.gitlog
Modified: maven/scm/trunk/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
URL: http://svn.apache.org/viewvc/maven/scm/trunk/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?rev=1375087&r1=1375086&r2=1375087&view=diff
==============================================================================
--- maven/scm/trunk/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 (original)
+++ maven/scm/trunk/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 Mon Aug 20 16:10:26 2012
@@ -70,7 +70,7 @@ public class GitStatusCommand
public static Commandline createCommandLine( GitScmProviderRepository repository, ScmFileSet fileSet )
{
Commandline cl = GitCommandLineUtils.getBaseGitCommandLine( fileSet.getBasedir(), "status" );
-
+ cl.addArguments( new String[] { "--porcelain" } );
return cl;
}
}
Modified: maven/scm/trunk/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
URL: http://svn.apache.org/viewvc/maven/scm/trunk/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?rev=1375087&r1=1375086&r2=1375087&view=diff
==============================================================================
--- maven/scm/trunk/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 (original)
+++ maven/scm/trunk/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 Mon Aug 20 16:10:26 2012
@@ -41,17 +41,17 @@ public class GitStatusConsumer
/**
* The pattern used to match added file lines
*/
- private static final String ADDED_PATTERN = "^#\\s*new file:\\s*(.*)";
+ private static final String ADDED_PATTERN = "^A[ M]* (.*)$";
/**
* The pattern used to match modified file lines
*/
- private static final String MODIFIED_PATTERN = "^#\\s*modified:\\s*(.*)";
+ private static final String MODIFIED_PATTERN = "^ *M[ M]* (.*)$";
/**
* The pattern used to match deleted file lines
*/
- private static final String DELETED_PATTERN = "^#\\s*deleted:\\s*(.*)";
+ private static final String DELETED_PATTERN = "^ *D * (.*)$";
/**
* @see #ADDED_PATTERN
Modified: maven/scm/trunk/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
URL: http://svn.apache.org/viewvc/maven/scm/trunk/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?rev=1375087&r1=1375086&r2=1375087&view=diff
==============================================================================
--- maven/scm/trunk/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 (original)
+++ maven/scm/trunk/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 Mon Aug 20 16:10:26 2012
@@ -38,11 +38,23 @@ public class GitStatusConsumerTest
extends PlexusTestCase
{
+ public void testConsumerUntrackedFile()
+ {
+ GitStatusConsumer consumer = new GitStatusConsumer( new DefaultLog(), null );
+
+ consumer.consumeLine( "?? project.xml" );
+
+ List<ScmFile> changedFiles = consumer.getChangedFiles();
+
+ assertNotNull( changedFiles );
+ assertEquals( 0, changedFiles.size() );
+ }
+
public void testConsumerAddedFile()
{
GitStatusConsumer consumer = new GitStatusConsumer( new DefaultLog(), null );
- consumer.consumeLine( "# new file: project.xml" );
+ consumer.consumeLine( "A project.xml" );
List<ScmFile> changedFiles = consumer.getChangedFiles();
@@ -50,6 +62,19 @@ public class GitStatusConsumerTest
assertEquals( 1, changedFiles.size() );
}
+ public void testConsumerAddedAndModifiedFile()
+ {
+ GitStatusConsumer consumer = new GitStatusConsumer( new DefaultLog(), null );
+
+ consumer.consumeLine( "AM project.xml" );
+
+ List<ScmFile> changedFiles = consumer.getChangedFiles();
+
+ assertNotNull( changedFiles );
+ assertEquals( 1, changedFiles.size() );
+ assertEquals( ScmFileStatus.ADDED, changedFiles.get( 0 ).getStatus() );
+ }
+
public void testConsumerAddedFileWithDirectoryAndNoFile()
throws IOException
{
@@ -57,7 +82,7 @@ public class GitStatusConsumerTest
GitStatusConsumer consumer = new GitStatusConsumer( new DefaultLog(), dir );
- consumer.consumeLine( "# new file: project.xml" );
+ consumer.consumeLine( "A project.xml" );
List changedFiles = consumer.getChangedFiles();
@@ -75,7 +100,7 @@ public class GitStatusConsumerTest
GitStatusConsumer consumer = new GitStatusConsumer( new DefaultLog(), dir );
- consumer.consumeLine( "# new file: project.xml" );
+ consumer.consumeLine( "A project.xml" );
List changedFiles = consumer.getChangedFiles();
@@ -89,7 +114,7 @@ public class GitStatusConsumerTest
{
GitStatusConsumer consumer = new GitStatusConsumer( new DefaultLog(), null );
- consumer.consumeLine( "# modified: project.xml" );
+ consumer.consumeLine( "M project.xml" );
List changedFiles = consumer.getChangedFiles();
@@ -97,6 +122,32 @@ public class GitStatusConsumerTest
assertEquals( 1, changedFiles.size() );
}
+ public void testConsumerModifiedFileUnstaged()
+ {
+ GitStatusConsumer consumer = new GitStatusConsumer( new DefaultLog(), null );
+
+ consumer.consumeLine( " M project.xml" );
+
+ List<ScmFile> changedFiles = consumer.getChangedFiles();
+
+ assertNotNull( changedFiles );
+ assertEquals( 1, changedFiles.size() );
+ assertEquals( ScmFileStatus.MODIFIED, changedFiles.get( 0 ).getStatus() );
+ }
+
+ public void testConsumerModifiedFileBothStagedAndUnstaged()
+ {
+ GitStatusConsumer consumer = new GitStatusConsumer( new DefaultLog(), null );
+
+ consumer.consumeLine( "MM project.xml" );
+
+ List<ScmFile> changedFiles = consumer.getChangedFiles();
+
+ assertNotNull( changedFiles );
+ assertEquals( 1, changedFiles.size() );
+ assertEquals( ScmFileStatus.MODIFIED, changedFiles.get( 0 ).getStatus() );
+ }
+
public void testConsumerModifiedFileWithDirectoryAndNoFile()
throws IOException
{
@@ -104,7 +155,7 @@ public class GitStatusConsumerTest
GitStatusConsumer consumer = new GitStatusConsumer( new DefaultLog(), dir );
- consumer.consumeLine( "# modified: project.xml" );
+ consumer.consumeLine( "M project.xml" );
List changedFiles = consumer.getChangedFiles();
@@ -122,7 +173,7 @@ public class GitStatusConsumerTest
GitStatusConsumer consumer = new GitStatusConsumer( new DefaultLog(), dir );
- consumer.consumeLine( "# modified: project.xml" );
+ consumer.consumeLine( "M project.xml" );
List changedFiles = consumer.getChangedFiles();
@@ -136,7 +187,7 @@ public class GitStatusConsumerTest
{
GitStatusConsumer consumer = new GitStatusConsumer( new DefaultLog(), null );
- consumer.consumeLine( "# deleted: Capfile" );
+ consumer.consumeLine( "D Capfile" );
List changedFiles = consumer.getChangedFiles();
@@ -144,6 +195,19 @@ public class GitStatusConsumerTest
assertEquals( 1, changedFiles.size() );
}
+ public void testConsumerRemovedFileUnstaged()
+ {
+ GitStatusConsumer consumer = new GitStatusConsumer( new DefaultLog(), null );
+
+ consumer.consumeLine( " D Capfile" );
+
+ List<ScmFile> changedFiles = consumer.getChangedFiles();
+
+ assertNotNull( changedFiles );
+ assertEquals( 1, changedFiles.size() );
+ assertEquals( ScmFileStatus.DELETED, changedFiles.get( 0 ).getStatus() );
+ }
+
public void testConsumerRemovedFileWithDirectoryAndNoFile()
throws IOException
{
@@ -151,7 +215,7 @@ public class GitStatusConsumerTest
GitStatusConsumer consumer = new GitStatusConsumer( new DefaultLog(), dir );
- consumer.consumeLine( "# deleted: Capfile" );
+ consumer.consumeLine( "D Capfile" );
List changedFiles = consumer.getChangedFiles();
@@ -168,7 +232,7 @@ public class GitStatusConsumerTest
GitStatusConsumer consumer = new GitStatusConsumer( new DefaultLog(), dir );
- consumer.consumeLine( "# deleted: Capfile" );
+ consumer.consumeLine( "D Capfile" );
List changedFiles = consumer.getChangedFiles();
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/status/gitstatus-empty.gitlog
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/status/gitstatus-empty.gitlog?rev=1375087&r1=1375086&r2=1375087&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/status/gitstatus-empty.gitlog (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/status/gitstatus-empty.gitlog Mon Aug 20 16:10:26 2012
@@ -1,7 +1,2 @@
-# Not currently on any branch.
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInConsumerTest.java
-# maven-scm-provider-gitexe/src/test/resources/git/checkin/
-nothing added to commit but untracked files present (use "git add" to track)
+?? maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInConsumerTest.java
+?? maven-scm-provider-gitexe/src/test/resources/git/checkin/
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/status/gitstatus1.gitlog
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/status/gitstatus1.gitlog?rev=1375087&r1=1375086&r2=1375087&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/status/gitstatus1.gitlog (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/status/gitstatus1.gitlog Mon Aug 20 16:10:26 2012
@@ -1,11 +1,2 @@
-# On branch master
-# Changes to be committed:
-# (use "git reset HEAD <file>..." to unstage)
-#
-# new file: project.xml
-#
-# Changed but not updated:
-# (use "git add <file>..." to update what will be committed)
-#
-# modified: readme.txt
-#
+A project.xml
+ M readme.txt
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/status/gitstatus2.gitlog
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/status/gitstatus2.gitlog?rev=1375087&r1=1375086&r2=1375087&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/status/gitstatus2.gitlog (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/status/gitstatus2.gitlog Mon Aug 20 16:10:26 2012
@@ -1,15 +1,6 @@
-# Not currently on any branch.
-# Changed but not updated:
-# (use "git add/rm <file>..." to update what will be committed)
-#
-# modified: maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/add/GitAddCommand.java
-# modified: maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommand.java
-# deleted: maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInConsumer.java
-# modified: maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumer.java
-#
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumerTest.java
-# maven-scm-provider-gitexe/src/test/resources/git/status/
-no changes added to commit (use "git add" and/or "git commit -a")
+M maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/add/GitAddCommand.java
+M maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommand.java
+D maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInConsumer.java
+M maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumer.java
+?? maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumerTest.java
+?? maven-scm-provider-gitexe/src/test/resources/git/status/