【发布时间】:2009-07-14 17:09:40
【问题描述】:
是否有可能(甚至可行)将目录从一个 SVN 存储库位置复制到另一个位置,保留旧的位置并在两个位置保留每个单独文件的历史记录?到目前为止,我看到 SVN 导入会复制目录但会丢失历史记录或 SVN 移动会重新定位目录。这是一个简短的例子:
- 将 SVN_ROOT/projects/branches/release1.0/myproj 复制到 SVN_ROOT/rad/trunk/myproj
- 保留两个位置的历史记录
【问题讨论】:
是否有可能(甚至可行)将目录从一个 SVN 存储库位置复制到另一个位置,保留旧的位置并在两个位置保留每个单独文件的历史记录?到目前为止,我看到 SVN 导入会复制目录但会丢失历史记录或 SVN 移动会重新定位目录。这是一个简短的例子:
【问题讨论】:
使用svn copy 会起作用吗?
【讨论】:
您是否在寻找文件同时更新的 Unix 链接?还是您想复制它们并让它们发散?我认为 svndump 和 svnfilter (或手工编辑)可能会做后者。
但是,我建议您花一些时间考虑一下您为什么要这样做,因为在我看来这会导致维护问题。如果您试图保留两个同时更新的文件,更好的解决方案是将它们提取到与使用它的代码链接的新模块中。如果你试图让它们分歧......好吧,老实说,历史在那里没有多大意义,并且可能会对存储库查看某个时间点的方式产生错误的看法。
【讨论】:
我认为普通的旧 SVN 副本可以做到这一点,然后允许你发散。与分支/标记相同。
如果您想要一个没有分歧代码的链接,请考虑使用外部定义,如 SVN 书中所述:
http://svnbook.red-bean.com/en/1.5/svn.advanced.externals.html
【讨论】:
您可能也在寻找svn move。
另请参阅this thread(具有类似建议的相关问题)。
【讨论】: