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 br...@apache.org on 2005/01/03 02:33:59 UTC
cvs commit: maven-scm/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/checkin LocalCheckInCommandTckTest.java
brett 2005/01/02 17:33:59
Modified: maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/add
LocalAddCommand.java
maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/checkin
LocalCheckInCommand.java
maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/update
LocalUpdateCommand.java
maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/repository
LocalScmProviderRepository.java
Added: maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/checkin
LocalCheckInCommandTckTest.java
Log:
partially implement add command for local repository, and add checkin test
Revision Changes Path
1.2 +25 -1 maven-scm/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/add/LocalAddCommand.java
Index: LocalAddCommand.java
===================================================================
RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/add/LocalAddCommand.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- LocalAddCommand.java 30 Dec 2004 10:05:29 -0000 1.1
+++ LocalAddCommand.java 3 Jan 2005 01:33:58 -0000 1.2
@@ -23,7 +23,9 @@
import org.apache.maven.scm.command.add.AddScmResult;
import org.apache.maven.scm.provider.ScmProviderRepository;
import org.apache.maven.scm.provider.local.command.LocalCommand;
+import org.apache.maven.scm.provider.local.repository.LocalScmProviderRepository;
+import java.io.File;
import java.util.Collections;
/**
@@ -38,6 +40,28 @@
boolean binary )
throws ScmException
{
+ LocalScmProviderRepository localRepo = (LocalScmProviderRepository) repository;
+
+ File[] files = fileSet.getFiles();
+ for ( int i = 0; i < files.length; i++ )
+ {
+ // TODO: better to standardise on relative paths inside fileset
+
+ String path = files[i].getPath();
+ if ( path.startsWith( fileSet.getBasedir().getPath() ) )
+ {
+ path = path.substring( fileSet.getBasedir().getPath().length() );
+ }
+ path = path.replace( '\\', '/' );
+
+ if ( path.startsWith( "/" ) )
+ {
+ path = path.substring( 1 );
+ }
+
+ localRepo.addFile( path );
+ }
+
// TODO: Also, ensure it is tested from the update test
return new AddScmResult( Collections.EMPTY_LIST );
}
1.3 +14 -3 maven-scm/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/checkin/LocalCheckInCommand.java
Index: LocalCheckInCommand.java
===================================================================
RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/checkin/LocalCheckInCommand.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- LocalCheckInCommand.java 24 Dec 2004 03:24:37 -0000 1.2
+++ LocalCheckInCommand.java 3 Jan 2005 01:33:58 -0000 1.3
@@ -89,7 +89,11 @@
{
File file = (File) it.next();
- String path = file.getAbsolutePath().substring( baseDestination.getAbsolutePath().length());
+ String path = file.getAbsolutePath().substring( baseDestination.getAbsolutePath().length() ).replace( '\\', '/' );
+ if ( path.startsWith( "/" ) )
+ {
+ path = path.substring( 1 );
+ }
File repoFile = new File( repoRoot, path );
@@ -110,9 +114,16 @@
status = ScmFileStatus.CHECKED_IN;
}
+ else if ( repository.isFileAdded( path ) )
+ {
+ status = ScmFileStatus.CHECKED_IN;
+ }
else
{
- status = ScmFileStatus.ADDED;
+ // TODO: use some log mechanism instead
+ System.err.println("skipped unknown file in checkin:" + path);
+ // unknown file, skip
+ continue;
}
FileUtils.copyFile( file, repoFile );
1.7 +3 -4 maven-scm/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/update/LocalUpdateCommand.java
Index: LocalUpdateCommand.java
===================================================================
RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/update/LocalUpdateCommand.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- LocalUpdateCommand.java 30 Dec 2004 10:05:29 -0000 1.6
+++ LocalUpdateCommand.java 3 Jan 2005 01:33:59 -0000 1.7
@@ -23,7 +23,6 @@
import org.apache.maven.scm.command.update.AbstractUpdateCommand;
import org.apache.maven.scm.command.update.UpdateScmResult;
import org.apache.maven.scm.provider.ScmProviderRepository;
-import org.apache.maven.scm.provider.local.LocalScmProvider;
import org.apache.maven.scm.provider.local.command.LocalCommand;
import org.apache.maven.scm.provider.local.repository.LocalScmProviderRepository;
import org.codehaus.plexus.util.FileUtils;
@@ -89,7 +88,7 @@
List fileList = FileUtils.getFiles( source.getAbsoluteFile(), "**", null );
- updatedFiles = update( source, baseDestination, fileList, LocalScmProvider.fixModuleName( repository.getModule() ) );
+ updatedFiles = update( source, baseDestination, fileList );
}
catch( IOException ex )
{
@@ -99,7 +98,7 @@
return new LocalUpdateScmResult( updatedFiles );
}
- private List update( File source, File baseDestination, List files, String module )
+ private List update( File source, File baseDestination, List files )
throws ScmException, IOException
{
String sourcePath = source.getAbsolutePath();
1.3 +16 -1 maven-scm/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/repository/LocalScmProviderRepository.java
Index: LocalScmProviderRepository.java
===================================================================
RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/repository/LocalScmProviderRepository.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- LocalScmProviderRepository.java 26 Oct 2004 12:45:28 -0000 1.2
+++ LocalScmProviderRepository.java 3 Jan 2005 01:33:59 -0000 1.3
@@ -18,6 +18,9 @@
import org.apache.maven.scm.provider.ScmProviderRepository;
+import java.util.HashSet;
+import java.util.Set;
+
/**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
* @version $Id$
@@ -29,6 +32,8 @@
private String module;
+ private Set addedFiles = new HashSet();
+
/**
* @param root
* @param module
@@ -54,5 +59,15 @@
public String getModule()
{
return module;
+ }
+
+ public void addFile( String path )
+ {
+ addedFiles.add( path );
+ }
+
+ public boolean isFileAdded( String path )
+ {
+ return addedFiles.contains( path );
}
}
1.1 maven-scm/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/checkin/LocalCheckInCommandTckTest.java
Index: LocalCheckInCommandTckTest.java
===================================================================
package org.apache.maven.scm.provider.local.command.checkin;
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import org.apache.maven.scm.tck.command.checkin.CheckInCommandTckTest;
import java.io.File;
/**
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
* @version $Id: LocalCheckInCommandTckTest.java,v 1.1 2005/01/03 01:33:59 brett Exp $
*/
public class LocalCheckInCommandTckTest
extends CheckInCommandTckTest
{
private final static String moduleName = "checkin-tck";
public String getScmUrl()
throws Exception
{
return "scm:local|" + getRepositoryRoot() + "|" + moduleName;
}
public void initRepo()
throws Exception
{
makeRepo( getRepositoryRoot() );
}
private void makeRepo( File workingDirectory )
throws Exception
{
makeFile( workingDirectory, moduleName + "/pom.xml", "/pom.xml" );
makeFile( workingDirectory, moduleName + "/readme.txt", "/readme.txt" );
makeFile( workingDirectory, moduleName + "/src/main/java/Application.java", "/src/main/java/Application.java" );
makeFile( workingDirectory, moduleName + "/src/test/java/Test.java", "/src/test/java/Test.java" );
makeDirectory( workingDirectory, moduleName + "/src/test/resources" );
}
}