This is the SVN structure:
/trunk + ProjectA + ProjectB + Common + ProjectCore + References
ProjectA and ProjectB will supply the final product, and each of them can have its own release life cycle. Both projects use the same shared libraries from ProjectCore . ProjectCore will also have its own release life cycle. In ProjectA and ProjectB we want to reference the libs of ProjectCore . ProjectCore-libs were added to SVN after the successful ProjectCore release life cycle. ProjectCore-libs files are added to the References folder.
Having done this, we will release (freeze) our ProjectCore assemblies as a component that has been fully tested. So, we have several releases of Core-lib:
- RLS_Core_1.00
- RLS_Core_1.01
- RLS_Core_2.00
- RLS_Core_3.00
Since we add released libs (dll's) to SVN, ProjectA and ProjectB can reference them. What is the best way to do this?
Approach 1
Add ProjectCore -libs in SVN to a new folder under References named RLS_Core_X_XX .
In the ProjectA and ProjectB solutions, we will add a link to this unique folder: ./trunk/Common/References/RLS_Core_X_XX .
Approach 2
Add ProjectCore -libs to SVN under the same References/Core folder. In case it had an "older" version, this will be a commit.
In the ProjectA and ProjectB solutions, we will add a link to: ./trunk/Common/References/Core . We use the external properties of SVN to determine which version of Core-lib should be used for ProjectA and ProjectB .
In both approaches, the developer clearly needs to decide which version of Core-libs he wants to use in his project. The rule supports the same Core-libs if you do not need to update due to lack of functionality. Approach 1 : Editing in a project solution. Approach 2 : edit external properties.
Which approach is preferable?
source share