Author: olamy
Date: Mon Nov 28 15:20:44 2011
New Revision: 1207290
URL: http://svn.apache.org/viewvc?rev=1207290&view=rev
Log:
[SCM-631] Mercurial SCM provider works with repository like centralized SCM's do
Submitted by Alexander Betaev.
Patch applyed with modifications due to some changes applyed before.
Modified:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/HgCommandConstants.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogConsumer.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkin/HgCheckInCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/update/HgUpdateCommand.java
Modified:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/HgCommandConstants.java
URL:
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/HgCommandConstants.java?rev=1207290&r1=1207289&r2=1207290&view=diff
==============================================================================
---
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/HgCommandConstants.java
(original)
+++
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/HgCommandConstants.java
Mon Nov 28 15:20:44 2011
@@ -34,6 +34,7 @@ public final class HgCommandConstants
private HgCommandConstants()
{
+ // no o
}
/**
@@ -145,5 +146,6 @@ public final class HgCommandConstants
public static final String NEW_BRANCH_OPTION = "--new-branch";
+ public static final String CLEAN_OPTION = "-c";
}
Modified:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogConsumer.java
URL:
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogConsumer.java?rev=1207290&r1=1207289&r2=1207290&view=diff
==============================================================================
---
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogConsumer.java
(original)
+++
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogConsumer.java
Mon Nov 28 15:20:44 2011
@@ -207,7 +207,7 @@ public class HgChangeLogConsumer
currentChange.addFile( changeFile );
}
}
- else
+ else if ( line.length() > 0 )
{
if ( getLogger().isWarnEnabled() )
{
Modified:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkin/HgCheckInCommand.java
URL:
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkin/HgCheckInCommand.java?rev=1207290&r1=1207289&r2=1207290&view=diff
==============================================================================
---
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkin/HgCheckInCommand.java
(original)
+++
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkin/HgCheckInCommand.java
Mon Nov 28 15:20:44 2011
@@ -63,7 +63,7 @@ public class HgCheckInCommand
File workingDir = fileSet.getBasedir();
String branchName = HgUtils.getCurrentBranchName( getLogger(),
workingDir );
- boolean differentOutgoingBranch =
HgUtils.differentOutgoingBranchFound( getLogger(), workingDir, branchName );
+ boolean differentOutgoingBranch = repo.isPushChanges() ?
HgUtils.differentOutgoingBranchFound( getLogger(), workingDir, branchName ) :
false;
// Get files that will be committed (if not specified in fileSet)
List<ScmFile> commitedFiles = new ArrayList<ScmFile>();
Modified:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutCommand.java
URL:
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutCommand.java?rev=1207290&r1=1207289&r2=1207290&view=diff
==============================================================================
---
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutCommand.java
(original)
+++
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutCommand.java
Mon Nov 28 15:20:44 2011
@@ -74,12 +74,23 @@ public class HgCheckOutCommand
// Do the actual checkout
List<String> cmdList = new ArrayList<String>();
- cmdList.add( HgCommandConstants.CLONE_CMD );
+ if ( repo.isPushChanges() )
+ {
+ cmdList.add( HgCommandConstants.CLONE_CMD );
+ }
+ else
+ {
+ cmdList.add( HgCommandConstants.UPDATE_CMD );
+ }
if ( scmVersion != null && !StringUtils.isEmpty( scmVersion.getName()
) )
{
cmdList.add( HgCommandConstants.REVISION_OPTION );
cmdList.add( scmVersion.getName() );
}
+ if ( !repo.isPushChanges() )
+ {
+ cmdList.add( HgCommandConstants.CLEAN_OPTION );
+ }
cmdList.add( url );
cmdList.add( checkoutDir.getAbsolutePath() );
String[] checkoutCmd = cmdList.toArray( new String[0] );
Modified:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/update/HgUpdateCommand.java
URL:
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/update/HgUpdateCommand.java?rev=1207290&r1=1207289&r2=1207290&view=diff
==============================================================================
---
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/update/HgUpdateCommand.java
(original)
+++
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/update/HgUpdateCommand.java
Mon Nov 28 15:20:44 2011
@@ -59,11 +59,19 @@ public class HgUpdateCommand
{
File workingDir = fileSet.getBasedir();
+ String[] updateCmd;
// Update branch
- String[] updateCmd = new String[] {
- HgCommandConstants.PULL_CMD,
- HgCommandConstants.REVISION_OPTION,
- tag != null && !StringUtils.isEmpty( tag.getName() ) ?
tag.getName() : "tip" };
+ if (repo.isPushChanges()) {
+ updateCmd = new String[] {
+ HgCommandConstants.PULL_CMD,
+ HgCommandConstants.REVISION_OPTION,
+ tag != null && !StringUtils.isEmpty( tag.getName() ) ?
tag.getName() : "tip" };
+ } else {
+ updateCmd = new String[] {
+ HgCommandConstants.UPDATE_CMD,
+ tag != null && !StringUtils.isEmpty( tag.getName() ) ?
tag.getName() : "tip",
+ HgCommandConstants.CLEAN_OPTION };
+ }
ScmResult updateResult = HgUtils.execute( new HgConsumer( getLogger()
), getLogger(), workingDir, updateCmd );
if ( !updateResult.isSuccess() )
@@ -99,8 +107,10 @@ public class HgUpdateCommand
}
}
- String[] hgUpdateCmd = new String[] { HgCommandConstants.UPDATE_CMD };
- HgUtils.execute( new HgConsumer( getLogger() ), getLogger(),
workingDir, hgUpdateCmd );
+ if ( repo.isPushChanges() ) {
+ String[] hgUpdateCmd = new String[] {
HgCommandConstants.UPDATE_CMD };
+ HgUtils.execute( new HgConsumer( getLogger() ), getLogger(),
workingDir, hgUpdateCmd );
+ }
return new UpdateScmResultWithRevision( updatedFiles, new
ArrayList<ChangeSet>(0), String.valueOf( currentRevision ), diffResult );
}