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/