[ http://jira.codehaus.org/browse/SCM-406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=155632#action_155632 ]
Torsten Juergeleit commented on SCM-406: ---------------------------------------- George, you're right. Hard-coding the update to trunk like the patch in SCM-262 doesn't fly. So how about the workaround suggested by Alison Winters to do "svn update" prior to the "svn copy" in ScmTagPhase? Maybe something like {code} Index: src/main/java/org/apache/maven/shared/release/phase/ScmTagPhase.java =================================================================== --- src/main/java/org/apache/maven/shared/release/phase/ScmTagPhase.java (revision 720901) +++ src/main/java/org/apache/maven/shared/release/phase/ScmTagPhase.java (working copy) @@ -61,8 +61,6 @@ validateConfiguration( releaseDescriptor ); - logInfo( relResult, "Tagging release with the label " + releaseDescriptor.getScmReleaseLabel() + "..." ); - ScmRepository repository; ScmProvider provider; try @@ -80,12 +78,35 @@ throw new ReleaseExecutionException( "Unable to configure SCM repository: " + e.getMessage(), e ); } + // TODO: want includes/excludes? + ScmFileSet fileSet = new ScmFileSet( new File( releaseDescriptor.getWorkingDirectory() ) ); + + // Due to a Subversion bug http://subversion.tigris.org/servlets/BrowseList?list=users&by=thread&from=686753 + // regarding the tag command (svn copy) we need to update the working directory first! + if ("svn".equals(provider.getScmType())) + { + UpdateScmResult result; + try + { + logInfo( relResult, "Due to a Subversion bug we have to update the working directory before tagging ..." ); + result = provider.update( repository, fileSet ); + } + catch ( ScmException e ) + { + throw new ReleaseExecutionException( "An error is occurred while updating working directory: " + e.getMessage(), e ); + } + + if ( !result.isSuccess() ) + { + throw new ReleaseScmCommandException( "Unable to update working directory", result ); + } + } + TagScmResult result; try { - // TODO: want includes/excludes? - ScmFileSet fileSet = new ScmFileSet( new File( releaseDescriptor.getWorkingDirectory() ) ); String tagName = releaseDescriptor.getScmReleaseLabel(); + logInfo( relResult, "Tagging release with the label " + tagName + "..." ); result = provider.tag( repository, fileSet, tagName, releaseDescriptor.getScmCommentPrefix() + " copy for tag " + tagName ); } {code} > scm tag does not work with Subversion 1.5.1 > ------------------------------------------- > > Key: SCM-406 > URL: http://jira.codehaus.org/browse/SCM-406 > Project: Maven SCM > Issue Type: Bug > Components: maven-scm-provider-svn > Affects Versions: 1.0 > Reporter: James William Dumay > Fix For: 1.1.1 > > > scm:checkin does not work with Subversion 1.5.1 > On release:perform (which I assume calls scm:checkin) the following error > occurs: > {code} > svn: File > '/svn/private/atlassian/confluence/tags/confluence-project-2.10-m1/conf-acceptance-test/pom.xml' > already exists > {code} > Using subversion 1.4.x is a good enough workaround. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira