我在Github上有一个存储库,我使用svn(1.8.5)与它进行通信。 (我不确定它是否重要,但可能是。)
有一个文件,假设a.php
当前(例如,在修订版1200中)不在存储库中但曾经存在(即它已在修订版中删除,比如,900)。
所以我想查看该文件,并说svn up a.php -r899
,我得到了该文件。然后我需要恢复正常的主干,所以我尝试了svn up
,svn up a.php
和svn up a.php -r1200
,但没有一个工作。所以我仍然在本地副本中有文件,并且它不会在svn status
中显示,就好像它在存储库中一样,但它显然不是,因为如果我尝试更改(包括删除)并提交它,我收到一个错误:
svn: E175002: PUT request on '<here was the path>' failed: 500 Internal Server Error
有什么想法吗?
更新。可以通过以下方式重现此问题:
svn co https://github.com/OpenCorpora/opencorpora/trunk
cd trunk/ajax
svn up dict_reload.php -r1501
答案 0 :(得分: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
------------------------------------------------------------------------
(在r4中删除了c.txt,从HEAD中删除了我希望/以你的方式/看到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.
答案 1 :(得分:0)
所以我找到了一种克服这个问题的不明显方法。假设删除文件的修订版是1502。
rm a.php
svn up a.php -r1500
svn up a.php -r1502
这样就会被删除。