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 ev...@apache.org on 2007/04/06 17:57:35 UTC
svn commit: r526209 - in
/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm:
command/branch/ manager/ provider/
Author: evenisse
Date: Fri Apr 6 08:57:34 2007
New Revision: 526209
URL: http://svn.apache.org/viewvc?view=rev&rev=526209
Log:
Add branch command
Added:
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/branch/BranchScmResult.java (with props)
Modified:
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/branch/AbstractBranchCommand.java
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java
Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/branch/AbstractBranchCommand.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/branch/AbstractBranchCommand.java?view=diff&rev=526209&r1=526208&r2=526209
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/branch/AbstractBranchCommand.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/branch/AbstractBranchCommand.java Fri Apr 6 08:57:34 2007
@@ -29,6 +29,7 @@
import java.io.File;
/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
* @version $Id$
*/
@@ -36,13 +37,17 @@
extends AbstractCommand
{
protected abstract ScmResult executeBranch( ScmProviderRepository repository, File workingDirectory,
- String branchName )
+ String branchName, String message )
throws ScmException;
public ScmResult executeCommand( ScmProviderRepository repository, File workingDirectory,
CommandParameters parameters )
throws ScmException
{
- return executeBranch( repository, workingDirectory, parameters.getString( CommandParameter.BRANCH_NAME ) );
+ String branchName = parameters.getString( CommandParameter.BRANCH_NAME );
+
+ String message = parameters.getString( CommandParameter.MESSAGE, "[maven-scm] copy for branch " + branchName );
+
+ return executeBranch( repository, workingDirectory, branchName, message );
}
}
Added: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/branch/BranchScmResult.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/branch/BranchScmResult.java?view=auto&rev=526209
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/branch/BranchScmResult.java (added)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/branch/BranchScmResult.java Fri Apr 6 08:57:34 2007
@@ -0,0 +1,58 @@
+package org.apache.maven.scm.command.branch;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.ScmResult;
+
+import java.util.List;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class BranchScmResult
+ extends ScmResult
+{
+ private List branchedFiles;
+
+ public BranchScmResult( String commandLine, String providerMessage, String commandOutput, boolean success )
+ {
+ super( commandLine, providerMessage, commandOutput, success );
+ }
+
+ public BranchScmResult( String commandLine, List branchedFiles )
+ {
+ super( commandLine, null, null, true );
+
+ this.branchedFiles = branchedFiles;
+ }
+
+ public BranchScmResult( List branchedFiles, ScmResult result )
+ {
+ super( result );
+
+ this.branchedFiles = branchedFiles;
+ }
+
+ public List getBranchedFiles()
+ {
+ return branchedFiles;
+ }
+}
Propchange: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/branch/BranchScmResult.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/branch/BranchScmResult.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java?view=diff&rev=526209&r1=526208&r2=526209
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java Fri Apr 6 08:57:34 2007
@@ -24,6 +24,7 @@
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.ScmVersion;
import org.apache.maven.scm.command.add.AddScmResult;
+import org.apache.maven.scm.command.branch.BranchScmResult;
import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
import org.apache.maven.scm.command.checkin.CheckInScmResult;
import org.apache.maven.scm.command.checkout.CheckOutScmResult;
@@ -298,6 +299,24 @@
throws ScmException
{
return this.getProviderByRepository( repository ).add( repository, fileSet, message );
+ }
+
+ /**
+ *
+ */
+ public BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName )
+ throws ScmException
+ {
+ return this.getProviderByRepository( repository ).branch( repository, fileSet, branchName );
+ }
+
+ /**
+ *
+ */
+ public BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName, String message )
+ throws ScmException
+ {
+ return this.getProviderByRepository( repository ).branch( repository, fileSet, branchName, message );
}
/**
Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java?view=diff&rev=526209&r1=526208&r2=526209
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java Fri Apr 6 08:57:34 2007
@@ -24,6 +24,7 @@
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.ScmVersion;
import org.apache.maven.scm.command.add.AddScmResult;
+import org.apache.maven.scm.command.branch.BranchScmResult;
import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
import org.apache.maven.scm.command.checkin.CheckInScmResult;
import org.apache.maven.scm.command.checkout.CheckOutScmResult;
@@ -130,6 +131,33 @@
* @throws ScmException
*/
AddScmResult add( ScmRepository repository, ScmFileSet fileSet, String message )
+ throws ScmException;
+
+ /**
+ * Branch (or label in some systems) will create a branch of the source file with a certain branch name
+ *
+ * @param repository the source control system
+ * @param fileSet the files to branch. Implementations can also give the changes
+ * from the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} downwards.
+ * @param branchName the branch name to apply to the files
+ * @return
+ * @throws ScmException
+ */
+ BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName )
+ throws ScmException;
+
+ /**
+ * Branch (or label in some systems) will create a branch of the source file with a certain branch name
+ *
+ * @param repository the source control system
+ * @param fileSet the files to branch. Implementations can also give the changes
+ * from the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} downwards.
+ * @param branchName the branch name to apply to the files
+ * @param message the commit message used for the tag creation
+ * @return
+ * @throws ScmException
+ */
+ BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName, String message )
throws ScmException;
/**
Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java?view=diff&rev=526209&r1=526208&r2=526209
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java Fri Apr 6 08:57:34 2007
@@ -28,6 +28,7 @@
import org.apache.maven.scm.ScmRevision;
import org.apache.maven.scm.ScmVersion;
import org.apache.maven.scm.command.add.AddScmResult;
+import org.apache.maven.scm.command.branch.BranchScmResult;
import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
import org.apache.maven.scm.command.checkin.CheckInScmResult;
import org.apache.maven.scm.command.checkout.CheckOutScmResult;
@@ -148,6 +149,42 @@
throws ScmException
{
throw new NoSuchCommandScmException( "add" );
+ }
+
+ /**
+ * @see org.apache.maven.scm.provider.ScmProvider#branch(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String)
+ */
+ public BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName )
+ throws ScmException
+ {
+ return branch( repository, fileSet, branchName, null );
+ }
+
+ /**
+ * @see org.apache.maven.scm.provider.ScmProvider#branch(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String,java.lang.String)
+ */
+ public BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName, String message )
+ throws ScmException
+ {
+ login( repository, fileSet );
+
+ CommandParameters parameters = new CommandParameters();
+
+ parameters.setString( CommandParameter.BRANCH_NAME, branchName );
+
+ if ( StringUtils.isNotEmpty( message ) )
+ {
+ parameters.setString( CommandParameter.MESSAGE, message );
+ }
+
+ return branch( repository.getProviderRepository(), fileSet, parameters );
+ }
+
+ protected BranchScmResult branch( ScmProviderRepository repository, ScmFileSet fileSet,
+ CommandParameters parameters )
+ throws ScmException
+ {
+ throw new NoSuchCommandScmException( "branch" );
}
/**
Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java?view=diff&rev=526209&r1=526208&r2=526209
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java Fri Apr 6 08:57:34 2007
@@ -24,6 +24,7 @@
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.ScmVersion;
import org.apache.maven.scm.command.add.AddScmResult;
+import org.apache.maven.scm.command.branch.BranchScmResult;
import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
import org.apache.maven.scm.command.checkin.CheckInScmResult;
import org.apache.maven.scm.command.checkout.CheckOutScmResult;
@@ -123,6 +124,33 @@
* @throws ScmException
*/
AddScmResult add( ScmRepository repository, ScmFileSet fileSet, String message )
+ throws ScmException;
+
+ /**
+ * Branch (or label in some systems) will create a branch of the source file with a certain branch name
+ *
+ * @param repository the source control system
+ * @param fileSet the files to branch. Implementations can also give the changes
+ * from the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} downwards.
+ * @param branchName the branch name to apply to the files
+ * @return
+ * @throws ScmException
+ */
+ BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName )
+ throws ScmException;
+
+ /**
+ * Branch (or label in some systems) will create a branch of the source file with a certain branch name
+ *
+ * @param repository the source control system
+ * @param fileSet the files to branch. Implementations can also give the changes
+ * from the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} downwards.
+ * @param branchName the branch name to apply to the files
+ * @param message the commit message used for the tag creation
+ * @return
+ * @throws ScmException
+ */
+ BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName, String message )
throws ScmException;
/**