Within my Subversion project I have a few directories that contain other open source projects that my code needs. For example ffmpeg, freetype, matrixssl and a few others.
What is the best way to update SVN to hold the the latest version of one of these projects?
Essentially I will be doing the following (using ffmpeg as an example):
1) Rename current ffmpeg folder to ffmpeg.old
2) Download new version of ffmpeg from net
3) Make sure it and my code compile and work fine together
4) Update subversion to now hold the "new" version of ffmpeg
5) Delete ffmpeg.old directory tree
You can take a look to svnbook talking about vendor branches. This is exactly what you try to accomplish
You can use svn_load_dirs.pl to replace your manual steps 1-5. svn_load_dirs.pl will also keep track of new, moved or deleted files.
I've got the same situation with CMake, where I keep the binary win32 release checked into our vendor directory:
branches/
trunk/
vendor/
cmake/
cmake-2.6.0/
cmake-2.6.1/
cmake-2.6.2/
...
I then use svn:externals to refer to the CMake version I'm using. Makes it really easy to test upgrading to new versions, and it is also clear which version of CMake I'm using.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With