【问题标题】:SVN replicate directorySVN 复制目录
【发布时间】:2009-07-14 17:09:40
【问题描述】:

是否有可能(甚至可行)将目录从一个 SVN 存储库位置复制到另一个位置,保留旧的位置并在两个位置保留每个单独文件的历史记录?到目前为止,我看到 SVN 导入会复制目录但会丢失历史记录或 SVN 移动会重新定位目录。这是一个简短的例子:

  • 将 SVN_ROOT/projects/branches/release1.0/myproj 复制到 SVN_ROOT/rad/trunk/myproj
  • 保留两个位置的历史记录

【问题讨论】:

    标签: svn import copy


    【解决方案1】:

    使用svn copy 会起作用吗?

    【讨论】:

    • 我自己也想知道。好像是对文件进行操作所以不知道历史有没有保留
    【解决方案2】:

    您是否在寻找文件同时更新的 Unix 链接?还是您想复制它们并让它们发散?我认为 svndumpsvnfilter (或手工编辑)可能会做后者。

    但是,我建议您花一些时间考虑一下您为什么要这样做,因为在我看来这会导致维护问题。如果您试图保留两个同时更新的文件,更好的解决方案是将它们提取到与使用它的代码链接的新模块中。如果你试图让它们分歧......好吧,老实说,历史在那里没有多大意义,并且可能会对存储库查看某个时间点的方式产生错误的看法。

    【讨论】:

    • 同意。代码存储库的全部意义在于为您的项目维护单一的事实来源。
    • 旧分支将保留在那里以保留旧有。相信我,我不是提出这个要求的人 :) 另一方面,我对我将继承的文件的历史感兴趣
    【解决方案3】:

    我认为普通的旧 SVN 副本可以做到这一点,然后允许你发散。与分支/标记相同。

    如果您想要一个没有分歧代码的链接,请考虑使用外部定义,如 SVN 书中所述:

    http://svnbook.red-bean.com/en/1.5/svn.advanced.externals.html

    【讨论】:

      【解决方案4】:
      • 你是对的:svn import 并不完美,正如 SVN FAQ 和 SVN Issue 1328 中所述。
      • 您可能也在寻找svn move

      • 另请参阅this thread(具有类似建议的相关问题)。

      【讨论】:

      • svn move as far as I can tell 将删除原始位置
      • 噢!然后我同意下面的 Jason,因为 'svn move' = 'svn copy' + 'svn delete'
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-02
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      相关资源
      最近更新 更多