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

Shell 安全地移动svn文件夹和文件,shell,svn,ubuntu,Shell,Svn,Ubuntu,我有一个本地文件夹/mnt/../oo/p/ct/,其中包含多个子文件夹,其中一些可能包含子文件夹和文件 /mnt/../oo/p/ct/是一个版本化资源。根据/mnt/../P/ct/下的svn info,URL是https://.../mc/ct 其部分子文件夹未进行版本控制,例如: /mnt/../oo/p/ct/subfolder2/下的svn info返回svn:'.'不是工作副本 其子文件夹的一部分已进行版本控制,例如: svn info在/mnt/../oo/p/ct/subfol

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

/mnt/../oo/p/ct/
是一个版本化资源。根据
/mnt/../P/ct/
下的
svn info
URL
https://.../mc/ct

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

/mnt/../oo/p/ct/subfolder2/
下的
svn info
返回
svn:'.'不是工作副本

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

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/
将变成
/mnt/../oo/P/subfolder1/

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


这个文件夹非常重要。。。有人能告诉我如何安全地进行此传输吗?

只需使用OS命令递归复制文件夹及其子文件夹即可

然后查看它,看看是否所有东西都移动了,并且仍然正确连接到SVN。应该是这样,但偏执狂并不意味着SVN不想抓你。添加一个文件并将其签入。删除它,看看是否所有的工作

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


当然,这只适用于
/oo/p/ct
svn修订版文件系统中没有嵌套的
ct
文件夹的情况,因此,您不能将两个修订版历史记录缝合到一个文件系统中,而不存在冲突的高风险

这意味着,当您处理一个svn签出(这是一个完整的树)时,您可以轻松地将内容从分支(目录)移动到分支(目录);但是,如果您要从不同的存储库、分支等签出,并试图将内容缝合到一个不反映存储库历史的位置,则需要从其中一个签出中删除它的SVN元数据。为此,在签出不接收合并数据的存储库后,删除它的所有
.svn
目录。这使它们成为常规文件,可以添加到接收存储库中


我希望这些挂载点实现POSIX文件系统属性(nfs之类的东西没有实现),因为否则,您将发现不好的东西。

对不起,我不确定我是否理解您的评论。。。你认为@Lee Meador的解决方案如何?我认为这是有道理的…我认为Lee的解决方案可能有效,这取决于他对您的设置的想法是否正确地表示了您的设置。没有办法真正摆脱它,你需要阅读红皮书。