Hi,
What I have
I have a C++ code base and svn is used for VCS.
My code uses several 3rd party products. We use different version of each product and use it on different OS (Linux and Windows).
The 3rd products (with the required version) are present in on compilation machines and are used at compilation time, so the relationship between code and the used 3rd party version is loosely coupled.
What I want
I want to change the situation. The idea is to utilize svn vendor branch. In contrast to what described in svn vendor branch, we will store binary version of 3rd party product and not code itself. This is since we never patch 3rd party code.
svn:external will be used to use an appropriate version of 3rd party product. Here a skeleton of svn repository:
svn_repo/vendor/product1/OS1/ver1 <- mymodule using it
vendor/product1/OS2/ver1 <- mymodule using it
vendor/product1/OS1/ver2
vendor/product1/OS1/ver2
vendor/product2/OS1/ver1
vendor/product2/OS2/ver1
vendor/product2/OS1/ver2 <- mymodule using it
vendor/product2/OS1/ver2 <- mymodule using it
mymodule/ <- this is my actual code referring to a particular
products from vendor/ using svn:external
mymodule/vendor/product1/OS1 <- reference to vendor/product1/OS1/ver1
mymodule/vendor/product1/OS2 <- reference to vendor/product1/OS2/ver1
mymodule/vendor/product2/OS1 <- reference to vendor/product1/OS1/ver2
mymodule/vendor/product3/OS2 <- reference to vendor/product1/OS2/ver2
Question
In svn red book in vendor branch chapter, it is proposed to maintain a current/ containing the latest release of 3rd party product, so from the example we end up with:
repos/vendor/libcomplex/current - contains 1.1
repos/vendor/libcomplex/1.0
repos/vendor/libcomplex/1.1
Since we don't patch 3rd party code I don't see any point to maintain current/. This looks too have to maintain it, therefore you can see that svn is supplied with auxiliary perl script *svn_load_dirs.pl* to aid.
My guess current/ is required to:
- To make different versions svn releted and then svn comparable.
- As a side the version are stored in more efficient way in svn repository.
I don't see we really need those.
So the question is if we can safely bypass handling of current/ in vendor branch?
Thanks