SVN:文件夹已经受版本控制,但没有提交?

时间:2011-02-08 22:05:11

标签: svn

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时,它不会被调整,并且在我尝试在线浏览到存储库时不会显示。

如何让它提交?

8 个答案:

答案 0 :(得分:160)

将有问题的文件夹复制到某个备份目录中,并将其从SVN工作目录中删除。请记住从复制的文件夹中删除所有.svn个隐藏目录。

现在更新您的项目,清理并提交剩下的内容。现在将文件夹移回工作目录,添加并提交。大部分时间这种解决方法都有效,似乎基本上SVN感到困惑......

更新:引用@Mark的评论:

  

不需要移动文件夹,只需删除.svn文件夹,然后再添加它就可以了。

答案 1 :(得分:20)

在添加包含.svn目录的目录树后,我遇到了类似的问题(因为它在源环境中是一个svn:external): svn状态告诉我“?”,但在尝试添加它时,它“已经处于版本控制之下”。

由于没有其他版本化目录,我做了

find . -mindepth 2 -name '.svn' -exec rm -rf '{}' \;

删除错误的.svn目录;在这之后,我能够添加新目录。

注意

  • 如果包含其他版本化目录,则必须将查找表达式更改为更具体
  • 如果不确定,请先省略“-exec ...”部分以查看将要删除的内容

答案 2 :(得分:15)

@gauss256's answer的变体,删除.svn,对我有用:

rm -rf troublesome_folder/.svn
svn add troublesome_folder
svn commit

在高斯的解决方案之前,我尝试@jwir3's approach并没有得到任何快乐:

svn cleanup
svn cleanup *
svn cleanup troublesome_folder
svn add --force troublesome_folder
svn commit

答案 3 :(得分:14)

(1)这恰好发生在我身上,我觉得它很有趣它是如何发生的。基本上我已经将文件夹复制到一个新位置并对其进行了修改,忘记了它会带来所有隐藏的.svn目录。一旦你意识到它是如何发生的,将来就更容易避免。

(2)删除.svn目录是解决方案,但您必须在目录树中一直递归地执行此操作。最简单的方法是:

find troublesome_folder -name .svn -exec rm -rf {} \;

答案 4 :(得分:3)

您是否尝试过执行svn清理?

答案 5 :(得分:3)

检查目录'apps / autocomplete / .svn'。将它移动到安全的地方(如果你需要恢复它,因为这不起作用),看看是否能解决问题。

答案 6 :(得分:0)

我找到了一个解决方案,以防您使用SVN Client JavaHL(JNI)1.8.13和Tortoise 安装 Eclipse(Luna):

打开Eclipse: 首先尝试将project / maven模块添加到Version Control (项目 - >上下文菜单 - >团队 - >添加到版本控制)

您将看到以下Eclipse错误消息:

org.apache.subversion.javahl.ClientException:条目已存在 svn:'PathToYouProject'已经受版本控制

之后,您必须在资源管理器中打开工作区目录,选择您的项目并通过Tortoise解决它 (项目 - >上下文菜单 - > TortoiseSVN - >解决)

您将看到以下消息对话框: “文件列表为空

按下取消并在Eclipse中刷新项目。 您的项目应再次受版本控制。

不幸的是,不可能同时解决更多的项目...你不必删除任何东西,但根据项目的大小,它可能会有点费力。

答案 7 :(得分:0)

对我来说,执行svn更新,然后执行svn commit可以。文件夹中没有.svn文件夹,无法添加。