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 );
     }


Reply via email to