I was just wondering if this is possible using TortoiseSVN:
I have a file living in one directory in the repository, let’s say:
\\repo\work_branch\bin\Important.dll
This file gets updated whenever it needs to be, but always at this location in the repository.
I have another folder, containing a different executable, i.e:
\\repo\program_2\bin\
What I would like to have happen is that whenever a user grabs what’s under \\repo\program_2\bin\, they also get Important.dll from the path specified above.
I.e. I don’t want to have to place Important.dll inside ‘\repo\program_2\bin\’ but still want the user to get what is essentially a copy of it when they grab that folder.
Yeah. svn:external can do that for you. if you’re on 1.6.x or higher you can do it on a single file, 1.5 only works on directories. The syntax for file externals is:
http://svnbook.red-bean.com/nightly/en/svn.advanced.externals.html
You want to be very sure that you use an explicit revision as the target of your external. A tag is preferable, but a repo revision will work. The goal is to be able to reproduce an older build – if you set your external to the trunk, you may get a new version of Important.dll if you rebuild from an older tag.
In the java world there is some stellar tooling to deal with this very case – maven and ivy do a really good job of dependency management. I’ve never successfully done anything similar for .NET – but I strongly recommend you check into it. http://refix.codeplex.com http://nathanmarz.com/blog/introducing-nanny-a-really-simple-dependency-management-tool.html may be worht some research.