2012-01-18 61 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 :-)