Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
合并多个SVN项目_Svn_Version Control_Svn Administraton - Fatal编程技术网

合并多个SVN项目

合并多个SVN项目,svn,version-control,svn-administraton,Svn,Version Control,Svn Administraton,我正在为一个项目管理一个svn repo,在这个项目中,源代码没有使用一个顶级目录导入。因此,大约有15个独立的“项目”,而不是一个。如何在维护更改历史记录的同时将它们合并到一个文件夹中 *提示:svn移动在这种情况下不起作用 [编辑] 哎呀,重复如果你不想保留其中一个存储库的所有历史记录,你可以在一个项目的存储库下创建一个新目录,然后导入另一个 如果您想保留两者的历史记录,那么可以使用“svnadmin dump”转储一个存储库,使用“svnadmin load”将其加载到另一个存储库中。修订

我正在为一个项目管理一个svn repo,在这个项目中,源代码没有使用一个顶级目录导入。因此,大约有15个独立的“项目”,而不是一个。如何在维护更改历史记录的同时将它们合并到一个文件夹中

*提示:svn移动在这种情况下不起作用

[编辑]
哎呀,重复

如果你不想保留其中一个存储库的所有历史记录,你可以在一个项目的存储库下创建一个新目录,然后导入另一个

如果您想保留两者的历史记录,那么可以使用“svnadmin dump”转储一个存储库,使用“svnadmin load”将其加载到另一个存储库中。修订号将关闭,但您仍将保留历史记录


从这里复制:

也许我对分布式版本控制锤做了太多的工作,现在我看到的都是分布式的钉子。但我必须再次指出,这可能是DVCSs的工作

我会尝试和git svn或类似的东西混在一起。将每个“项目”导入到它自己的git存储库中,然后git将它们从另一个项目中拉出来。解决任何冲突,并在一切完成后,将历史导入Subversion


但是,您的团队在完成合并所有回购协议之后,使用分布式控件可能会更好…

您可以创建一个新的顶级项目,该项目使用svn:externals指向所有其他项目,并将它们放置在适当的子目录中

  • 开发人员只需检查您的新顶级项目(svn将自动跟随svn:externals并引入其他项目)
  • 完整的版本历史记录将被保留,新的更改将自动提交到相关的子项目
  • 实施大约需要5分钟(创建新的顶级项目并运行
    svn propedit svn:externals top_dir

也可以看到这个问题:如果这样做,请记住更新是通过外部递归的,但提交不是,而且如果需要在顶层进行标记或分支,则必须做一些额外的工作。