svn – Subversion的奇怪的问题 – “文件已存在”,当尝试重新创建一个目录,使用我的存储库

所以 – 我以前有一个名为mysql的目录几个修订前。我删除它,并决定重新开始 – 但当我尝试创建新的mysql目录 – 我继续运行到’文件已经存在’的错误:

support:/etc/puppet/modules# mkdir mysql
support:/etc/puppet/modules# svn add mysql/
A         mysql
support:/etc/puppet/modules# svn commit -m " Test"
Adding         modules/mysql
svn: Commit failed (details follow):
svn: File already exists: filesystem '/var/lib/svn/puppet/db', transaction '11-r', path '/trunk/modules/mysql'
support:/etc/puppet/modules# svn delete mysql
svn: Use --force to override this restriction
svn: 'mysql' has local modifications
support:/etc/puppet/modules# svn --force delete mysql
D         mysql

我看到一些其他帖子建议强制更新

support:/etc/puppet/modules# svn status
support:/etc/puppet/modules# svn update
At revision 11.
support:/etc/puppet/modules# svn mkdir mysql
A         mysql
support:/etc/puppet/modules# svn commit -m "Test"
Adding         modules/mysql
svn: Commit failed (details follow):
svn: File already exists: filesystem '/var/lib/svn/puppet/db', transaction '11-s', path '/trunk/modules/mysql'
最佳答案
我有一个这样的问题,当我删除一个文件夹(和子文件夹),并去重新创建从头开始。您从手动删除和重新添加文件夹(而文件似乎应付与此错误)得到此错误。

经过一些令人沮丧的混乱,发现我不得不:
(在Windows上使用TortoiseSVN)

>将冲突的文件夹移出工作副本(以便我不会丢失我的工作进度)
>执行svn更新,将旧文件/文件夹添加回工作副本
> svn delete文件夹
> commit
>将新文件夹复制到工作副本(确保删除所有.svn文件夹)
> commit

不幸的是,它(A)需要两个提交,(B)丢失文件修订历史,因为它只追踪到最近的重新添加(除非有人可以解释如何解决这个问题)。解决这两个问题的另一个解决方案是跳过步骤3和4,唯一的问题是旧/不必要的文件可能仍然存在于您的目录。您可以手动删除这些。

愿意听到别人对此有任何额外的见解。

西蒙。

[更新] OK,我再次遇到同样的问题,但是错误的文件夹不是在最后一次提交,所以更新没有恢复它。相反,我不得不浏览存储库并删除违规文件夹。然后我可以将文件夹添加回来并成功提交。

转载注明原文:svn – Subversion的奇怪的问题 – “文件已存在”,当尝试重新创建一个目录,使用我的存储库 - 代码日志