我有一个本地文件夹/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。
此文件夹非常重要......有人能告诉我如何安全地进行此转移吗?
答案 0 :(得分:1)
svn修订文件系统,因此,您不能将两个修订历史拼接到一个文件系统中,而不会有很高的冲突风险。
这意味着当你处理一个svn checkout(整个树)时,你可以轻松地将东西从分支(目录)移动到分支(目录);但是,如果您要从不同的存储库,分支等处进行检查,并尝试将事物拼接到不反映存储库历史记录的位置,则需要删除其SVN元数据的其中一个检出项。为此,在检出不会收到合并数据的存储库之后,删除它的所有.svn
目录。这使它们成为常规文件,可以将其添加到接收存储库中。
我希望那些挂载点实现POSIX文件系统属性(像nfs这样的东西不会),否则你会发现坏东西。
答案 1 :(得分:0)
只需使用操作系统命令递归复制文件夹及其子文件夹。
然后去看看它是否一切都在移动并且仍然正确连接到SVN。它应该是偏执狂并不意味着SVN不是为了得到你。添加一个文件并将其签入。删除它并查看是否一切正常。
然后去删除旧文件夹和子文件。
当然,这仅在ct
/oo/P/ct
文件夹时才有效