我可以使用一些建议。 我正在采用subversion,我正在尝试将一些现有的Visual Studio 2010项目放入存储库中。我有当前版本的AhnkSvn。
我所拥有的项目被组织为;
VS2010_projects \ Project_A
VS2010_projects \ Project_B
VS2010_projects \ Project_C
VS2010_projects \ Common_code
Project_A,Project_B和Project_C都可以引用“Common_Code”中的一个或多个文件 在visual studio中,这些文件将使用“添加为链接”添加。
“Common_code”中没有实际项目只是一组有用的代码文件,我们可能会在不同的项目中重复使用它们。 (如果我们有一个在各种项目中重复使用的模块或类,那么我们经常在'common-code'中保留一个主副本,并链接到它。) Visual Studio对此没有任何问题。
当我将任何实际项目添加到subversion时,所有自己的文件都添加得很好,但链接文件被忽略。 (结果,如果我得到这些文件的工作副本,那么只是处理的项目文件,我不会得到链接文件的副本。) 如果我右键单击任何链接文件,我获得的唯一subversion选项是刷新其状态或选择工作文件夹。
我想知道处理这种情况的正确方法是什么?
非常感谢任何建议
谢谢!
罗伯特
答案 0 :(得分:0)
如果我理解你的问题,那么我认为SVN正在以理想的方式行事。链接文件仅是对另一个文件的引用。该引用仅存在于已签入的.csproj文件中。在源代码管理中拥有同一文件的两个副本是没有意义的,并且可能导致版本控制问题。第一次检查存储库时,对项目进行构建应该将文件从Common_code复制到它们链接的位置。
另外,我们在.csproj链接文件和SVN上有很多随机问题,因此尽可能避免使用链接文件。在项目中重用文件的更好方法显然只是将它们嵌入到库中,然后引用该库。这应该可以正常工作,但某些文件除外,如Javascript / CSS。
另外你可能想查看SVN外部,一位同事提到这可以用来在多个项目之间共享公共库,虽然作为免责声明我自己没有尝试过,也无法评论其优缺点。方法。
答案 1 :(得分:0)
感谢您的建议,我实际上做了类似于您的建议。 我不想创建一个完整的库,但我确实组成了一个虚拟项目,并将我的共享文件放入其中。 然后我将虚拟项目添加到存储库。
AhnkSvn现在似乎对链接文件处于颠覆控制下感到满意,并且似乎处理它们就好了。 (我没有在现有项目中添加对虚拟项目的任何引用 - 它们只是像以前一样使用链接文件 - 但现在AhnkSvn向我显示了它们的状态,并允许我获取最新版本并提交更改。)
我可以看到拥有合适库的情况 - 但这意味着要修改大量现有项目。这种方法让我可以启动并运行Subversion而无需首先进行这些更改。