SVN:文件夹已经在版本控制下,但没有comitting?
mark@mark-ubuntu:~/myproject$ svn stat ? runserver.sh ? mediahttp://img.dovov.comicons ? 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目录; 这样做后,我能够添加新的目录。
注意 :
- 如果包含其他版本化目录,则必须将查找expression式更改为更具体
- 如果不确定,首先省略“-exec …”部分来查看将被删除的内容
(1)这发生在我身上,我觉得这很有趣。 基本上我已经将文件夹复制到一个新的位置,并修改它,忘记它会带来所有隐藏的.svn目录。 一旦你意识到事情的发生,将来会更容易避免。
(2)删除.svn目录是解决scheme,但是您必须recursion执行目录树。 最简单的方法是:
find troublesome_folder -name .svn -exec rm -rf {} \;
@ gauss256的答案的一个变种,删除.svn
,为我工作:
rm -rf troublesome_folder/.svn svn add troublesome_folder svn commit
在高斯的解决scheme之前,我尝试了@ jwir3的方法,并没有得到什么喜悦:
svn cleanup svn cleanup * svn cleanup troublesome_folder svn add --force troublesome_folder svn commit
你有没有尝试执行svn清理?
检查目录'apps / autocomplete / .svn'。 把它移到一个安全的地方(如果你需要恢复它,因为这不起作用),看看是否解决了这个问题。
我发现了一个解决scheme,以防止您在Eclipse(Luna)中安装了SVN客户端JavaHL(JNI)1.8.13和Tortoise :
打开Eclipse:首先尝试将项目/ maven模块添加到版本控制(项目 – >上下文菜单 – >团队 – >添加到版本控制)
您将看到以下Eclipse错误消息:
org.apache.subversion.javahl.ClientException:条目已经存在svn:'PathToYouProject'已经在版本控制之下
之后,你必须在你的资源pipe理器中打开你的工作区目录,select你的项目并通过Tortoise解决它(项目 – >上下文菜单 – > TortoiseSVN – >解决)
您将看到以下消息对话框:“ 文件列表为空 ”
在Eclipse中按取消并刷新项目。 你的项目应该再次在版本控制之下。
不幸的是,不可能同时解决更多的一个项目…你不必删除任何东西,但取决于你的项目的大小,可能有点费力。