Subversion:在svn状态下显示为未版本化的版本化目录

时间:2010-09-01 20:30:51

标签: svn version-control

我最近从本地工作副本中删除了一个目录,然后在中央存储库中跟踪了该目录上的svn co。现在,如果我执行svn状态,那个特定目录会显示“?”,这意味着它不受版本控制。如果我在目录上运行svn add,我会得到一个svn:warning:目录已经受版本控制。我添加了--force,但它仍然显示为没有版本化。

如何从这个混乱中恢复?

3 个答案:

答案 0 :(得分:0)

使用svn revert

svn revert -R yourdir

-R递归到子目录。

答案 1 :(得分:0)

我意识到这是一个老问题,但我相信我有一个可以帮助其他人的答案。

原因 当您复制附加到svn的文件夹(它将包含.svn子文件夹)并将其放在项目中的其他位置时,可能会发生这种情况。

原因 它将文件夹内容(文件/子文件夹)附加到旧的svn位置;因此,其中的任何文件都是版本化的,并且在您执行此操作时将提交到旧位置。

但是文件夹本身不存在于其父文件夹svn信息中;因此它将显示为无版本,但在尝试添加此文件夹时,它将检测相关文件夹中的svn设置,并拒绝添加它,说它已经版本化。

可能的解决方法 因此,如果您从其他版本化目录复制文件夹,则可以“修复”此问题。

一个。删除此目录和所有子目录中的.svn文件夹。

B中。删除有问题的文件夹;并将其从原始位置正确复制。

如何将svn中的文件夹正确复制到另一个svn目录。

  1. 使用svn将目录导出到目标父目录 导出(在命令行上)

  2. 如果您只想移动目录,则应使用svn mv代替(命令行中的's'移动'

答案 2 :(得分:-1)

svn co svn://path/deleted_folder
假设您没有使用mkdir重新创建deleted_folder,

应该可以做到这一点。