svn - 将多个 SVN 存储库合并为一个

标签 svn

在考虑了上一个问题 ( One SVN Repository or many? ) 的答案后,我决定将我拥有的 4 个左右存储库合并为一个。这当然引出了一个问题,最好的方法是什么?

有没有办法组合两个或多个存储库来维护两者的版本历史记录?

编辑:我还应该指出,我正在使用 Assembla.com,它不提供对 svnadmin 命令的访问,据我所知

另一个编辑:这还重要吗?如果 svnadmin 可以处理 URL,那就没问题了。

最佳答案

编辑:哦,好吧,问题编辑是在我打字时进行的。这是一个答案

Is there a way to combine two or more repositories maintaining the version history for both?

<小时/>

假设

现有存储库的结构如下:

  • 存储库根目录
    • 分支机构
    • 标签
    • 树干

你想要一个类似的结构:

  • 存储库根目录
    • 项目A
      • 分支机构
      • 标签
      • 树干
    • 项目B
      • 分支机构
      • 标签
      • 树干

然后对于每个项目存储库:

svnadmin dump > project<n>.dmp

然后对于每个转储文件:

svn mkdir "<repo url>/project<n>"
svnadmin load --parent-dir "project<n>" <filesystem path to repos>

更复杂的操作是可能的,但这是最简单、最直接的。在转储/加载期间更改源存储库结构是危险的,但可以通过 svnadmin dumpsvndumpfilter、手动编辑或其他文本过滤器和 svnadmin 的组合来实现加载

<小时/>

与第三方提供商打交道

  • 为每个存储库请求 svnadmin dump 文件。提供商应该愿意/能够提供此信息 - 它您的代码!
  • 在本地创建 SVN 存储库。
  • 对转储文件执行上面列出的操作。
  • 验证您最喜欢的客户端的存储库结构是否正确。
  • 为组合存储库创建转储文件。
  • 请求提供商从此转储文件填充新的存储库。

YMMV:这似乎是一个合理的方法,但我从未与这样的第三方提供商合作过。

关于svn - 将多个 SVN 存储库合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/267256/

相关文章:

java - Subclipse 无法重命名文件 (OS X)

visual-studio-2010 - 使用 VisualStudio 2010 的 VisualSVN 服务器自动将 "branches/tags/trunk"文件夹添加到 AnkhSVN?

python - 在 python 中什么是 <type 'revision' >

checkout 最新版本的 repo 后,vb.net 服务器出现 '/' 应用程序错误

git - 将二进制文件附加到 Git 标记

svn - 在 --ignore-externals 之后检查 subversion 中的一个外部

visual-studio-2010 - 我们是否应该在使用 Visual Studio 和版本控制时忽略 Solution Output 文件夹?

SVN 不会提交未版本控制的文件,即使它们显示为 svn 状态

git - 获取用于 Subversion -> Git 迁移的 SVN 用户列表?

svn - 进行持续集成时的最佳分支策略?