You have to supply commit log message when you use svn rm
to delete the file in remote repository. When doing delete, rename, copy etc via URL, the action results into immediate commit, i.e. new revision in SVN repository which log message is required.
So the command should be :
PROJECT=myproject
svnrepo=svn+ssh://[email protected]/var/svn-repos/$PROJECT
svn rm -m "Removed the tag" "$svnrepo/tags/version 3.6.2"
Beware that using svn rm
will not remove the tag completely. The revision where this tag was created will still exist in repository history.
The only option to remove the path completely is to filter the repository history with svndumpfilter
tool:
- Dump the repository using
svnadmin dump /var/svn-repos/$PROJECT > /tmp/$PROJECT.dump
Filter the repository history using svndumpfilter
:
svndumpfilter exclude "tags/version 3.6.2" --drop-empty-revs < /tmp/$PROJECT.dump > /tmp/filtered.dump 2>/tmp/filterlog.txt
Look though the filterlog.txt
to make sure that the history filtration has completed as expected.
Create new empty repository using svnadmin create
command.
Load the filtered dump to the new repository using svnadmin load
command. The repository will have the whole history but commits related to "tags/version 3.6.2" do not exist anymore.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…