From ee87b13e87f6b2bcae275c0911afefe330509c4c Mon Sep 17 00:00:00 2001 From: OhadR Date: Mon, 19 May 2014 13:01:06 +0300 Subject: [PATCH 01/13] support TFS checkin-policies --- .../apache/maven/scm/provider/tfs/TfsScmProvider.java | 4 +++- .../scm/provider/tfs/TfsScmProviderRepository.java | 11 ++++++++++- .../scm/provider/tfs/command/TfsCheckInCommand.java | 11 ++++++++++- .../scm/provider/tfs/command/TfsCommandTest.java | 3 ++- 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java index ece426058..11052cf71 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java @@ -130,7 +130,9 @@ public ScmProviderRepository makeProviderScmRepository( String scmUrl, char deli password = ( delimPos < 0 ) ? null : usernamePassword.substring( delimPos + 1 ); } - return new TfsScmProviderRepository( tfsUrl, username, password, serverPath, workspace ); + boolean useCheckinPolicies = false; //ToDo: prase this indicator from the scmUrl + return new TfsScmProviderRepository( tfsUrl, username, password, serverPath, workspace, + useCheckinPolicies ); } protected ChangeLogScmResult changelog( ScmProviderRepository repository, ScmFileSet fileSet, diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProviderRepository.java b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProviderRepository.java index 2ed770a81..d367a92f9 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProviderRepository.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProviderRepository.java @@ -30,8 +30,11 @@ public class TfsScmProviderRepository private final String serverPath; private final String workspace; + + private final boolean useCheckinPolicies; - public TfsScmProviderRepository( String tfsUrl, String user, String password, String serverPath, String workspace ) + public TfsScmProviderRepository( String tfsUrl, String user, String password, String serverPath, String workspace, + boolean useCheckinPolicies) { super(); setUser( user ); @@ -39,6 +42,7 @@ public TfsScmProviderRepository( String tfsUrl, String user, String password, St this.tfsUrl = tfsUrl; this.serverPath = serverPath; this.workspace = workspace; + this.useCheckinPolicies = useCheckinPolicies; } public String getTfsUrl() @@ -71,4 +75,9 @@ public String getUserPassword() } return userPassword; } + + public boolean isUseCheckinPolicies() + { + return useCheckinPolicies; + } } diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java index d6fadc666..3fd85688e 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java @@ -25,13 +25,13 @@ import org.apache.maven.scm.command.checkin.AbstractCheckInCommand; import org.apache.maven.scm.command.checkin.CheckInScmResult; import org.apache.maven.scm.provider.ScmProviderRepository; +import org.apache.maven.scm.provider.tfs.TfsScmProviderRepository; import org.apache.maven.scm.provider.tfs.command.consumer.ErrorStreamConsumer; import org.apache.maven.scm.provider.tfs.command.consumer.FileListConsumer; public class TfsCheckInCommand extends AbstractCheckInCommand { - protected CheckInScmResult executeCheckInCommand( ScmProviderRepository r, ScmFileSet f, String m, ScmVersion v ) throws ScmException { @@ -58,6 +58,15 @@ public TfsCommand createCommand( ScmProviderRepository r, ScmFileSet f, String m command.addArgument( "-comment:" + m + "" ); } command.addArgument( f ); + + TfsScmProviderRepository tfsScmProviderRepo = (TfsScmProviderRepository)r; + if(tfsScmProviderRepo.isUseCheckinPolicies()) + { + //handle TFS-policies (by adding "/override:";Auto-Build: Version Update";) + String policiesFix = "/override:checkin_policy"; + command.addArgument( policiesFix + ""); + } + return command; } diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/test/java/org/apache/maven/scm/provider/tfs/command/TfsCommandTest.java b/maven-scm-providers/maven-scm-provider-tfs/src/test/java/org/apache/maven/scm/provider/tfs/command/TfsCommandTest.java index c116fe6a2..689c77888 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/test/java/org/apache/maven/scm/provider/tfs/command/TfsCommandTest.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/test/java/org/apache/maven/scm/provider/tfs/command/TfsCommandTest.java @@ -32,7 +32,8 @@ public class TfsCommandTest protected TfsScmProviderRepository getScmProviderRepository() { - return new TfsScmProviderRepository( "http://tfsurl", "user", "password", "serverpath", "workspace" ); + return new TfsScmProviderRepository( "http://tfsurl", "user", "password", "serverpath", "workspace", + false); } protected String getFileList() From f8cc479e589ef7e68ed5558324bd75b7c8844dfc Mon Sep 17 00:00:00 2001 From: OhadR Date: Mon, 19 May 2014 18:27:17 +0300 Subject: [PATCH 02/13] https://jira.codehaus.org/browse/SCM-750: support TFS checkin-policies https://jira.codehaus.org/browse/SCM-750: support TFS checkin-policies --- .../apache/maven/scm/provider/tfs/TfsScmProvider.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java index 11052cf71..554f047ac 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java @@ -99,6 +99,13 @@ public ScmProviderRepository makeProviderScmRepository( String scmUrl, char deli int workspacePos = tfsUrl.lastIndexOf( delimiter ); String workspace = tfsUrl.substring( workspacePos + 1 ); tfsUrl = tfsUrl.substring( 0, workspacePos ); + getLogger().info( "workspace: " + workspace ); + + // Look for workspace ater the end of the TFS URL + int checkinPoliciesPos = tfsUrl.lastIndexOf( delimiter ); + String checkinPolicies = tfsUrl.substring( checkinPoliciesPos + 1 ); + tfsUrl = tfsUrl.substring( 0, checkinPoliciesPos ); + getLogger().info( "checkinPolicies: " + checkinPolicies ); try { @@ -130,7 +137,8 @@ public ScmProviderRepository makeProviderScmRepository( String scmUrl, char deli password = ( delimPos < 0 ) ? null : usernamePassword.substring( delimPos + 1 ); } - boolean useCheckinPolicies = false; //ToDo: prase this indicator from the scmUrl + boolean useCheckinPolicies = Boolean.parseBoolean(checkinPolicies); + return new TfsScmProviderRepository( tfsUrl, username, password, serverPath, workspace, useCheckinPolicies ); } From b21b6468aa444018202088af64521cf581bc1989 Mon Sep 17 00:00:00 2001 From: OhadR Date: Sun, 25 May 2014 00:01:08 +0300 Subject: [PATCH 03/13] [SCM-750] support checkin policies --- .../org/apache/maven/scm/provider/tfs/TfsScmProvider.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java index 554f047ac..e8fabfa9e 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java @@ -138,9 +138,9 @@ public ScmProviderRepository makeProviderScmRepository( String scmUrl, char deli } boolean useCheckinPolicies = Boolean.parseBoolean(checkinPolicies); - - return new TfsScmProviderRepository( tfsUrl, username, password, serverPath, workspace, - useCheckinPolicies ); + + return new TfsScmProviderRepository( tfsUrl, username, password, serverPath, workspace, + useCheckinPolicies ); } protected ChangeLogScmResult changelog( ScmProviderRepository repository, ScmFileSet fileSet, From d82b96a31c884214b9629538e9b7ff55ce3925e5 Mon Sep 17 00:00:00 2001 From: OhadR Date: Sun, 25 May 2014 00:04:49 +0300 Subject: [PATCH 04/13] [scm-750] checkin policies --- .../java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java index e8fabfa9e..89f025f4e 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java @@ -137,7 +137,7 @@ public ScmProviderRepository makeProviderScmRepository( String scmUrl, char deli password = ( delimPos < 0 ) ? null : usernamePassword.substring( delimPos + 1 ); } - boolean useCheckinPolicies = Boolean.parseBoolean(checkinPolicies); + boolean useCheckinPolicies = Boolean.parseBoolean( checkinPolicies ); return new TfsScmProviderRepository( tfsUrl, username, password, serverPath, workspace, useCheckinPolicies ); From c174d0b5e07e49fcce0510e4c47e0677346b64fe Mon Sep 17 00:00:00 2001 From: OhadR Date: Sun, 25 May 2014 00:41:07 +0300 Subject: [PATCH 05/13] [SCM-750] checkin policies --- .../maven/scm/provider/tfs/TfsScmProvider.java | 4 ++-- .../scm/provider/tfs/TfsScmProviderRepository.java | 12 ++++++------ .../scm/provider/tfs/command/TfsCheckInCommand.java | 9 ++++----- .../scm/provider/tfs/command/TfsCommandTest.java | 2 +- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java index 89f025f4e..cfcf3b591 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java @@ -149,7 +149,7 @@ protected ChangeLogScmResult changelog( ScmProviderRepository repository, ScmFil { TfsChangeLogCommand command = new TfsChangeLogCommand(); command.setLogger( getLogger() ); - return (ChangeLogScmResult) command.execute( repository, fileSet, parameters ); + return ( ChangeLogScmResult ) command.execute( repository, fileSet, parameters ); } protected CheckOutScmResult checkout( ScmProviderRepository repository, ScmFileSet fileSet, @@ -158,7 +158,7 @@ protected CheckOutScmResult checkout( ScmProviderRepository repository, ScmFileS { TfsCheckOutCommand command = new TfsCheckOutCommand(); command.setLogger( getLogger() ); - return (CheckOutScmResult) command.execute( repository, fileSet, parameters ); + return ( CheckOutScmResult ) command.execute( repository, fileSet, parameters ); } protected EditScmResult edit( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters ) diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProviderRepository.java b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProviderRepository.java index d367a92f9..d77358bf1 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProviderRepository.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProviderRepository.java @@ -30,11 +30,11 @@ public class TfsScmProviderRepository private final String serverPath; private final String workspace; - + private final boolean useCheckinPolicies; public TfsScmProviderRepository( String tfsUrl, String user, String password, String serverPath, String workspace, - boolean useCheckinPolicies) + boolean useCheckinPolicies ) { super(); setUser( user ); @@ -76,8 +76,8 @@ public String getUserPassword() return userPassword; } - public boolean isUseCheckinPolicies() - { - return useCheckinPolicies; - } + public boolean isUseCheckinPolicies() + { + return useCheckinPolicies; + } } diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java index 3fd85688e..3b8ceab57 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java @@ -35,7 +35,6 @@ public class TfsCheckInCommand protected CheckInScmResult executeCheckInCommand( ScmProviderRepository r, ScmFileSet f, String m, ScmVersion v ) throws ScmException { - TfsCommand command = createCommand( r, f, m ); FileListConsumer fileConsumer = new FileListConsumer(); ErrorStreamConsumer err = new ErrorStreamConsumer(); @@ -59,14 +58,14 @@ public TfsCommand createCommand( ScmProviderRepository r, ScmFileSet f, String m } command.addArgument( f ); - TfsScmProviderRepository tfsScmProviderRepo = (TfsScmProviderRepository)r; - if(tfsScmProviderRepo.isUseCheckinPolicies()) + TfsScmProviderRepository tfsScmProviderRepo = ( TfsScmProviderRepository )r; + if( tfsScmProviderRepo.isUseCheckinPolicies() ) { //handle TFS-policies (by adding "/override:";Auto-Build: Version Update";) String policiesFix = "/override:checkin_policy"; - command.addArgument( policiesFix + ""); + command.addArgument( policiesFix + "" ); } - + return command; } diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/test/java/org/apache/maven/scm/provider/tfs/command/TfsCommandTest.java b/maven-scm-providers/maven-scm-provider-tfs/src/test/java/org/apache/maven/scm/provider/tfs/command/TfsCommandTest.java index 689c77888..af00324a4 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/test/java/org/apache/maven/scm/provider/tfs/command/TfsCommandTest.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/test/java/org/apache/maven/scm/provider/tfs/command/TfsCommandTest.java @@ -33,7 +33,7 @@ public class TfsCommandTest protected TfsScmProviderRepository getScmProviderRepository() { return new TfsScmProviderRepository( "http://tfsurl", "user", "password", "serverpath", "workspace", - false); + false ); } protected String getFileList() From bbda4b39aa9abad48e7ccc2038594c0dd5131223 Mon Sep 17 00:00:00 2001 From: OhadR Date: Sun, 25 May 2014 00:45:53 +0300 Subject: [PATCH 06/13] [SCM_750]: extract const --- .../maven/scm/provider/tfs/command/TfsCheckInCommand.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java index 3b8ceab57..a04dcb8a6 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java @@ -32,6 +32,8 @@ public class TfsCheckInCommand extends AbstractCheckInCommand { + private static String policiesArgument = "/override:checkin_policy"; + protected CheckInScmResult executeCheckInCommand( ScmProviderRepository r, ScmFileSet f, String m, ScmVersion v ) throws ScmException { @@ -62,8 +64,7 @@ public TfsCommand createCommand( ScmProviderRepository r, ScmFileSet f, String m if( tfsScmProviderRepo.isUseCheckinPolicies() ) { //handle TFS-policies (by adding "/override:";Auto-Build: Version Update";) - String policiesFix = "/override:checkin_policy"; - command.addArgument( policiesFix + "" ); + command.addArgument( policiesArgument ); } return command; From e80f2d3d02fe77441ac1c46c67a4046203d014fd Mon Sep 17 00:00:00 2001 From: OhadR Date: Sun, 25 May 2014 16:01:32 +0300 Subject: [PATCH 07/13] [SCM-752] : edit mode is required in TFS ! --- .../org/apache/maven/scm/provider/tfs/TfsScmProvider.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java index cfcf3b591..701926204 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/TfsScmProvider.java @@ -73,6 +73,14 @@ public String getScmType() return "tfs"; } + /** + * {@inheritDoc} + */ + public boolean requiresEditMode() + { + return true; + } + public ScmProviderRepository makeProviderScmRepository( String scmUrl, char delimiter ) throws ScmRepositoryException { From 125bdfc0fbfa9c431915837506fa3959b931f40f Mon Sep 17 00:00:00 2001 From: OhadR Date: Mon, 26 May 2014 17:40:39 +0300 Subject: [PATCH 08/13] [SCM 753] support TFS checkin-policies --- .../provider/tfs/command/TfsCheckInCommand.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java index a04dcb8a6..e0f23d9f6 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java @@ -33,6 +33,7 @@ public class TfsCheckInCommand extends AbstractCheckInCommand { private static String policiesArgument = "/override:checkin_policy"; + private static final String TFS_CHECKIN_POLICIES_ERROR = "TF10139"; protected CheckInScmResult executeCheckInCommand( ScmProviderRepository r, ScmFileSet f, String m, ScmVersion v ) throws ScmException @@ -40,16 +41,25 @@ protected CheckInScmResult executeCheckInCommand( ScmProviderRepository r, ScmFi TfsCommand command = createCommand( r, f, m ); FileListConsumer fileConsumer = new FileListConsumer(); ErrorStreamConsumer err = new ErrorStreamConsumer(); - + int status = command.execute( fileConsumer, err ); - if ( status != 0 || err.hasBeenFed() ) + getLogger().debug( "status of checkin command is= " + status + "; err= " + err.getOutput() ); + + //[SCM-753] support TFS checkin-policies - TFS returns error, that can be ignored. + if( err.hasBeenFed() && err.getOutput().startsWith( TFS_CHECKIN_POLICIES_ERROR ) ) { + getLogger().debug( "exclusion: got error " + TFS_CHECKIN_POLICIES_ERROR + " due to checkin policies. ignoring it..." ); + } + if ( status != 0 || ( err.hasBeenFed() && !err.getOutput().startsWith( TFS_CHECKIN_POLICIES_ERROR ) ) ) + { + getLogger().error( "ERROR in command: " + command.getCommandString() + "; Error code for TFS checkin command - " + status ); return new CheckInScmResult( command.getCommandString(), "Error code for TFS checkin command - " + status, err.getOutput(), false ); } return new CheckInScmResult( command.getCommandString(), fileConsumer.getFiles() ); } + public TfsCommand createCommand( ScmProviderRepository r, ScmFileSet f, String m ) { TfsCommand command = new TfsCommand( "checkin", r, f, getLogger() ); From cb9931ea83877cde6b380f5f9f3c9dcd30f09b02 Mon Sep 17 00:00:00 2001 From: OhadR Date: Mon, 23 Jun 2014 17:18:45 +0300 Subject: [PATCH 09/13] [SCM-759] cannot create Branch with TFS-provider --- .../scm/provider/tfs/command/TfsBranchCommand.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsBranchCommand.java b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsBranchCommand.java index 2d2db9b18..bdb94d17c 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsBranchCommand.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsBranchCommand.java @@ -28,6 +28,7 @@ import org.apache.maven.scm.command.branch.AbstractBranchCommand; import org.apache.maven.scm.command.branch.BranchScmResult; import org.apache.maven.scm.provider.ScmProviderRepository; +import org.apache.maven.scm.provider.tfs.TfsScmProviderRepository; import org.apache.maven.scm.provider.tfs.command.consumer.ErrorStreamConsumer; import org.codehaus.plexus.util.cli.CommandLineUtils.StringStreamConsumer; @@ -42,6 +43,7 @@ protected ScmResult executeBranchCommand( ScmProviderRepository r, ScmFileSet f, StringStreamConsumer out = new StringStreamConsumer(); ErrorStreamConsumer err = new ErrorStreamConsumer(); int status = command.execute( out, err ); + getLogger().info( "status of branch command is= " + status + "; err= " + err.getOutput() ); if ( status != 0 || err.hasBeenFed() ) { return new BranchScmResult( command.getCommandString(), "Error code for TFS branch command - " + status, @@ -53,7 +55,13 @@ protected ScmResult executeBranchCommand( ScmProviderRepository r, ScmFileSet f, public TfsCommand createCommand( ScmProviderRepository r, ScmFileSet f, String branch ) { TfsCommand command = new TfsCommand( "branch", r, f, getLogger() ); - command.addArgument( f.getBasedir().getAbsolutePath() ); + + //SCM-759 + //command.addArgument( f.getBasedir().getAbsolutePath() ); + String serverPath = ( (TfsScmProviderRepository) r ).getServerPath(); + command.addArgument( serverPath ); + + command.addArgument( "-checkin" ); command.addArgument( branch ); return command; From 81b9d8455c1cd95f439d121f2f9c8362a710c94a Mon Sep 17 00:00:00 2001 From: OhadR Date: Wed, 23 Jul 2014 16:32:14 +0300 Subject: [PATCH 10/13] SCM-759: fixing tests... --- .../scm/provider/tfs/command/TfsBranchCommandTest.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/test/java/org/apache/maven/scm/provider/tfs/command/TfsBranchCommandTest.java b/maven-scm-providers/maven-scm-provider-tfs/src/test/java/org/apache/maven/scm/provider/tfs/command/TfsBranchCommandTest.java index c647c1045..ecb899ea2 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/test/java/org/apache/maven/scm/provider/tfs/command/TfsBranchCommandTest.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/test/java/org/apache/maven/scm/provider/tfs/command/TfsBranchCommandTest.java @@ -31,8 +31,10 @@ public void testCommandline() { TfsScmProviderRepository repo = getScmProviderRepository(); Commandline cmd = new TfsBranchCommand().createCommand( repo, getScmFileSet(), "branch" ).getCommandline(); - String path = getScmFileSet().getBasedir().getAbsolutePath(); - String expected = "tf branch -login:user,password " + path + " -checkin branch"; + //SCM-759 + //String path = getScmFileSet().getBasedir().getAbsolutePath(); + String serverPath = "serverpath"; + String expected = "tf branch -login:user,password " + serverPath + " -checkin branch"; assertCommandLine( expected, getWorkingDirectory(), cmd ); } From 6534fc22811fff3f7c96992df0109fb5cbfb8b64 Mon Sep 17 00:00:00 2001 From: OhadR Date: Wed, 23 Jul 2014 17:06:25 +0300 Subject: [PATCH 11/13] gitignore --- .gitignore | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index d93c7cd54..3097dff6c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,5 @@ -*.ipr -atlassian-ide-plugin.xml -*.iml -*.iws -target -.classpath -.project -.settings -build -.idea -.java-version -maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvsexe/src/test/repository/CVSROOT/history -maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvsjava/src/test/repository/CVSROOT/history +.metadata/ +.settings/ +target/ +*.classpath +*.project \ No newline at end of file From 3774a862d826adee4f95f1c55e23ec955eefc549 Mon Sep 17 00:00:00 2001 From: OhadR Date: Tue, 29 Jul 2014 15:53:46 +0300 Subject: [PATCH 12/13] [SCM 753] TFS - better flow for checkin policies errors --- .../provider/tfs/command/TfsCheckInCommand.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java index e0f23d9f6..2b2a5356a 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java @@ -48,13 +48,16 @@ protected CheckInScmResult executeCheckInCommand( ScmProviderRepository r, ScmFi //[SCM-753] support TFS checkin-policies - TFS returns error, that can be ignored. if( err.hasBeenFed() && err.getOutput().startsWith( TFS_CHECKIN_POLICIES_ERROR ) ) { - getLogger().debug( "exclusion: got error " + TFS_CHECKIN_POLICIES_ERROR + " due to checkin policies. ignoring it..." ); + getLogger().info( "exclusion: got error " + TFS_CHECKIN_POLICIES_ERROR + " due to checkin policies. ignoring it..." ); } - if ( status != 0 || ( err.hasBeenFed() && !err.getOutput().startsWith( TFS_CHECKIN_POLICIES_ERROR ) ) ) - { - getLogger().error( "ERROR in command: " + command.getCommandString() + "; Error code for TFS checkin command - " + status ); - return new CheckInScmResult( command.getCommandString(), "Error code for TFS checkin command - " + status, - err.getOutput(), false ); + else + {//TODO - open bug for this (status is 0 or 1 bcoz checkin policies + if ( status != 0 || err.hasBeenFed() ) + { + getLogger().error( "ERROR in command: " + command.getCommandString() + "; Error code for TFS checkin command - " + status ); + return new CheckInScmResult( command.getCommandString(), "Error code for TFS checkin command - " + status, + err.getOutput(), false ); + } } return new CheckInScmResult( command.getCommandString(), fileConsumer.getFiles() ); } From e72110a2ce779bdda62dbe73e002a6ad732ca49b Mon Sep 17 00:00:00 2001 From: OhadR Date: Wed, 6 Aug 2014 12:08:27 +0300 Subject: [PATCH 13/13] [SCM-770] TFS: cannot create branch (release:branch) when using TFS-power-tools SCM-770 [TFS] cannot create branch (release:branch) when using TFS-power-tools --- .../scm/provider/tfs/command/TfsCheckInCommand.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java index 2b2a5356a..7d28e21e0 100644 --- a/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java +++ b/maven-scm-providers/maven-scm-provider-tfs/src/main/java/org/apache/maven/scm/provider/tfs/command/TfsCheckInCommand.java @@ -34,6 +34,7 @@ public class TfsCheckInCommand { private static String policiesArgument = "/override:checkin_policy"; private static final String TFS_CHECKIN_POLICIES_ERROR = "TF10139"; + private static final String TFS_EMPTY_CHECKIN_ERROR = "There are no remaining changes to check in."; protected CheckInScmResult executeCheckInCommand( ScmProviderRepository r, ScmFileSet f, String m, ScmVersion v ) throws ScmException @@ -46,12 +47,16 @@ protected CheckInScmResult executeCheckInCommand( ScmProviderRepository r, ScmFi getLogger().debug( "status of checkin command is= " + status + "; err= " + err.getOutput() ); //[SCM-753] support TFS checkin-policies - TFS returns error, that can be ignored. - if( err.hasBeenFed() && err.getOutput().startsWith( TFS_CHECKIN_POLICIES_ERROR ) ) + //...and [SCM-770]: support TFS checkin with power tools, that does not return error due to "checkin-policies" but returns + //a different error for "empty checkin" + if( err.hasBeenFed() && + ( err.getOutput().startsWith( TFS_CHECKIN_POLICIES_ERROR ) ) || err.getOutput().contains( TFS_EMPTY_CHECKIN_ERROR ) ) { - getLogger().info( "exclusion: got error " + TFS_CHECKIN_POLICIES_ERROR + " due to checkin policies. ignoring it..." ); + getLogger().info( "exclusions: got error " + TFS_CHECKIN_POLICIES_ERROR + " due to checkin policies, " + + " or due to empty checkin (if you use TFS power-tools). ignoring it..." ); } else - {//TODO - open bug for this (status is 0 or 1 bcoz checkin policies + { if ( status != 0 || err.hasBeenFed() ) { getLogger().error( "ERROR in command: " + command.getCommandString() + "; Error code for TFS checkin command - " + status );