问题
So right now we currently have a single solution containing about 20+ projects. We need to check this in; however, a few of the projects share the same common libraries. The problem happens when we need to create a tag in SVN for specific projects and then when pulling that project down to make a change we need to also pull the library that was compiled with it at the time. So it will look like this:
/tag
/project1_1.0
+ Project1_1.0 src code..
// COMPILES WITH COMMONLIB_1.0.dll
/project2_1.0
+ Project2_1.0.dll
// COMPILES WITH COMMONLIB_1.1.dll
/project3_1.0
+ Project3_1.0.dll
/CommonLib_1.0
+ CommonLib_1.0 src code...
/CommonLib_1.1
+ CommonLib_1.1 src code...
I saw something about using svn:external so that when we pull project1_1.0 it will pull the common library that was compiled with it. However, doesn't this mean that for every tag we would have to manually go through and add the correct version of the CommonLib using svn:external?
What we're trying to do is have each project have it's own version. Then when rolling to QA/Prod we then tag that code under it's project name and version number. So then when the applications are running and we check the event log and find an error then we can check the version number and then go back to SVN and pull the respective tagged code and make changes. However, we can't just pull the project code because we need to know what specific library was used for compilation (no matter how outdated it is).
Is this a good way of doing things or should we just be checking in the whole solution? This seems a bit drastic when we just want to make a change to a sub-project. We haven't really come up with a great way of using versioning with SVN.
来源:https://stackoverflow.com/questions/11894961/svn-with-multiple-projects-and-single-solution