【问题标题】:Move single SVN folder into a new repository - how?将单个 SVN 文件夹移动到新的存储库中 - 如何?
【发布时间】:2011-04-05 14:45:56
【问题描述】:

我有一个 SVN 存储库,其中包含多个顶级文件夹,每个项目一个。在每个项目文件夹中都有通常的主干、分支、标签。

我需要将其中一个项目文件夹移动到其自己的独立存储库中,以便导出并随后导入到另一台服务器上。新的单项目存储库必须仅包含该项目的修订历史记录,而不包含其他项目的修订历史记录。

关于如何最好地进行的任何想法?

Server 是 Windows 上的 VisualSVN Server,虽然这应该没什么区别。

【问题讨论】:

    标签: svn visualsvn-server


    【解决方案1】:

    您可以使用svnadmin dump,将输出通过svndumpfilter 传输到svnadmin load

    svndumpfilter 可以完全按照您的意愿行事。您可以使用include 子命令在存储库中指定您想要的项目,而忽略其余部分。

    svnadmin load 允许您在存储库中指定要存储输出的目录。

    查看在线手册的Repository Maintenance 部分。

    【讨论】:

    • 完美解决方案。 svnadmin dump i:\repos\myrepo > myrepo.dmp 然后svndumpfilter include MyProject --renumber-revs > filtered.dmp < myrepo.dmp 然后svnadmin load i:\repos\MyNewEmptyRepo < filtered.dmp
    • 使用 --quiet 进行更快的转储和过滤(它不会向控制台输出内容)
    【解决方案2】:
    1. 在 TortoiseSVN 中,您可以选择从 存储库(剥离 svn 信息)。
    2. 在服务器上创建新的存储库
    3. 检查新的 SVN 存储库到您的驱动器
    4. 将导出的文件复制到新的仓库
    5. 提交。

    你去,新的干净的回购。

    【讨论】:

    • 很好,但没有保留版本历史记录。
    • 我认为大多数开发人员都希望保留他们的版本历史记录。
    • 我不反对,版本历史是必须的。
    【解决方案3】:

    要做的一件事是获取为该文件夹完成的签入的一系列 svn 转储。根据它们的修订号命名它们。现在在您的新 SVN 存储库中,按顺序导入它们。如果有任何问题,请在测试回购中尝试解决问题,但这应该是可行的。使用svndump命令详解here

    【讨论】:

      猜你喜欢
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-02
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 2015-04-21
      相关资源
      最近更新 更多