我在几个不同的软件项目上工作,我开始构建一些具有实用功能的通用库,我在其中使用了所有这些功能。最近我在不同的物理位置同时进行了三到四个项目,并且手动同步库很痛苦。
所以我想我应该为这些库创建一个存储库,以便我可以从任何地方访问它们。我将最后坐下来在项目之间同步它们,提交它们,从现在起我将拥有存储库以确保我保持正确并保持最新版本的库与所有相关项目一起工作。
因为我在Visual Studio 2010中工作,所以我选择了AnkhSVN。令我沮丧的是,它似乎不允许您只管理解决方案中的项目 - 只有整个解决方案!
我按照说明here;他们很清楚。有一些小混乱,显然SVN“项目”不是Visual Studio“项目”。
所以我在解决方案资源管理器中选择一个项目,右键单击它,然后选择“将所选项目添加到Subversion ...”。弹出的窗口使用解决方案名称作为标记为“项目名称”的字段。这是一个麻烦的迹象,但我可以手动将其更改为实际的项目名称。然后我可以选择一个存储库,并为此项目创建一个文件夹。到目前为止一切都很好。
但是对于“本地文件夹”,它是一个下拉列表,默认选择是解决方案的位置,并且唯一的其他选项是在树上移动更远的位置。如果我按原样离开并点击OK,AnkhSVN想要将整个解决方案放在我创建的目录中(假设仅用于所选的项目)。
事实上,如果我选择“向Subversion添加解决方案......”,我会得到一个相同的窗口。
我希望Subversion只管理解决方案中的某些项目。通过本地解决方案,这就是我如何确保我的库保持通用;而不仅仅是链接到构建我将整个源添加到每个解决方案,因此更改是“全局的”。现在我需要在物理上不同的位置进行解决方案,显然AnkhSVN不会让我这样做吗?它是破碎还是设计?
答案 0 :(得分:1)
没有“标准”方式提供用于处理这种情况的UI,但如果您只是检查工作副本并将所有项目放在一个布局中,AnkhSVN将只提供处理此项目的所有工具。
我们AnkhSVN团队正在研究的真正难题是我们如何能够轻松提供必要的UI来处理这种布局。如果项目是由生活在硬盘不同部分的不同树木制成的,那么没有简单的方法来布局项目。
某些项目的解决方法可能是创建一个父工作副本,其外部(svn:externals
)指向单独的项目。在那种情况下,检查rooot项目将自动引入其他项目。
答案 1 :(得分:0)
看起来自2008年以来就已经知道这一点,开发人员认为这不是一个重要问题。
http://ankhsvn.open.collab.net/ds/viewMessage.do?dsForumId=582&dsMessageId=152095
答案 2 :(得分:0)
你可以这样做。
在为所有项目制定解决方案之前,请按照步骤进行操作。
通过这种方式,您可以将更改提交到所需的项目,并且提交不会捆绑到解决方案。
稍后您可以轻松地将项目与解决方案分开(删除,转移到其他解决方案等)。