10

所以我有两个文件夹,我想将它们添加到新的存储库中,但它们拒绝添加,因为它们已经在版本控制之下。我删除了这些文件夹及其子文件夹中的所有 .svn 文件夹,但 SVN 仍然以某种方式知道。我如何才能看到他们认为自己属于哪个存储库,告诉他们不要在那里,并将它们放入新的存储库而不删除它们或不必移动它们?

4

2 回答 2

17

如果您已删除.svn本地工作副本中的所有文件夹,则不应再对其进行版本控制。请注意,旧版本的 SVN,用于在所有文件夹中创建隐藏.svn文件夹,而不仅仅是在根文件夹或直接子文件夹中。

您还可以执行export命令在目标目录中创建完整的非版本控制副本,以避免手动删除.svn文件夹。

可能导致此错误的另一个问题是,在新存储库中,您已经有与您尝试添加的目录/文件同名的文件或目录。一个好的做法是将文件导入空目录以避免名称冲突。

因此,总而言之,该过程将是这样的:

  • 从当前存储库中导出文件或.svn手动删除所有文件夹
  • 在您的新/目标存储库中创建一个空文件夹
  • 从目标存储库文件夹执行签出到本地副本
  • 执行提交以添加所有新文件
于 2012-04-22T06:51:15.907 回答
2

如果这些文件已经在版本控制中,则删除 .svn 文件夹将不起作用。这是你必须做的:

(1) 删除所有有问题的文件夹或您之前从中删除 .svn 文件夹的文件夹。

(2) 执行 SVN UPDATE 以重新创建这些文件夹并将所有内容恢复到其中(即使您将在下一步中删除它们)。

(3) 现在,删除有问题的文件夹。

(4) 执行 SVN 提交,这将提交从存储库中删除这些文件夹。现在,如您所愿,它们已从存储库中消失。

(5) 您现在可以再次创建文件夹并做任何您想做的事情 - 从它们创建一个新的 SVN 存储库;或将它们重新添加到现有存储库中。

看起来步骤(1)-(2)是多余的和不必要的;但为了安全起见,无论如何你都应该这样做。

于 2012-04-22T07:04:43.693 回答