无法还原由svn up-rNNN还原的文件
我在Github上有一个存储库,我使用svn(1.8.5)与之通信。(我不确定这是否重要,但可能很重要。) 有一个文件,比如说无法还原由svn up-rNNN还原的文件,svn,github,Svn,Github,我在Github上有一个存储库,我使用svn(1.8.5)与之通信。(我不确定这是否重要,但可能很重要。) 有一个文件,比如说a.php,它当前(比如在1200版中)不在存储库中,但它曾经在那里(比如在900版中被删除) 所以我想看一下这个文件,然后说likesvn up a.php-r899,我得到了这个文件。然后我需要恢复正常的主干,所以我尝试了svn-up,svn-up a.php和svn-up a.php-r1200,但都没有成功。因此,我仍然将文件保存在本地副本中,它不会像在存储库中一
a.php
,它当前(比如在1200版中)不在存储库中,但它曾经在那里(比如在900版中被删除)
所以我想看一下这个文件,然后说likesvn up a.php-r899
,我得到了这个文件。然后我需要恢复正常的主干,所以我尝试了svn-up
,svn-up a.php
和svn-up a.php-r1200
,但都没有成功。因此,我仍然将文件保存在本地副本中,它不会像在存储库中一样显示在svn status
中,但显然不是,因为如果我尝试更改(包括删除)并提交它,我会收到一个错误:
svn:E175002:对“”的PUT请求失败:500内部服务器错误
有什么想法吗
Upd。可通过以下方式复制该问题:
svn co https://github.com/OpenCorpora/opencorpora/trunk
cd trunk/ajax
svn up dict_reload.php -r1501
所以我找到了一个不明显的方法来克服这个问题。假设删除文件的版本是1502
rm a.php
svn up a.php -r1500
svn up a.php -r1502
这样它就会被删除。这真的是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中的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.
您是否尝试删除该文件并简单地执行svn升级?而不是承诺?svn统计给你什么?我给了,它被恢复了。svn统计没有给出任何信息。在HEAD(2061)2中有dict_reload.php。您选择了错误的方法(tm)来检查repo的旧内容:
svn cat URL/FILE@PEG-REV>文件
将技巧做得更好3。GitHub的SVN不是干净的用例——它是场景背后的Git回购。在发布最初问题的那一刻,它并没有出现在我的脑海中,我后来承诺了它。