2011-11-30 45 views
1

我在几个不同的软件项目上工作,并开始构建一些通用函数库,并使用了所有这些函数。最近我有三个或四个项目在不同的物理位置同时进行,手动同步库变得非常痛苦。AnkhSVN - 管理VS *项目*不*解决方案*

所以我想我应该创建这些库的存储库,以便我可以从任何地方访问它们。我将最后一次坐下来在项目之间进行同步,提交它们,从现在开始,我将拥有存储库,以确保我保持直线并保持最新版本的库与所有相关项目一起工作。

因为我在Visual Studio 2010中工作,所以我使用了AnkhSVN。令我沮丧的是,它似乎并不允许您只管理解决方案中的项目 - 只有整个解决方案!

我按说明书here;他们很清楚。 SVN“项目”显然不是一个Visual Studio“项目”,有一些小小的混淆。

因此,我在解决方案资源管理器中选择一个项目,右键单击它,然后选择“将所选项目添加到Subversion ...”。弹出的窗口使用解决方案名称标记为“项目名称”的字段。这是一个麻烦的迹象,但我可以手动将其更改为项目名称。然后我可以选择一个存储库,并为此项目创建一个文件夹。到现在为止还挺好。

但是对于“本地文件夹”,它是一个下拉列表,默认选择是解决方案的位置,唯一的其他选项是向上移动树。如果我保持原样并点击确定,AnkhSVN希望将整个解决方案放入我创建的目录中(假设仅适用于所选的项目)。

事实上,如果我选择“添加解决方案到Subversion ...”,我会得到一个相同的窗口。

我想Subversion只管理解决方案中的某些项目。使用本地解决方案,这就是我确保我的图书馆具有普遍性的原因;而不是仅仅连接到构建,我将全部源添加到每个解决方案,以便更改为“全局”。现在我需要在物理位置不同的位置进行解决,显然AnkhSVN不会让我这样做?它是破碎的还是这个设计?

回答

1

有提供UI来处理这种情况的没有“标准”的方式,但如果你只是检出你的工作拷贝,并把所有的项目在一个单一的布局AnkhSVN的将只是提供的所有工具在这个项目上工作。

真正难以解决的问题 - 我们作为AnkhSVN团队正在努力的方向 - 就是我们如何提供必要的用户界面来轻松处理这种布局。如果你的项目是由不同的硬件生成的,那么你的项目就没有简单的方法。

某些项目的解决方法可能是创建一个带有指向各个项目的外部工作副本(svn:externals)。在这种情况下,检查rooot项目将自动引入其他项目。

+0

如果不同的树不住在硬盘的不同部分?我的意思是,如果我从一个空白的解决方案文件夹开始,然后通过Tortoise或svn.exe从SVN中的现有项目执行SVN签出到一个子文件夹,然后进入VS和添加 - 现有项目并指向什么是刚刚签出。现在所有的项目都在同一个文件夹中。多个VS解决方案将拥有自己的单个SVN“项目”的工作副本。 –

0

您可以按照这种方式继续。

在为所有项目制定解决方案之前,请遵循以下步骤。

  1. 对于每个项目分别将它们添加到SVN(每 它在SVN自己的目录结构项目)
  2. 成为溶液
  3. 添加所需的每一个项目的解决方案。

通过这种方式,您可以将更改仅提交给期望的项目,并且提交不会捆绑到解决方案。

稍后,您可以轻松地将项目从解决方案中分离出来(删除,移至其他解决方案等)。

相关问题