2014-09-24 135 views
-1

我在Github上有一個存儲庫,我使用svn(1.8.5)與它進行通信。 (我不知道這是重要的,但它可能是。)無法恢復由svn恢復的文件-rNNN

有一個文件,比方說a.php這是目前(比方說,在修訂1200)在倉庫中,但它曾經是那裏(即它在修訂中被刪除,例如900)。

所以我想看看文件,並說像svn up a.php -r899,我得到的文件。然後我需要恢復正常的中繼線,所以我嘗試了svn up,svn up a.phpsvn up a.php -r1200但他們都沒有工作。因此,我仍然在本地副本中有該文件,並且它不顯示在svn status中,就好像它在存儲庫中一樣,但它顯然不是,因爲如果我嘗試更改(包括刪除)並提交它,我會得到錯誤:

svn: E175002: PUT request on '<here was the path>' failed: 500 Internal Server Error

任何想法?

Upd。這個問題可以再現的方式如下:

svn co https://github.com/OpenCorpora/opencorpora/trunk 
cd trunk/ajax 
svn up dict_reload.php -r1501 
+0

你有沒有嘗試刪除該文件,並簡單地做一個SVN嗎?而不是提交? svn stat給你什麼? – Kjartan 2014-09-24 21:10:37

+0

我做了,它恢復了。 svn統計不給任何東西。 – 2014-09-24 21:13:02

+0

1.你**有** dict_reload.php在HEAD(2061)2.你選擇了檢查舊內容回購的壞道(tm):'svn cat URL/FILE @ PEG-REV> file'更好3. GitHub的SVN不是乾淨的用例 - 它是現場背後的Git回購 – 2014-09-25 21:29:03

回答

0

所以我找到克服問題的辦法不明顯。假設文件被刪除的版本是1502.

rm a.php 
svn up a.php -r1500 
svn up a.php -r1502 

這樣它就被刪除了。

1

這真是GitHub效果。對於純SVN(推薦方式),我在這樣的存儲庫得到了當地測試用例

>svn log -q -v 
------------------------------------------------------------------------ 
r6 | Badger | 2014-09-26 03:36:26 +0600 (Пт, 26 сен 2014) 
Changed paths: 
    M /trunk/b.txt 
------------------------------------------------------------------------ 
r5 | Badger | 2014-09-26 03:35:56 +0600 (Пт, 26 сен 2014) 
Changed paths: 
    M /trunk/a.txt 
------------------------------------------------------------------------ 
r4 | Badger | 2014-09-26 03:35:29 +0600 (Пт, 26 сен 2014) 
Changed paths: 
    D /trunk/c.txt 
------------------------------------------------------------------------ 
r3 | Badger | 2014-09-26 03:34:39 +0600 (Пт, 26 сен 2014) 
Changed paths: 
    M /trunk/a.txt 
    M /trunk/b.txt 
    M /trunk/c.txt 
------------------------------------------------------------------------ 
r2 | Badger | 2014-09-26 03:33:40 +0600 (Пт, 26 сен 2014) 
Changed paths: 
    A /trunk/a.txt 
    A /trunk/b.txt 
    A /trunk/c.txt 
------------------------------------------------------------------------ 
r1 | Badger | 2014-09-26 03:31:52 +0600 (Пт, 26 сен 2014) 
Changed paths: 
    A /branches 
    A /tags 
    A /trunk 
------------------------------------------------------------------------ 

(c.txt在頭想/你的方式R4刪除,從WC /看R3)以下預期結果

>svn up c.txt -r 3 
Updating 'c.txt': 
A c.txt 
Updated to revision 3. 

>svn up 
Updating '.': 
D c.txt 
Updated to revision 6. 
+0

是的,這是一個很好的觀點。我懷疑有一種。 – 2014-09-26 10:32:50