2012-01-18 62 views
3

1)我有我想用新版本替换的二进制文件,所以我将新文件复制到旧版本上,然后尝试提交它。svn不更新,不恢复,但文件在服务器上

svn commit file.swf -m "message" 

我得到的是有冲突的错误,我需要更新第一

2)svn update . --force

没有。

3)svn revert .

文件被恢复,我可以看到服务器的一个了。

4)我将新文件复制到旧文件并尝试提交。我知道仍然存在冲突。

5)我尝试首先从回购删除它,然后将它和再犯它

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如果文件不在本地,我仍然无法从服务器恢复或更新它,如果它在那里?

而最重要的是,如何用新的二进制文件替换服务器上的那个?我采取的路线完全错了吗?

+1

你尝试使用SVN决心解决文件上的冲突状态? http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.resolve.html – Nils 2012-01-18 22:09:07

+0

不,谢谢。正如我在答案中所描述的,我解决了这个问题。 – Ska 2012-01-18 22:13:12

+0

啊,你走了核路线:) – Nils 2012-01-18 22:15:01

回答

5

我会回答我自己的问题,而不是删除它,也许它有助于某人。

摆脱困境的诀窍是用二进制文件从文件夹中删除,从磁盘删除整个文件夹,从svn更新它并使其完全恢复。然后将新的二进制文件复制到旧的二进制文件中并进行正常的提交

现在一切都恢复顺序。看起来主要的一点是从文件夹中移出一层。

0

我有一个类似的 - 但不完全一样的情况,我可以通过指定我想恢复的实际文件名(而不仅仅是目录)来解决这种情况。

其他不妨试试才去核 - 但没有guarentees :-)