mark@mark-ubuntu:~/myproject$ svn stat
? runserver.sh
? media/images/icons
? apps/autocomplete
mark@mark-ubuntu:~/myproject$ svn add apps/autocomplete
svn: warning: 'apps/autocomplete' is already under version control
svn stat
说它不受版本控制,所以我尝试添加它,然后它告诉我它是。当我执行 svn ci
时,它不会被提交,并且当我尝试在线浏览存储库时不会显示。
如何让它提交?
将有问题的文件夹复制到某个备份目录中,并将其从 SVN 工作目录中删除。请记住从复制的文件夹中删除所有
.svn
隐藏目录。
现在更新您的项目,清理并提交剩下的内容。现在将您的文件夹移回工作目录,添加它并提交。大多数情况下,这种解决方法都有效,似乎 SVN 基本上都感到困惑......
更新:引用@Mark的评论:
不需要移动文件夹,只需删除
文件夹,然后 svn 添加即可。.svn
添加包含 .svn 目录的目录树后,我遇到了类似的问题(因为它在源环境中是 svn:external ): svn status 告诉我“?”,但是当尝试添加它时,它是“已经在版本控制之下”。
由于不存在其他版本目录,所以我这样做了
find . -mindepth 2 -name '.svn' -exec rm -rf '{}' \;
删除错误的.svn目录;完成此操作后,我能够添加新目录。
注意:
@gauss256 的答案的一个变体,删除
.svn
,对我有用:
rm -rf troublesome_folder/.svn
svn add troublesome_folder
svn commit
在高斯的解决方案之前,我尝试了@jwir3的方法,但没有得到任何喜悦:
svn cleanup
svn cleanup *
svn cleanup troublesome_folder
svn add --force troublesome_folder
svn commit
(1) 这件事刚刚发生在我身上,我觉得这很有趣它是如何发生的。 基本上我已经将该文件夹复制到一个新位置并对其进行了修改,忘记了它会带来所有隐藏的 .svn 目录。 一旦您意识到它是如何发生的,将来就更容易避免。
(2) 删除 .svn 目录是解决方案,但您必须在目录树中一直递归地执行此操作。最简单的方法是:
find troublesome_folder -name .svn -exec rm -rf {} \;
Eclipse(Luna) 以及 SVN 客户端 JavaHL(JNI) 1.8.13 和 Tortoise:
打开Eclipse: 首先尝试将项目/maven模块添加到版本控制中 (项目 -> 上下文菜单 -> 团队 -> 添加到版本控制)
您将看到以下 Eclipse 错误消息:
org.apache.subversion.javahl.ClientException:条目已存在 svn:“PathToYouProject”已处于版本控制之下
之后,您必须在资源管理器中打开工作区目录,选择您的项目并通过 Tortoise 解析它 (项目 -> 上下文菜单 -> TortoiseSVN -> 解决)
您将看到以下消息对话框: “文件列表为空”
按“取消”并在 Eclipse 中刷新项目。 您的项目应该再次受到版本控制。不幸的是,不可能同时解决多个项目...您不必删除任何内容,但根据项目的大小,这可能会有点费力。
--force
标志:
svn add --force example/folder/*