1)我有一个二进制文件,我想用更新的版本替换,所以我将新文件复制到旧文件上,然后尝试提交它。
svn commit file.swf -m "message"
我收到存在冲突的错误,我需要先更新
2)svn update . --force
没有
3)svn revert .
文件被还原,我现在可以从服务器看到。
4)我在旧文件上复制新文件并尝试提交。我知道还存在冲突。
5)我尝试先从repo中删除它,然后再添加它并再次提交
svn del file.swf --force
D file.swf
svn commit . -m "message"
--no response
svn add file.swf
A file.swf
svn commit file.swf -m "message"
我收到了提交文件在服务器上的错误。什么??是的,我检查了在线仓库,文件仍在那里。
6)好的,现在我尝试将其还原。
svn revert .
纳达
svn update . --force
纳达
现在我真的很困惑并陷入困境。我既不能从repo中删除文件,也不能从服务器上取回文件,也不能提交新文件。如何走出这个烂摊子?
如果您想要更多问题,但最重要的是解决它并开始行动。
为什么#4文件仍未提交但我之前更新过?为什么#5我无法正确删除?为什么#6如果文件不在本地,我仍然无法从服务器恢复或更新它,如果它在那里?
最重要的是,如何用更新的二进制文件替换服务器上的那个?我完全错了路线吗?
答案 0 :(得分:5)
我会回答我自己的问题而不是删除它,也许它可以帮助某人。
摆脱困境的诀窍是从二进制文件中删除文件夹,从磁盘中删除整个文件夹,从svn更新它并完全恢复它。然后将旧二进制文件复制到旧二进制文件并执行正常提交。
现在一切都恢复了正常。看起来主要是从文件夹中移出一层。
答案 1 :(得分:0)
我有一个类似但不完全相同的情况,我可以通过指定我想要恢复的实际文件名(而不仅仅是目录)来解决这个问题。
其他人可能希望在去核之前尝试一下 - 但没有担保人: - )