2012-04-19 80 views
1

我使用cvs2svn工具从CVS最近迁移到SVN。在我的一个项目的新迁移项目中,最新版本是分支A分支(父目录)的一部分。在这个项目中,我有一个子项目,它的最新版本是另一个分支,说分支B.So基本上干线没有我的主项目的最新版本。因此,在CVS中签出我的父文件夹(分支A)后,我会浏览到我的子项目>右键单击> CVS>更新特殊>选择分支B(由于分支B具有最新的子项目)。这将检查子项目的最新版本,我会有我的主项目的最新版本。CVS到SVN迁移和分支内的分支

但是在SVN中,我没有看到这个选项。据我所知,SVN只能用修订而不是分支进行更新。我是SVN的新手,所以我错了的可能性更大。有没有办法做我在CVS方案中试图做的事情?

我想出了一个关于检查主项目(分支A)的方法,然后单独检查子项目(分支B)。然后,我会从第一个结帐(父项目 - 分行A)中删除此子项目,并将其替换为子项目的第二个结账版本。

回答

1

您可以通过svn externals完成您的目标。该子项目将是另一个回购的外部。

0

这听起来像你试图做稀疏分支。在稀疏分支中,您有一个分支作为您的基础(我们将呼叫分支A)和另一分支(我们将呼叫分支B),您只将分支A的更改,而不是整个分支。

这有时在CVS中完成,因为分支需要很长时间才能完成。我们发现小项目需要20分钟,大型项目需要1小时。然而,它最终难以追踪,而且我发现使用它的网站往往会忽略如何检出结果。连续构建系统也无法处理CVS稀疏分支设置。

Subversion不会执行稀疏分支(至少很容易),但Subversion中的分支快速而简单。创建分支不到一秒钟。在Subversion中,您应该采取Branch A,并创建Branch B off Branch A。然后,将Branch ABranch B之间的所有差异放在Branch A上。对的更改分支机构A必须定期合并到分支机构B

稀疏分支的问题是,如果文件在两个分支上都被更改,它永远不会被拾取。合并后,两个分支上的更改都将添加到Branch B上的文件中。这就是为什么这么少的网站做稀疏分支。

你需要从A分支创建一个新的分行A,然后让一切都在你的旧分行A到这个新分行A并检查它的变化。然后,分支B将包含所需的所有文件,您可以使用持续集成系统,并且检入入出文件是一步操作。

+0

感谢您的回复。我通过使用switch命令实现了这一点。我将子项目切换到另一个分支,就像我想要的那样。 – 2012-05-01 22:46:49