With each new release I make the tags are included, which eventually leads to this structure:
...VersionExperimentation/tags/VersionExperimentation-0.0.7/tags/VersionExperimentation-0.0.6/tags/VersionExperimentation-0.0.5/tags/VersionExperimentation-0.0.4/tags/VersionExperimentation-0.0.3/tags/VersionExperimentation-0.0.2-beta/tags/VersionExperimentation-0.0.2-alpha/src/main/java
My POM looks like this:
<scm>
<developerConnection>scm:svn:https://[..root svn folder]/VersionExperimentation</developerConnection>
</scm>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<tagBase>[..root svn folder]/VersionExperimentation/tags</tagBase>
</configuration>
</plugin>
</plugins>
</build>
Obviously the tags should be in the root, not in VersionExperimentation folder, where the project is, which is defined in the developerConnection.
What is the best practice here? Should we have a project within some folder within the SVN root and tags in the same path, where the project folder is?
Like:
./projectFolder
./tagsFolder
where DeveloperConnection is going to point to projectFolder and configuration of release tagbase tag to the tagsFolder?
This would seem to follow the recommended repository layout by svn book, which can be found here
$ svn list file:///var/svn/single-project-repo
trunk/
branches/
tags/
If yes, what should we do, if we have projects, which, unfortunately store the project immediately in the root folder?
Should we create the folders, move the data to the right place and configure the pom appropriately, to store the tags in tags folder and to commit to the trunk/projectFolder?