Maven Release Plugin - svn: E200007: Source and destination URLs appear not to point to the same repository

Atanas Kanchev picture Atanas Kanchev · Dec 4, 2013 · Viewed 9.4k times · Source

I'm getting this error during the mvn release:prepare goal:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.4.2:prepare (default-cli) on project env-status-checks: Unable to tag SCM
[ERROR] Provider message:
[ERROR] The svn tag command failed.
[ERROR] Command output:
[ERROR] svn: E200007: Source and destination URLs appear not to point to the same repository.

That's the failing SVN command

[INFO] Tagging release with the label env-status-checks-0.0.1...
[INFO] Executing: cmd.exe /X /C "svn --username akanchev --password ***** --no-auth-cache --non-interactive copy --file C:\Windows\TEMP\maven-scm-1102804858.commit --revision 9260 svn://svn.XXXX.local/qa/XX-tf/trunk/env-status-checks http://svn.XXXX.local/qa/XX-tf/tags/env-status-checks-0.0.1"
[INFO] Working directory: C:\Users\Administrator\.jenkins\jobs\Test release\workspace

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

The pom.xml config for the maven release plugin is:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.4.2</version>
       <configuration>
          <tagBase>http://svn.XXXX.local/qa/XX-tf/tags</tagBase>
       </configuration>
</plugin>

And that's the SVN scm:

<scm>
    <connection>scm:svn:svn://svn.XXX.local/qa/wh-tf/trunk/env-status-checks</connection>
    <developerConnection>scm:svn:svn://svn.XXX.local/qa/XX-tf/trunk/env-status-checks</developerConnection>
    <url>scm:svn:svn://svn.XXX.local/qa/XX-tf/</url>        
</scm>

FINAL SOLUTION (thanks Ben):

I was actually fooled by the maven guide for the release plugin. In the example there

<tagBase>https://svn.mycompany.com/repos/myapplication/releases</tagBase>

What worked properly for me is:

TAG base

<tagBase>svn://svn.XXXX.local/qa/XX-tf/tags/</tagBase>

SCM connection

<scm>
  <connection>scm:svn:svn://svn.XXXX.local/qa/XX-tf/trunk/env-status-checks</connection>
 </scm>

Answer

Ben Reser picture Ben Reser · Dec 5, 2013

Your svn copy command is mixing two different protocols. The source is svn:// and the destination is http://. You need to use the same protocol when doing a server side copy since the destination and source have to be reachable via the same connection.

Switching to using both via svn:// or both via http:// should solve your problem.