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 st...@apache.org on 2011/02/12 00:39:30 UTC
svn commit: r1069986 - 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: struberg
Date: Fri Feb 11 23:39:29 2011
New Revision: 1069986
URL: http://svn.apache.org/viewvc?rev=1069986&view=rev
Log:
[SCM-606] rewrite GitBlameCommand to use git-blame --porcelain
Added:
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame-3.out
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame-empty.out
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame-new-file.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
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
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
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=1069986&r1=1069985&r2=1069986&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 Fri Feb 11 23:39:29 2011
@@ -54,7 +54,7 @@ public class GitBlameCommand
int exitCode = GitCommandLineUtils.execute( cl, consumer, stderr, getLogger() );
if ( exitCode != 0 )
{
- throw new UnsupportedOperationException();
+ return new BlameScmResult(cl.toString(), "The git blame command failed.", stderr.getOutput(), false);
}
return new BlameScmResult( cl.toString(), consumer.getLines() );
}
@@ -62,8 +62,7 @@ public class GitBlameCommand
public static Commandline createCommandLine( File workingDirectory, String filename )
{
Commandline cl = GitCommandLineUtils.getBaseGitCommandLine( workingDirectory, "blame" );
- cl.createArg().setValue( "-c" );
- cl.createArg().setValue( "-l" );
+ cl.createArg().setValue( "--porcelain" );
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=1069986&r1=1069985&r2=1069986&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 Fri Feb 11 23:39:29 2011
@@ -23,22 +23,32 @@ import org.apache.maven.scm.command.blam
import org.apache.maven.scm.log.ScmLogger;
import org.apache.maven.scm.util.AbstractConsumer;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
/**
+ * Parses the --porcelain format of git-blame
+ *
* @author Evgeny Mandrikov
* @author Olivier Lamy
+ * @author Mark Struberg
* @since 1.4
*/
public class GitBlameConsumer
extends AbstractConsumer
{
- private static final String GIT_TIMESTAMP_PATTERN = "yyyy-MM-dd HH:mm:ss Z";
+ private final static String GIT_COMMITTER_PREFIX = "committer";
+ private final static String GIT_COMMITTER = GIT_COMMITTER_PREFIX + " ";
+ private final static String GIT_COMMITTER_TIME = GIT_COMMITTER_PREFIX + "-time ";
+
private List<BlameLine> lines = new ArrayList<BlameLine>();
+ private String revision = null;
+ private String author = null;
+ private Date time = null;
+
+ private boolean expectRevisionLine = true;
+
public GitBlameConsumer( ScmLogger logger )
{
super( logger );
@@ -46,17 +56,53 @@ public class GitBlameConsumer
public void consumeLine( String line )
{
- String parts[] = line.split( "\t", 4 );
- String revision = parts[0];
- String author = parts[1].substring( 1 );
- String dateTimeStr = parts[2];
+ if ( line == null )
+ {
+ return;
+ }
- Date dateTime = parseDate( dateTimeStr, null, GIT_TIMESTAMP_PATTERN );
- getLines().add( new BlameLine( dateTime, revision, author ) );
+ if (expectRevisionLine)
+ {
+ // this is the revision line
+ String parts[] = line.split( "\\s", 4 );
+
+ if ( parts.length >= 1)
+ {
+ revision = parts[0];
+ }
- if ( getLogger().isDebugEnabled() )
+ expectRevisionLine = false;
+ }
+ else
{
- getLogger().debug( author + " " + dateTimeStr );
+ if ( line.startsWith( GIT_COMMITTER ) )
+ {
+ author = line.substring( GIT_COMMITTER.length() );
+ return;
+ }
+
+ if ( line.startsWith( GIT_COMMITTER_TIME ) )
+ {
+ String timeStr = line.substring( GIT_COMMITTER_TIME.length() );
+ time = new Date( Long.parseLong( timeStr ) * 1000L );
+ return;
+ }
+
+
+ if ( line.startsWith( "\t" ) )
+ {
+ // this is the content line.
+ // we actually don't need the content, but this is the right time to add the blame line
+ getLines().add( new BlameLine( time, revision, author ) );
+
+ if ( getLogger().isDebugEnabled() )
+ {
+ getLogger().debug( author + " " + time.toGMTString() );
+ }
+
+ expectRevisionLine = true;
+ }
+
}
}
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/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=1069986&r1=1069985&r2=1069986&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/blame/GitBlameConsumerTest.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/blame/GitBlameConsumerTest.java Fri Feb 11 23:39:29 2011
@@ -8,16 +8,85 @@ import org.codehaus.plexus.PlexusTestCas
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
+import java.io.IOException;
+/**
+ * Test the {@link GitBlameConsumer} in various different situations.
+ * Depending on the underlying operating system we might get
+ * slightly different output from a <pre>git blame</pre> commandline invocation.
+ */
public class GitBlameConsumerTest
extends PlexusTestCase
{
+ public void testConsumerEasy()
+ throws Exception
+ {
+ GitBlameConsumer consumer = consumeFile( "/src/test/resources/git/blame/git-blame-3.out" );
+
+ Assert.assertEquals( 36, consumer.getLines().size() );
+
+ BlameLine blameLine = (BlameLine) consumer.getLines().get( 11 );
+ Assert.assertEquals( "e670863b2b03e158c59f34af1fee20f91b2bd852", blameLine.getRevision() );
+ Assert.assertEquals( "Mark Struberg", blameLine.getAuthor() );
+ Assert.assertNotNull( blameLine.getDate() );
+ }
+
+
public void testConsumer()
throws Exception
{
+ GitBlameConsumer consumer = consumeFile( "/src/test/resources/git/blame/git-blame.out" );
+
+ Assert.assertEquals( 187, consumer.getLines().size() );
+
+ BlameLine blameLine = (BlameLine) consumer.getLines().get( 11 );
+ Assert.assertEquals( "e670863b2b03e158c59f34af1fee20f91b2bd852", blameLine.getRevision() );
+ Assert.assertEquals( "Mark Struberg", blameLine.getAuthor() );
+ Assert.assertNotNull( blameLine.getDate() );
+ }
+
+ /**
+ * Test what happens if a git-blame command got invoked on a
+ * file which has no content.
+ */
+ public void testConsumerEmptyFile()
+ throws Exception
+ {
+ GitBlameConsumer consumer = consumeFile( "/src/test/resources/git/blame/git-blame-empty.out" );
+
+ Assert.assertEquals( 0, consumer.getLines().size() );
+ }
+
+
+ /**
+ * Test what happens if a git-blame command got invoked on a
+ * file which didn't got added to the git repo yet.
+ */
+ public void testConsumerOnNewFile()
+ throws Exception
+ {
+ GitBlameConsumer consumer = consumeFile( "/src/test/resources/git/blame/git-blame-new-file.out" );
+
+ Assert.assertEquals( 3, consumer.getLines().size() );
+ BlameLine blameLine = (BlameLine) consumer.getLines().get( 0 );
+ Assert.assertNotNull(blameLine);
+ Assert.assertEquals( "0000000000000000000000000000000000000000", blameLine.getRevision() );
+ Assert.assertEquals("Not Committed Yet", blameLine.getAuthor());
+
+ }
+
+ /**
+ * Consume all lines in the given file with a fresh {@link GitBlameConsumer}.
+ *
+ * @param fileName
+ * @return the resulting {@link GitBlameConsumer}
+ * @throws IOException
+ */
+ private GitBlameConsumer consumeFile( String fileName ) throws IOException
+ {
GitBlameConsumer consumer = new GitBlameConsumer( new DefaultLog() );
- File f = getTestFile( "/src/test/resources/git/blame/git-blame.out" );
+ File f = getTestFile( fileName );
BufferedReader r = new BufferedReader( new FileReader( f ) );
@@ -27,16 +96,6 @@ public class GitBlameConsumerTest
{
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() );
-
+ return consumer;
}
}
Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame-3.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-3.out?rev=1069986&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame-3.out (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame-3.out Fri Feb 11 23:39:29 2011
@@ -0,0 +1,83 @@
+e670863b2b03e158c59f34af1fee20f91b2bd852 1 1 36
+author Mark Struberg
+author-mail <st...@yahoo.de>
+author-time 1195766163
+author-tz +0100
+committer Mark Struberg
+committer-mail <st...@yahoo.de>
+committer-time 1195766163
+committer-tz +0100
+summary initial version
+boundary
+filename pom.xml
+ <?xml version="1.0" encoding="UTF-8"?><!--
+e670863b2b03e158c59f34af1fee20f91b2bd852 2 2
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+e670863b2b03e158c59f34af1fee20f91b2bd852 3 3
+ ~ or more contributor license agreements. See the NOTICE file
+e670863b2b03e158c59f34af1fee20f91b2bd852 4 4
+ ~ distributed with this work for additional information
+e670863b2b03e158c59f34af1fee20f91b2bd852 5 5
+ ~ regarding copyright ownership. The ASF licenses this file
+e670863b2b03e158c59f34af1fee20f91b2bd852 6 6
+ ~ to you under the Apache License, Version 2.0 (the
+e670863b2b03e158c59f34af1fee20f91b2bd852 7 7
+ ~ "License"); you may not use this file except in compliance
+e670863b2b03e158c59f34af1fee20f91b2bd852 8 8
+ ~ with the License. You may obtain a copy of the License at
+e670863b2b03e158c59f34af1fee20f91b2bd852 9 9
+ ~
+e670863b2b03e158c59f34af1fee20f91b2bd852 10 10
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+e670863b2b03e158c59f34af1fee20f91b2bd852 11 11
+ ~
+e670863b2b03e158c59f34af1fee20f91b2bd852 12 12
+ ~ Unless required by applicable law or agreed to in writing,
+e670863b2b03e158c59f34af1fee20f91b2bd852 13 13
+ ~ software distributed under the License is distributed on an
+e670863b2b03e158c59f34af1fee20f91b2bd852 14 14
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+e670863b2b03e158c59f34af1fee20f91b2bd852 15 15
+ ~ KIND, either express or implied. See the License for the
+e670863b2b03e158c59f34af1fee20f91b2bd852 16 16
+ ~ specific language governing permissions and limitations
+e670863b2b03e158c59f34af1fee20f91b2bd852 17 17
+ ~ under the License.
+e670863b2b03e158c59f34af1fee20f91b2bd852 18 18
+ -->
+e670863b2b03e158c59f34af1fee20f91b2bd852 19 19
+
+e670863b2b03e158c59f34af1fee20f91b2bd852 20 20
+ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+e670863b2b03e158c59f34af1fee20f91b2bd852 21 21
+ <parent>
+e670863b2b03e158c59f34af1fee20f91b2bd852 22 22
+ <artifactId>maven-scm-providers</artifactId>
+e670863b2b03e158c59f34af1fee20f91b2bd852 23 23
+ <groupId>org.apache.maven.scm</groupId>
+e670863b2b03e158c59f34af1fee20f91b2bd852 24 24
+ <version>1.0</version>
+e670863b2b03e158c59f34af1fee20f91b2bd852 25 25
+ </parent>
+e670863b2b03e158c59f34af1fee20f91b2bd852 26 26
+ <modelVersion>4.0.0</modelVersion>
+e670863b2b03e158c59f34af1fee20f91b2bd852 27 27
+ <artifactId>maven-scm-providers-git</artifactId>
+e670863b2b03e158c59f34af1fee20f91b2bd852 28 28
+ <packaging>pom</packaging>
+e670863b2b03e158c59f34af1fee20f91b2bd852 29 29
+ <name>Maven SCM git Provider - Parent</name>
+e670863b2b03e158c59f34af1fee20f91b2bd852 30 30
+ <version>1.1-SNAPSHOT</version>
+e670863b2b03e158c59f34af1fee20f91b2bd852 31 31
+ <modules>
+e670863b2b03e158c59f34af1fee20f91b2bd852 32 32
+ <module>maven-scm-provider-git-commons</module>
+e670863b2b03e158c59f34af1fee20f91b2bd852 33 33
+ <module>maven-scm-provider-gitexe</module>
+e670863b2b03e158c59f34af1fee20f91b2bd852 34 34
+ <module>maven-scm-provider-gittest</module>
+e670863b2b03e158c59f34af1fee20f91b2bd852 35 35
+ </modules>
+e670863b2b03e158c59f34af1fee20f91b2bd852 36 36
+ </project>
Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame-empty.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-empty.out?rev=1069986&view=auto
==============================================================================
(empty)
Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame-new-file.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-new-file.out?rev=1069986&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame-new-file.out (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame-new-file.out Fri Feb 11 23:39:29 2011
@@ -0,0 +1,16 @@
+0000000000000000000000000000000000000000 1 1 3
+author Not Committed Yet
+author-mail <not.committed.yet>
+author-time 1297466272
+author-tz +0100
+committer Not Committed Yet
+committer-mail <not.committed.yet>
+committer-time 1297466272
+committer-tz +0100
+summary Version of newfile from newfile
+filename newfile
+ new file
+0000000000000000000000000000000000000000 2 2
+ which is not yet checked in
+0000000000000000000000000000000000000000 3 3
+ containing 3 lines of text
Modified: 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=1069986&r1=1069985&r2=1069986&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame.out (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/git/blame/git-blame.out Fri Feb 11 23:39:29 2011
@@ -1,73 +1,451 @@
-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)}
+e670863b2b03e158c59f34af1fee20f91b2bd852 1 1 21
+author Mark Struberg
+author-mail <st...@yahoo.de>
+author-time 1195766163
+author-tz +0100
+committer Mark Struberg
+committer-mail <st...@yahoo.de>
+committer-time 1195766163
+committer-tz +0100
+summary initial version
+boundary
+filename maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
+ package org.apache.maven.scm.provider.git.gitexe.command.checkout;
+e670863b2b03e158c59f34af1fee20f91b2bd852 2 2
+
+e670863b2b03e158c59f34af1fee20f91b2bd852 3 3
+ /*
+e670863b2b03e158c59f34af1fee20f91b2bd852 4 4
+ * Licensed to the Apache Software Foundation (ASF) under one
+e670863b2b03e158c59f34af1fee20f91b2bd852 5 5
+ * or more contributor license agreements. See the NOTICE file
+e670863b2b03e158c59f34af1fee20f91b2bd852 6 6
+ * distributed with this work for additional information
+e670863b2b03e158c59f34af1fee20f91b2bd852 7 7
+ * regarding copyright ownership. The ASF licenses this file
+e670863b2b03e158c59f34af1fee20f91b2bd852 8 8
+ * to you under the Apache License, Version 2.0 (the
+e670863b2b03e158c59f34af1fee20f91b2bd852 9 9
+ * "License"); you may not use this file except in compliance
+e670863b2b03e158c59f34af1fee20f91b2bd852 10 10
+ * with the License. You may obtain a copy of the License at
+e670863b2b03e158c59f34af1fee20f91b2bd852 11 11
+ *
+e670863b2b03e158c59f34af1fee20f91b2bd852 12 12
+ * http://www.apache.org/licenses/LICENSE-2.0
+e670863b2b03e158c59f34af1fee20f91b2bd852 13 13
+ *
+e670863b2b03e158c59f34af1fee20f91b2bd852 14 14
+ * Unless required by applicable law or agreed to in writing,
+e670863b2b03e158c59f34af1fee20f91b2bd852 15 15
+ * software distributed under the License is distributed on an
+e670863b2b03e158c59f34af1fee20f91b2bd852 16 16
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+e670863b2b03e158c59f34af1fee20f91b2bd852 17 17
+ * KIND, either express or implied. See the License for the
+e670863b2b03e158c59f34af1fee20f91b2bd852 18 18
+ * specific language governing permissions and limitations
+e670863b2b03e158c59f34af1fee20f91b2bd852 19 19
+ * under the License.
+e670863b2b03e158c59f34af1fee20f91b2bd852 20 20
+ */
+e670863b2b03e158c59f34af1fee20f91b2bd852 21 21
+
+e670863b2b03e158c59f34af1fee20f91b2bd852 23 22 2
+ import org.apache.maven.scm.ScmException;
+e670863b2b03e158c59f34af1fee20f91b2bd852 24 23
+ import org.apache.maven.scm.ScmFileSet;
+ee00bb6815bf9d5844073309534c652c591ae313 24 24 1
+author Mark Struberg
+author-mail <st...@yahoo.de>
+author-time 1196968572
+author-tz +0100
+committer Mark Struberg
+committer-mail <st...@yahoo.de>
+committer-time 1196968572
+committer-tz +0100
+summary git-branch added and improved branch/tag handling
+previous a4984b7e83eecf5774bde8b2625d44ec72679793 maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
+filename maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
+ import org.apache.maven.scm.ScmFileStatus;
+ed6a2c5cab54dda610c09c31c242dc7579260422 25 25 1
+author Mark Struberg
+author-mail <st...@yahoo.de>
+author-time 1196973164
+author-tz +0100
+committer Mark Struberg
+committer-mail <st...@yahoo.de>
+committer-time 1196973164
+committer-tz +0100
+summary fixed broken tag command
+previous ee00bb6815bf9d5844073309534c652c591ae313 maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
+filename maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
+ import org.apache.maven.scm.ScmTag;
+e670863b2b03e158c59f34af1fee20f91b2bd852 27 26 4
+ import org.apache.maven.scm.ScmVersion;
+e670863b2b03e158c59f34af1fee20f91b2bd852 28 27
+ import org.apache.maven.scm.command.checkout.AbstractCheckOutCommand;
+e670863b2b03e158c59f34af1fee20f91b2bd852 29 28
+ import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+e670863b2b03e158c59f34af1fee20f91b2bd852 30 29
+ import org.apache.maven.scm.provider.ScmProviderRepository;
+e670863b2b03e158c59f34af1fee20f91b2bd852 32 30 3
+ import org.apache.maven.scm.provider.git.command.GitCommand;
+e670863b2b03e158c59f34af1fee20f91b2bd852 33 31
+ import org.apache.maven.scm.provider.git.repository.GitScmProviderRepository;
+e670863b2b03e158c59f34af1fee20f91b2bd852 34 32
+ import org.apache.maven.scm.provider.git.gitexe.command.GitCommandLineUtils;
+57fd77f4b848e4a2cafd0b1c3cb0ca535b3e9f4a 32 33 2
+author Mark Struberg
+author-mail <st...@yahoo.de>
+author-time 1196410907
+author-tz +0100
+committer Mark Struberg
+committer-mail <st...@yahoo.de>
+committer-time 1196410907
+committer-tz +0100
+summary first draft of tag command for git
+previous 51a69707a2d55f311d010fbede9db4d0de61ac15 maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
+filename maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
+ import org.apache.maven.scm.provider.git.gitexe.command.list.GitListCommand;
+57fd77f4b848e4a2cafd0b1c3cb0ca535b3e9f4a 33 34
+ import org.apache.maven.scm.provider.git.gitexe.command.list.GitListConsumer;
+e670863b2b03e158c59f34af1fee20f91b2bd852 35 35 1
+ import org.codehaus.plexus.util.StringUtils;
+e670863b2b03e158c59f34af1fee20f91b2bd852 37 36 6
+ import org.codehaus.plexus.util.cli.CommandLineUtils;
+e670863b2b03e158c59f34af1fee20f91b2bd852 38 37
+ import org.codehaus.plexus.util.cli.Commandline;
+e670863b2b03e158c59f34af1fee20f91b2bd852 39 38
+
+e670863b2b03e158c59f34af1fee20f91b2bd852 40 39
+ import java.io.File;
+e670863b2b03e158c59f34af1fee20f91b2bd852 41 40
+
+e670863b2b03e158c59f34af1fee20f91b2bd852 42 41
+ /**
+57fd77f4b848e4a2cafd0b1c3cb0ca535b3e9f4a 41 42 1
+ * @author <a href="mailto:struberg@yahoo.de">Mark Struberg</a>
+e670863b2b03e158c59f34af1fee20f91b2bd852 45 43 1
+ */
+57fd77f4b848e4a2cafd0b1c3cb0ca535b3e9f4a 43 44 1
+ public class GitCheckOutCommand extends AbstractCheckOutCommand implements GitCommand
+e670863b2b03e158c59f34af1fee20f91b2bd852 49 45 1
+ {
+7c14cf0301dbb6d1379c1801a703b2641c22f348 47 46 5
+author Mark Struberg
+author-mail <st...@yahoo.de>
+author-time 1195869083
+author-tz +0100
+committer Mark Struberg
+committer-mail <st...@yahoo.de>
+committer-time 1195869083
+committer-tz +0100
+summary tck continued until still missing 'checkin'
+previous e670863b2b03e158c59f34af1fee20f91b2bd852 maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
+filename maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
+ /**
+7c14cf0301dbb6d1379c1801a703b2641c22f348 48 47
+ * For git, the given repository is a remote one.
+7c14cf0301dbb6d1379c1801a703b2641c22f348 49 48
+ * We have to clone it first if the working directory does not contain a git repo yet,
+7c14cf0301dbb6d1379c1801a703b2641c22f348 50 49
+ * otherwise we have to git-pull it.
+7c14cf0301dbb6d1379c1801a703b2641c22f348 51 50
+ *
+57fd77f4b848e4a2cafd0b1c3cb0ca535b3e9f4a 50 51 1
+ * TODO We currently assume a '.git' directory, so this does not work for --bare repos
+7c14cf0301dbb6d1379c1801a703b2641c22f348 53 52 1
+ */
+e670863b2b03e158c59f34af1fee20f91b2bd852 50 53 6
+ protected CheckOutScmResult executeCheckOutCommand( ScmProviderRepository repo, ScmFileSet fileSet,
+e670863b2b03e158c59f34af1fee20f91b2bd852 51 54
+ ScmVersion version )
+e670863b2b03e158c59f34af1fee20f91b2bd852 52 55
+ throws ScmException
+e670863b2b03e158c59f34af1fee20f91b2bd852 53 56
+ {
+e670863b2b03e158c59f34af1fee20f91b2bd852 54 57
+ GitScmProviderRepository repository = (GitScmProviderRepository) repo;
+e670863b2b03e158c59f34af1fee20f91b2bd852 55 58
+
+7c14cf0301dbb6d1379c1801a703b2641c22f348 60 59 5
+ if ( GitScmProviderRepository.PROTOCOL_FILE.equals( repository.getProtocol() ) &&
+7c14cf0301dbb6d1379c1801a703b2641c22f348 61 60
+ repository.getUrl().indexOf( fileSet.getBasedir().getPath() ) >= 0 )
+7c14cf0301dbb6d1379c1801a703b2641c22f348 62 61
+ {
+7c14cf0301dbb6d1379c1801a703b2641c22f348 63 62
+ throw new ScmException( "remote repository must not be the working directory" );
+7c14cf0301dbb6d1379c1801a703b2641c22f348 64 63
+ }
+e670863b2b03e158c59f34af1fee20f91b2bd852 57 64 1
+
+7c14cf0301dbb6d1379c1801a703b2641c22f348 66 65 3
+ int exitCode;
+7c14cf0301dbb6d1379c1801a703b2641c22f348 67 66
+
+7c14cf0301dbb6d1379c1801a703b2641c22f348 68 67
+ CommandLineUtils.StringStreamConsumer stdout = new CommandLineUtils.StringStreamConsumer();
+e670863b2b03e158c59f34af1fee20f91b2bd852 60 68 1
+ CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer();
+7c14cf0301dbb6d1379c1801a703b2641c22f348 71 69 1
+
+ee00bb6815bf9d5844073309534c652c591ae313 71 70 3
+
+ee00bb6815bf9d5844073309534c652c591ae313 72 71
+ if ( !fileSet.getBasedir().exists() ||
+ee00bb6815bf9d5844073309534c652c591ae313 73 72
+ !( new File( fileSet.getBasedir(), ".git" ).exists() ) )
+7c14cf0301dbb6d1379c1801a703b2641c22f348 89 73 8
+ {
+7c14cf0301dbb6d1379c1801a703b2641c22f348 90 74
+ if ( fileSet.getBasedir().exists() )
+7c14cf0301dbb6d1379c1801a703b2641c22f348 91 75
+ {
+7c14cf0301dbb6d1379c1801a703b2641c22f348 92 76
+ // git refuses to clone otherwise
+7c14cf0301dbb6d1379c1801a703b2641c22f348 93 77
+ fileSet.getBasedir().delete();
+7c14cf0301dbb6d1379c1801a703b2641c22f348 94 78
+ }
+7c14cf0301dbb6d1379c1801a703b2641c22f348 95 79
+
+7c14cf0301dbb6d1379c1801a703b2641c22f348 96 80
+ // no git repo seems to exist, let's clone the original repo
+57fd77f4b848e4a2cafd0b1c3cb0ca535b3e9f4a 92 81 1
+ Commandline clClone = createCloneCommand( repository, fileSet.getBasedir() );
+7c14cf0301dbb6d1379c1801a703b2641c22f348 98 82 1
+
+52733aa427041cafd760833cb068ffe897fd35db 96 83 2
+author Mark Struberg
+author-mail <st...@yahoo.de>
+author-time 1196168736
+author-tz +0100
+committer Mark Struberg
+committer-mail <st...@yahoo.de>
+committer-time 1196168736
+committer-tz +0100
+summary fixed a GitCommandLineUtil and provice first version of the checkin command.
+previous cef708a0aa71cc72f12eb6755513294f720ad858 maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
+filename maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
+ exitCode = GitCommandLineUtils.execute( clClone, stdout, stderr, getLogger() );
+52733aa427041cafd760833cb068ffe897fd35db 97 84
+ if ( exitCode != 0 )
+7c14cf0301dbb6d1379c1801a703b2641c22f348 104 85 1
+ {
+57fd77f4b848e4a2cafd0b1c3cb0ca535b3e9f4a 97 86 1
+ return new CheckOutScmResult( clClone.toString(), "The git-clone command failed.", stderr.getOutput(), false );
+7c14cf0301dbb6d1379c1801a703b2641c22f348 106 87 2
+ }
+7c14cf0301dbb6d1379c1801a703b2641c22f348 107 88
+ }
+ee00bb6815bf9d5844073309534c652c591ae313 90 89 13
+
+ee00bb6815bf9d5844073309534c652c591ae313 91 90
+ if ( fileSet.getBasedir().exists() &&
+ee00bb6815bf9d5844073309534c652c591ae313 92 91
+ new File( fileSet.getBasedir(), ".git" ).exists() )
+ee00bb6815bf9d5844073309534c652c591ae313 93 92
+ {
+ee00bb6815bf9d5844073309534c652c591ae313 94 93
+ // git repo exists, so we must git-pull the changes
+ee00bb6815bf9d5844073309534c652c591ae313 95 94
+ Commandline clPull = createPullCommand( repository, fileSet.getBasedir(), version );
+ee00bb6815bf9d5844073309534c652c591ae313 96 95
+
+ee00bb6815bf9d5844073309534c652c591ae313 97 96
+ exitCode = GitCommandLineUtils.execute( clPull, stdout, stderr, getLogger() );
+ee00bb6815bf9d5844073309534c652c591ae313 98 97
+ if ( exitCode != 0 )
+ee00bb6815bf9d5844073309534c652c591ae313 99 98
+ {
+ee00bb6815bf9d5844073309534c652c591ae313 100 99
+ return new CheckOutScmResult( clPull.toString(), "The git-pull command failed.", stderr.getOutput(), false );
+ee00bb6815bf9d5844073309534c652c591ae313 101 100
+ }
+ee00bb6815bf9d5844073309534c652c591ae313 102 101
+ }
+7c14cf0301dbb6d1379c1801a703b2641c22f348 108 102 3
+
+7c14cf0301dbb6d1379c1801a703b2641c22f348 109 103
+ // and now lets do the git-checkout itself
+7c14cf0301dbb6d1379c1801a703b2641c22f348 110 104
+ Commandline cl = createCommandLine( repository, fileSet.getBasedir(), version );
+e670863b2b03e158c59f34af1fee20f91b2bd852 61 105 1
+
+52733aa427041cafd760833cb068ffe897fd35db 108 106 1
+ exitCode = GitCommandLineUtils.execute( cl, stdout, stderr, getLogger() );
+e670863b2b03e158c59f34af1fee20f91b2bd852 76 107 2
+ if ( exitCode != 0 )
+e670863b2b03e158c59f34af1fee20f91b2bd852 77 108
+ {
+57fd77f4b848e4a2cafd0b1c3cb0ca535b3e9f4a 107 109 1
+ return new CheckOutScmResult( cl.toString(), "The git-checkout command failed.", stderr.getOutput(), false );
+e670863b2b03e158c59f34af1fee20f91b2bd852 79 110 2
+ }
+e670863b2b03e158c59f34af1fee20f91b2bd852 80 111
+
+7c14cf0301dbb6d1379c1801a703b2641c22f348 131 112 1
+ // and now search for the files
+ee00bb6815bf9d5844073309534c652c591ae313 114 113 3
+ GitListConsumer listConsumer = new GitListConsumer( getLogger()
+ee00bb6815bf9d5844073309534c652c591ae313 115 114
+ , fileSet.getBasedir()
+ee00bb6815bf9d5844073309534c652c591ae313 116 115
+ , ScmFileStatus.CHECKED_IN);
+57fd77f4b848e4a2cafd0b1c3cb0ca535b3e9f4a 112 116 2
+
+57fd77f4b848e4a2cafd0b1c3cb0ca535b3e9f4a 113 117
+ Commandline clList = GitListCommand.createCommandLine( repository, fileSet.getBasedir() );
+7c14cf0301dbb6d1379c1801a703b2641c22f348 133 118 1
+
+57fd77f4b848e4a2cafd0b1c3cb0ca535b3e9f4a 115 119 1
+ exitCode = GitCommandLineUtils.execute( clList, listConsumer, stderr, getLogger() );
+7c14cf0301dbb6d1379c1801a703b2641c22f348 143 120 2
+ if ( exitCode != 0 )
+7c14cf0301dbb6d1379c1801a703b2641c22f348 144 121
+ {
+57fd77f4b848e4a2cafd0b1c3cb0ca535b3e9f4a 118 122 1
+ return new CheckOutScmResult( clList.toString(), "The git-ls-files command failed.", stderr.getOutput(), false );
+7c14cf0301dbb6d1379c1801a703b2641c22f348 146 123 2
+ }
+7c14cf0301dbb6d1379c1801a703b2641c22f348 147 124
+
+57fd77f4b848e4a2cafd0b1c3cb0ca535b3e9f4a 121 125 1
+ return new CheckOutScmResult( cl.toString(), listConsumer.getListedFiles() );
+e670863b2b03e158c59f34af1fee20f91b2bd852 82 126 11
+ }
+e670863b2b03e158c59f34af1fee20f91b2bd852 83 127
+
+e670863b2b03e158c59f34af1fee20f91b2bd852 84 128
+ // ----------------------------------------------------------------------
+e670863b2b03e158c59f34af1fee20f91b2bd852 85 129
+ //
+e670863b2b03e158c59f34af1fee20f91b2bd852 86 130
+ // ----------------------------------------------------------------------
+e670863b2b03e158c59f34af1fee20f91b2bd852 87 131
+
+e670863b2b03e158c59f34af1fee20f91b2bd852 88 132
+ public static Commandline createCommandLine( GitScmProviderRepository repository, File workingDirectory,
+e670863b2b03e158c59f34af1fee20f91b2bd852 89 133
+ ScmVersion version )
+e670863b2b03e158c59f34af1fee20f91b2bd852 90 134
+ {
+e670863b2b03e158c59f34af1fee20f91b2bd852 91 135
+ Commandline cl = GitCommandLineUtils.getBaseGitCommandLine( workingDirectory, "checkout" );
+e670863b2b03e158c59f34af1fee20f91b2bd852 92 136
+
+7c14cf0301dbb6d1379c1801a703b2641c22f348 160 137 1
+
+e670863b2b03e158c59f34af1fee20f91b2bd852 93 138 2
+ if ( version != null && StringUtils.isNotEmpty( version.getName() ) )
+e670863b2b03e158c59f34af1fee20f91b2bd852 94 139
+ {
+57fd77f4b848e4a2cafd0b1c3cb0ca535b3e9f4a 136 140 1
+ cl.createArgument().setValue( version.getName() );
+e670863b2b03e158c59f34af1fee20f91b2bd852 99 141 4
+ }
+e670863b2b03e158c59f34af1fee20f91b2bd852 100 142
+
+e670863b2b03e158c59f34af1fee20f91b2bd852 101 143
+ return cl;
+e670863b2b03e158c59f34af1fee20f91b2bd852 102 144
+ }
+7c14cf0301dbb6d1379c1801a703b2641c22f348 171 145 4
+
+7c14cf0301dbb6d1379c1801a703b2641c22f348 172 146
+ /**
+7c14cf0301dbb6d1379c1801a703b2641c22f348 173 147
+ * create a git-clone repository command
+7c14cf0301dbb6d1379c1801a703b2641c22f348 174 148
+ */
+57fd77f4b848e4a2cafd0b1c3cb0ca535b3e9f4a 145 149 1
+ private Commandline createCloneCommand( GitScmProviderRepository repository, File workingDirectory )
+7c14cf0301dbb6d1379c1801a703b2641c22f348 177 150 5
+ {
+7c14cf0301dbb6d1379c1801a703b2641c22f348 178 151
+ Commandline cl = GitCommandLineUtils.getBaseGitCommandLine( workingDirectory.getParentFile(), "clone" );
+7c14cf0301dbb6d1379c1801a703b2641c22f348 179 152
+
+7c14cf0301dbb6d1379c1801a703b2641c22f348 180 153
+ cl.createArgument().setValue( repository.getUrl() );
+7c14cf0301dbb6d1379c1801a703b2641c22f348 181 154
+
+7c14cf0301dbb6d1379c1801a703b2641c22f348 190 155 17
+ cl.createArgument().setFile( workingDirectory );
+7c14cf0301dbb6d1379c1801a703b2641c22f348 191 156
+
+7c14cf0301dbb6d1379c1801a703b2641c22f348 192 157
+ return cl;
+7c14cf0301dbb6d1379c1801a703b2641c22f348 193 158
+ }
+7c14cf0301dbb6d1379c1801a703b2641c22f348 194 159
+
+7c14cf0301dbb6d1379c1801a703b2641c22f348 195 160
+ /**
+7c14cf0301dbb6d1379c1801a703b2641c22f348 196 161
+ * create a git-pull repository command
+7c14cf0301dbb6d1379c1801a703b2641c22f348 197 162
+ */
+7c14cf0301dbb6d1379c1801a703b2641c22f348 198 163
+ private Commandline createPullCommand( GitScmProviderRepository repository, File workingDirectory,
+7c14cf0301dbb6d1379c1801a703b2641c22f348 199 164
+ ScmVersion version )
+7c14cf0301dbb6d1379c1801a703b2641c22f348 200 165
+ {
+7c14cf0301dbb6d1379c1801a703b2641c22f348 201 166
+ Commandline cl = GitCommandLineUtils.getBaseGitCommandLine( workingDirectory, "pull" );
+7c14cf0301dbb6d1379c1801a703b2641c22f348 202 167
+
+7c14cf0301dbb6d1379c1801a703b2641c22f348 203 168
+ cl.createArgument().setValue( repository.getUrl() );
+7c14cf0301dbb6d1379c1801a703b2641c22f348 204 169
+
+7c14cf0301dbb6d1379c1801a703b2641c22f348 205 170
+ if ( version != null && StringUtils.isNotEmpty( version.getName() ) )
+7c14cf0301dbb6d1379c1801a703b2641c22f348 206 171
+ {
+ed6a2c5cab54dda610c09c31c242dc7579260422 172 172 9
+ if ( version instanceof ScmTag )
+ed6a2c5cab54dda610c09c31c242dc7579260422 173 173
+ {
+ed6a2c5cab54dda610c09c31c242dc7579260422 174 174
+ cl.createArgument().setValue( "tag" );
+ed6a2c5cab54dda610c09c31c242dc7579260422 175 175
+ cl.createArgument().setValue( version.getName() );
+ed6a2c5cab54dda610c09c31c242dc7579260422 176 176
+ }
+ed6a2c5cab54dda610c09c31c242dc7579260422 177 177
+ else
+ed6a2c5cab54dda610c09c31c242dc7579260422 178 178
+ {
+ed6a2c5cab54dda610c09c31c242dc7579260422 179 179
+ cl.createArgument().setValue( version.getName() + ":" + version.getName() );
+ed6a2c5cab54dda610c09c31c242dc7579260422 180 180
+ }
+7c14cf0301dbb6d1379c1801a703b2641c22f348 211 181 1
+ }
+96aa36b0dc9ce85fd8981bde54edaa3bbe2b4482 182 182 3
+author Mark Struberg
+author-mail <st...@yahoo.de>
+author-time 1202341147
+author-tz +0100
+committer Mark Struberg
+committer-mail <st...@yahoo.de>
+committer-time 1202341147
+committer-tz +0100
+summary fixed problems with git-1.5.4
+previous 976b745bf1faecd939187a254c49edee2a81569a maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
+filename maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitCheckOutCommand.java
+ else {
+96aa36b0dc9ce85fd8981bde54edaa3bbe2b4482 183 183
+ cl.createArgument().setValue( "master" );
+96aa36b0dc9ce85fd8981bde54edaa3bbe2b4482 184 184
+ }
+7c14cf0301dbb6d1379c1801a703b2641c22f348 212 185 2
+ return cl;
+7c14cf0301dbb6d1379c1801a703b2641c22f348 213 186
+ }
+e670863b2b03e158c59f34af1fee20f91b2bd852 103 187 1
+ }