Is this possible with tortoiseSVN?:
Always freeze svn:externals
for tags
the scenario is our trunk will always use the \'HEAD\' revision for externa
The recommended best practice is to always use an explicit revision (not HEAD) in externals definitions. From the documentation:
You should seriously consider using explicit revision numbers in all of your externals definitions. Doing so means that you get to decide when to pull down a different snapshot of external information, and exactly which snapshot to pull. … For software projects, this could be the difference between a successful and a failed build of an older snapshot of your complex codebase.
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 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 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.
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.
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/
You can specify the revision in externals:
third-party/skins -r148 http://svn.example.com/skinproj
See svnbook