代码之家  ›  专栏  ›  技术社区  ›  chotchki

如何将一个代码库从一个svn repo迁移到另一个svn repo?

  •  6
  • chotchki  · 技术社区  · 16 年前

    我在一个结构糟糕的svn repo中有一个分支,需要剥离出来并转移到另一个svn存储库(我正试着把它清理干净一些)。

    svn log 而不是 复制/重命名时停止

    this question 但是这个分支已经被移到了所有地方,我也希望保留这些移动。

    4 回复  |  直到 9 年前
        1
  •  2
  •   scherand    16 年前

    我猜这可能与@ZacThompson(和@Pekka)的意思相似:我认为 svndumpfilter 他是你的朋友。

    SVN Documentation ,我相信:

    另外,复制的路径可以为您提供一些 存储库中的操作,其中 已存在的路径。这是可能的 在生命的某个时刻 来自某个位置的文件或目录 svndumpfilter排除到 转储数据是自给自足的, svndumpfilter仍需要显示 添加新路径,包括 由创建的任何文件的内容 从一个不会 存在于筛选的转储数据中 溪流。但是因为颠覆 存储库转储格式仅显示 复制源的内容可能不存在 随时可用。如果你怀疑 在存储库中,您可能希望 那是你生命的源泉 复制操作也很麻烦。

    意思:制造 SVNDUMP过滤器 全部的 树枝曾经生活过的地方。还是我遗漏了什么?

    另一种可能是 svndumpfilter2 ).

        2
  •  1
  •   Zac Thompson    16 年前

    1. svnadmin转储
    2. SVNDUMP过滤器
    3. svnadmin负载

    如果您想完成整个分支,甚至可能不需要svndumpfilter。但如果你这么做了:

    http://svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.html#svn.reposadmin.maint.filtering

        3
  •  0
  •   Community Mohan Dere    6 年前

    还有另一个解决方案非常简单,解决了 “保留动作” 问题。请参阅apachesubversion FAQ条目的最后一段 "How do I completely remove a file from the repository's history?" . 解决方案不依赖于 svndumpfilter

    您可以执行以下步骤:

    1. 配置 path-based authorization 规则 否认 用户名 帐户到 路径

      . 要删除的文件或文件夹可以有不同的名称,也可以位于存储库历史记录中的不同位置。在设置拒绝规则时请考虑这一点。

    2. 创建空存储库,

    3. 复制源存储库 svnsync 将工具添加到帐户下的目标存储库 用户名 SVN同步 请参阅SVNBook章节 "Repository Replication"

    不像 SVNDUMP过滤器 SVN同步 自动翻译 svn copy 将源路径不可读的操作添加到普通加法中,这在历史记录涉及复制操作且仍需过滤时非常有用。:)

        4
  •  -2
  •   Achilles    16 年前