将两个CVS项目合并为一个SVN项目

将两个CVS项目合并为一个SVN项目,svn,cvs,svnadmin,Svn,Cvs,Svnadmin,我有两个CVS项目,我在Eclipse中维护它们。我签出第一个项目,对于第二个项目,我使用“在现有项目中签出”选项,所以我能够在一个Eclipse项目中维护两个CVS项目。这样我就可以用相同的标签标记两个项目,等等 要知道,现在是开始使用SVN的时候了。我能够创建两个单独的CVS转储文件,当我使用svnadmin加载到SVN存储库时,我无法保持CVS中的结构 因此,当我将两个转储分别导入SVN时,我得到以下结构: 普罗贾- 布兰彻 标签 树干 项目 支架 标签 树干 在CVS中,我能够将Proj

我有两个CVS项目,我在Eclipse中维护它们。我签出第一个项目,对于第二个项目,我使用“在现有项目中签出”选项,所以我能够在一个Eclipse项目中维护两个CVS项目。这样我就可以用相同的标签标记两个项目,等等

要知道,现在是开始使用SVN的时候了。我能够创建两个单独的CVS转储文件,当我使用svnadmin加载到SVN存储库时,我无法保持CVS中的结构

因此,当我将两个转储分别导入SVN时,我得到以下结构:

普罗贾- 布兰彻 标签 树干

项目 支架 标签 树干

在CVS中,我能够将ProjB作为ProjA主干的子文件夹


有没有办法使用SVN来实现这一点?

如果这些项目是真正独立的,那么可以使用它,这将允许您将其中一个存储库引用(并自动从另一个存储库下载内容)。

在SVN中,您只需将文件和文件夹移动到您想要的位置即可


查找
svn move
命令

项目的Subversion概念是“作为一个单元标记和分支的对象”。同时标记或分支单独的项目是很麻烦的,不管它们是在单独的Subversion存储库中还是在单个存储库中的子项目。我熟悉的其他现代VCS也有同样的局限性

< P> >我想问题是:如果你想同时标记或分支这些“项目”,它们是真正分开的项目,还是应该在单个“主”项目中考虑它们的子目录?如果它们是单个项目的一部分,那么同时对它们进行标记或分支就很简单了,当然单独标记或分支它们会变得更麻烦


我建议遵循以下经验法则:项目是一组文件,这些文件将与单个版本号一起发布。如果您的“项目”通常以单个版本号发布,那么请将它们视为单个项目的子目录。如果它们将使用单独的版本号单独发布,则将它们视为单独的、独立的项目。

我无法使用“移动”命令来完成我不想做的事情,因为如果我无法将ProjB trunk文件夹作为ProjA trunkmove-m的aa子目录来获取,则" svn://server/test/sqloracle svn://server/test1/popiscdc/trunk/sqloracle 找不到存储库svn:在中找不到存储库'svn://server“–@komunca:您写道:“因此,当我将这两个转储分别导入SVN时,我得到以下结构:[…]在CVS中,我能够将ProjB作为ProjA主干的子文件夹!”我想你已经在SVN回购中拥有了这两个项目。导入它们后,您可以将其中一个移到另一个中—如果它确实是它的子项目的话。(参见mhagger关于这个问题的精彩回答。)我尝试了这个,但问题是我在eclipse下使用了subclipse功能“Tags”,当我将外部值设置为ProjA的ProjB时,在ProjA的文件中我可以看到我以前创建的标记(使用configure Tags/branchs),但在ProjB的所有文件中,没有标签!!我尝试在外部设置ProjB的标记(仅检出ProjB和配置标记),但在设置外部属性时并没有得到任何结果。另外,当我用外部ProjB标记新项目ProjA时,我无法得到我想要的东西。我将尝试从CVS获得整个“主”项目,标记将很简单,但问题是我正在使用refine脚本获得CVS转储,因为项目非常大,refine无法处理它,因此,我尝试使用单独的子文件夹进行优化。(一个接一个)。只有refine可以处理我的项目(cvs2svn不能)。