所以 - 我曾经有一个名为 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'
当我删除了一个文件夹(和子文件夹)并转到从头开始重新创建它们。您因手动删除并重新添加而收到此错误folders(然而files似乎可以应付这个问题)。
经过一番令人沮丧的混乱后,发现我必须:
(在 Windows 上使用 TortoiseSVN)
- 将冲突的文件夹移出工作副本(这样我就不会丢失正在进行的工作)
- Do an
svn update
将旧文件/文件夹添加回工作副本
-
svn delete
folder
commit
- 将新文件夹复制回工作副本(确保删除其中的所有 .svn 文件夹)
commit
不幸的是,它(A)需要两次提交,并且(B)丢失文件修订历史记录,因为它只能追溯到最近的重新添加(除非有人可以解释如何解决这个问题)。解决这两个问题的替代解决方案是跳过步骤 3 和 4,唯一的问题是旧的/不必要的文件可能仍然存在于您的目录中。您可以手动删除这些。
很想听听其他人对此可能有的任何其他见解。
Simon.
[Update]好吧,当时我又遇到了同样的问题,但是有问题的文件夹不在最后一次提交中,所以update
没有恢复它。相反,我不得不浏览存储库并delete
有问题的文件夹。那时我可以add
文件夹返回并commit
成功地。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)