Is this possible with tortoiseSVN?:
Always freeze svn:externals
for tags
the scenario is our trunk will always use the 'HEAD' revision for externals, however when we create 'tags' we would like for them to have a revision set for externals to properly 'freeze' them at a specific point in time.
Update
Thanks to everyone for your feedback/info.
Since I could not find anything that would completely meet our needs (tried smartsvn
and svncopy.pl
) I made a console app that so far has passed all our test cases.
A high level overview: The app takes a repository URL then looks for all externals and adds the last commit revision for them - I do a svn info
and get the "commit revision".
The app works with both folder and single file externals.
Here is the source code and complete setup files: http://svnxf.codeplex.com/
I would second Michael.
Additionally to recommendation from SVN documentation:
Generally, SVN seems to be designed mostly for code contained in a common directory. svn:externals (even by name) is added for referencing external repositories. So I would expect other problems additionally to mentioned above.
On my experience need for usage of svn:externals for non-fixed revisions frequently comes from wrong structure in repository.
May be it's not your case, I just advise to take into account these points...
You can try svncopy.pl (find it on google) It is a perl script that answer your need.
You should try SmartSVN which optionally converts HEAD-externals to fixed externals when creating tags or branches. You can find this option (External Revisions: (o) Leave as is ( ) Fix all ( ) Fix except below) at the bottom of the Add Tag/Add Branch dialogs.
The recommended best practice is to always use an explicit revision (not HEAD) in externals definitions. From the documentation:
To directly answer your question: no, it’s not possible to automatically change the externals definitions when tagging using TortoiseSVN. It will have to be done manually when creating the tag.
I know this isn't for tortoiseSVN, but if you use eclipse with subversive, you can right click the project and select team->tag. Subversive freezes externals by default and formats the properties quite nicely.
I found this post today as I looked for a solution to the exact same problem. Eventually I found that TortoiseSVN in their latest version DOES support this desired functionality: TortoiseSVN 1.7 Release Notes.
Hopefully this will help others who find this post when researching the same issue.