安全地移动svn文件夹和文件

时间:2013-07-12 18:03:55

标签: shell svn ubuntu

我有一个本地文件夹/mnt/.../oo/P/ct/,其中包含多个子文件夹,其中一些可能包含子文件夹和文件..

/mnt/.../oo/P/ct/是版本化资源。根据{{​​1}}下的svn info/mnt/.../P/ct/URL

其子文件夹的一部分未进行版本控制,例如:

https://.../mc/ct下的

svn info会返回/mnt/.../oo/P/ct/subfolder2/

其子文件夹的一部分是版本化的,例如:

svn: '.' is not a working copy下的

svn info显示其/mnt/.../oo/P/ct/subfolder1/URL

在版本化文件夹中,并非所有文件都已版本化。

现在,我想要做的是将https://.../mc/ct/subfolder1下的所有内容移至/mnt/.../oo/P/ct/,然后删除/mnt/.../oo/P/。例如,之前的/mnt/.../oo/P/ct/将变为/mnt/.../oo/P/ct/subfolder1/

我希望此操作可以移动所有版本化和非版本化文件夹&文件,我希望此操作不会影响每个文件夹/文件的svn URL。

此文件夹非常重要......有人能告诉我如何安全地进行此转移吗?

2 个答案:

答案 0 :(得分:1)

svn修订文件系统,因此,您不能将两个修订历史拼接到一个文件系统中,而不会有很高的冲突风险。

这意味着当你处理一个svn checkout(整个树)时,你可以轻松地将东西从分支(目录)移动到分支(目录);但是,如果您要从不同的存储库,分支等处进行检查,并尝试将事物拼接到不反映存储库历史记录的位置,则需要删除其SVN元数据的其中一个检出项。为此,在检出不会收到合并数据的存储库之后,删除它的所有.svn目录。这使它们成为常规文件,可以将其添加到接收存储库中。

我希望那些挂载点实现POSIX文件系统属性(像nfs这样的东西不会),否则你会发现坏东西。

答案 1 :(得分:0)

只需使用操作系统命令递归复制文件夹及其子文件夹。

然后去看看它是否一切都在移动并且仍然正确连接到SVN。它应该是偏执狂并不意味着SVN不是为了得到你。添加一个文件并将其签入。删除它并查看是否一切正常。

然后去删除旧文件夹和子文件。

当然,这仅在ct

内没有嵌套/oo/P/ct文件夹时才有效