所以 - 我以前有一个名为mysql的目录.我删除了它,并决定重新开始 - 但是当我尝试创建新的mysql目录时 - 我一直遇到'File Already Exists'错误:
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
Run Code Online (Sandbox Code Playgroud)
我看到其他一些帖子建议强制更新
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'
Run Code Online (Sandbox Code Playgroud)
Sim*_*ast 62
当我删除文件夹(和子文件夹)并从头开始重新创建它时,我遇到了这样的问题.手动删除和重新添加文件夹时会出现此错误(而文件似乎可以正常处理).
在经历了一些令人沮丧的麻烦之后,发现我不得不:(
在Windows上使用TortoiseSVN)
svn update
添加旧文件/文件夹回到工作副本svn delete
夹commit
commit
不幸的是,它(A)需要两次提交,并且(B)丢失文件修订历史记录,因为它只追溯到最近的重新添加(除非有人可以解释如何解决这个问题).解决这两个问题的替代解决方案是跳过步骤3和4,唯一的问题是旧的/不必要的文件可能仍然存在于您的目录中.您可以手动删除它们.
希望听到其他人可能对此有任何额外见解.
西蒙.
[更新] 好的,我刚才又遇到了同样的问题,但是违规文件夹update
不在最后一次提交中,所以没有恢复它.相反,我不得不浏览存储库和有问题delete
的文件夹.然后我可以重新add
进入文件夹并commit
成功完成.
Fed*_*TIK 17
有类似的问题.要解决此问题,请从svn trunk更新并选择本地文件的优先级.
svn update path/ --accept=mine-full
Run Code Online (Sandbox Code Playgroud)
你可以照常提交.当然,小心使用它.
Atm*_*ons 12
已经有这种类型的问题.
我的解决方案是:
从svn中删除该文件夹,但在某处保留该文件夹的副本,提交更改.在备份副本中,递归删除其中的所有.svn文件夹.为此,你可能会跑
#!/bin/bash
find -name '.svn' | while read directory;
do
echo $directory;
rm -rf "$directory";
done;
Run Code Online (Sandbox Code Playgroud)
删除本地存储库并重新检出整个项目.不知道部分删除/结账是否足够.
问候
小智 7
这是一个讨厌的...神秘的错误,没有明确的解决方案.
更新/恢复/提交在我的情况下不起作用.我没有做过任何奇怪的事 - 只是一些svn动作.
DID对我有用的是:
svn remove offender
svn commit
cd ..
rm -fR parent
svn up parent
cd parent
svn remove offender again
svn commit
copy offender back in (minus .svn dirs)
svn add
svn commit
Run Code Online (Sandbox Code Playgroud)
奇怪的是至少可以说.基本上,由于svn remove --force offender
某种原因,没有完全删除.这是错误消息所说的内容.只有删除父级,然后更新父级,这才变得明显,因为然后犯罪者再次出现!svn再次删除罪犯然后正确删除它.