0

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

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

它的一部分子文件夹没有版本控制,例如:

svn info/mnt/.../oo/P/ct/subfolder2/回报不足svn: '.' is not a working copy

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

svn info下面/mnt/.../oo/P/ct/subfolder1/显示它URLhttps://.../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。

这个文件夹非常重要......谁能告诉我如何安全地进行转移?

4

2 回答 2

1

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

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

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

于 2013-07-12T18:13:02.863 回答
0

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

然后去看看它是否所有东西都移动了并且仍然正确连接到 SVN。应该是,但偏执狂并不意味着 SVN 不会来找你。添加一个文件并签入。删除它,看看是否一切正常。

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

当然,这只有在里面没有嵌套ct文件夹的情况下才有效/oo/P/ct

于 2013-07-12T18:09:14.340 回答