You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm-commits@maven.apache.org by ol...@apache.org on 2010/12/28 21:13:15 UTC
svn commit: r1053421 - 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/blame/
test/java/org/apache/maven/scm/provider/git/gitexe/command/blame/ te...
Author: olamy
Date: Tue Dec 28 20:13:15 2010
New Revision: 1053421
URL: http://svn.apache.org/viewvc?rev=1053421&view=rev
Log:
[SCM-592] Error parsing blame for git
Submitted by Evgeny Mandrikov.
Added:
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/blame/GitBlameConsumerTest.java (with props)
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame.out
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/blame/GitBlameCommand.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/blame/GitBlameConsumer.java
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/blame/GitBlameCommand.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/blame/GitBlameCommand.java?rev=1053421&r1=1053420&r2=1053421&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/blame/GitBlameCommand.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/blame/GitBlameCommand.java Tue Dec 28 20:13:15 2010
@@ -62,6 +62,7 @@ public class GitBlameCommand
{
Commandline cl = GitCommandLineUtils.getBaseGitCommandLine( workingDirectory, "blame" );
cl.createArg().setValue( "-c" );
+ cl.createArg().setValue( "-l" );
cl.createArg().setValue( filename );
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/blame/GitBlameConsumer.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/blame/GitBlameConsumer.java?rev=1053421&r1=1053420&r2=1053421&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/blame/GitBlameConsumer.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/blame/GitBlameConsumer.java Tue Dec 28 20:13:15 2010
@@ -22,7 +22,6 @@ package org.apache.maven.scm.provider.gi
import org.apache.maven.scm.command.blame.BlameLine;
import org.apache.maven.scm.log.ScmLogger;
import org.apache.maven.scm.util.AbstractConsumer;
-import org.apache.regexp.RE;
import java.util.ArrayList;
import java.util.Date;
@@ -37,37 +36,26 @@ public class GitBlameConsumer
{
private static final String GIT_TIMESTAMP_PATTERN = "yyyy-MM-dd HH:mm:ss Z";
- private static final String LINE_PATTERN = "(.*)\t\\((.*)\t(.*)\t.*\\)";
-
- /**
- * @see #LINE_PATTERN
- */
- private RE lineRegexp;
-
private List lines = new ArrayList();
public GitBlameConsumer( ScmLogger logger )
{
super( logger );
-
- lineRegexp = new RE( LINE_PATTERN );
}
public void consumeLine( String line )
{
- if ( lineRegexp.match( line ) )
+ String parts[] = line.split( "\t", 4 );
+ String revision = parts[0];
+ String author = parts[1].substring( 1 );
+ String dateTimeStr = parts[2];
+
+ Date dateTime = parseDate( dateTimeStr, null, GIT_TIMESTAMP_PATTERN );
+ getLines().add( new BlameLine( dateTime, revision, author ) );
+
+ if ( getLogger().isDebugEnabled() )
{
- String revision = lineRegexp.getParen( 1 );
- String author = lineRegexp.getParen( 2 );
- String dateTimeStr = lineRegexp.getParen( 3 );
-
- Date dateTime = parseDate( dateTimeStr, null, GIT_TIMESTAMP_PATTERN );
- getLines().add( new BlameLine( dateTime, revision, author ) );
-
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( author + " " + dateTimeStr );
- }
+ getLogger().debug( author + " " + dateTimeStr );
}
}
Added: 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/blame/GitBlameConsumerTest.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/blame/GitBlameConsumerTest.java?rev=1053421&view=auto
==============================================================================
--- 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/blame/GitBlameConsumerTest.java (added)
+++ 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/blame/GitBlameConsumerTest.java Tue Dec 28 20:13:15 2010
@@ -0,0 +1,42 @@
+package org.apache.maven.scm.provider.git.gitexe.command.blame;
+
+import junit.framework.Assert;
+import org.apache.maven.scm.command.blame.BlameLine;
+import org.apache.maven.scm.log.DefaultLog;
+import org.codehaus.plexus.PlexusTestCase;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+
+public class GitBlameConsumerTest
+ extends PlexusTestCase
+{
+ public void testConsumer()
+ throws Exception
+ {
+ GitBlameConsumer consumer = new GitBlameConsumer( new DefaultLog() );
+
+ File f = getTestFile( "/src/test/resources/git/blame/git-blame.out" );
+
+ BufferedReader r = new BufferedReader( new FileReader( f ) );
+
+ String line;
+
+ while ( ( line = r.readLine() ) != null )
+ {
+ consumer.consumeLine( line );
+ }
+
+ Assert.assertEquals( 73, consumer.getLines().size() );
+
+ BlameLine blameLine1 = (BlameLine) consumer.getLines().get( 11 );
+ Assert.assertEquals( "96cfe5d4", blameLine1.getRevision() );
+ Assert.assertEquals( "Tiago Bello Torres", blameLine1.getAuthor() );
+
+ BlameLine blameLine2 = (BlameLine) consumer.getLines().get( 35 );
+ Assert.assertEquals( "8748a722", blameLine2.getRevision() );
+ Assert.assertEquals( "Tiago Bello Torres", blameLine2.getAuthor() );
+
+ }
+}
Propchange: 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/blame/GitBlameConsumerTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: 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/blame/GitBlameConsumerTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame.out
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame.out?rev=1053421&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame.out (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame.out Tue Dec 28 20:13:15 2010
@@ -0,0 +1,73 @@
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 1)/*
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 2) * Copyright (c) 1999-2009 Touch Tecnologia e Informatica Ltda.
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 3) * Gomes de Carvalho, 1666, 3o. Andar, Vila Olimpia, Sao Paulo, SP, Brasil.
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 4) * Todos os direitos reservados.
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 5) *
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 6) * Este software e confidencial e de propriedade da Touch Tecnologia e
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 7) * Informatica Ltda. (Informacao Confidencial). As informacoes contidas neste
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 8) * arquivo nao podem ser publicadas, e seu uso esta limitado de acordo com os
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 9) * termos do contrato de licenca.
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 10) */
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 11)
+96cfe5d4 (Tiago Bello Torres 2010-06-24 14:21:29 -0300 12)package br.com.touchtec.veris.service;
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 13)
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 14)import br.com.touchtec.exception.TouchException;
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 15)import br.com.touchtec.message.Message;
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 16)
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 17)/**
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 18) *
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 19) *
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 20) * @author jorge
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 21) * @since
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 22) *
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 23) */
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 24)public class VerisUserAuthenticationException extends TouchException {
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 25)
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 26) /**
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 27) *
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 28) */
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 29) private static final long serialVersionUID = 1L;
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 30)
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 31) /**
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 32) * @param message
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 33) * @since
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 34) */
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 35) public VerisUserAuthenticationException(String message) {
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 36) super(message);
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 37) }
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 38)
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 39) /**
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 40) * @param cause
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 41) * @since
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 42) */
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 43) public VerisUserAuthenticationException(Throwable cause) {
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 44) super(cause);
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 45) }
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 46)
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 47) /**
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 48) * @param msg
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 49) * @since
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 50) */
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 51) public VerisUserAuthenticationException(Message msg) {
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 52) super(msg);
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 53) }
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 54)
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 55) /**
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 56) * @param message
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 57) * @param cause
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 58) * @since
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 59) */
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 60) public VerisUserAuthenticationException(String message, Throwable cause) {
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 61) super(message, cause);
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 62) }
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 63)
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 64) /**
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 65) * @param msg
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 66) * @param cause
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 67) * @since
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 68) */
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 69) public VerisUserAuthenticationException(Message msg, Throwable cause) {
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 70) super(msg, cause);
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 71) }
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 72)
+8748a722 (Tiago Bello Torres 2010-06-03 17:59:00 -0300 73)}