我想与最近从svn存储库中删除的文件进行交互,但是当我尝试这样做时,我得到一个"而不是版本控制"警告。
我想要具体做的是svn cat
将其原始版本发送到文件以供检查/使用,但我也不能svn log
,因为这也会给出相同的警告。< / p>
如果我svn log -v
旧文件的父目录,我可以看到添加文件的版本和删除文件的版本。添加文件的版本(我感兴趣的版本)是r1678。
如果我svn log -r 1678 -v path/file@1678
我得到&#34;不受版本控制&#34;警告。
如果我svn cat -r 1678 path/file@1678
我得到&#34;不受版本控制&#34;警告。
如何获取文件?
如果重要,&#34;删除&#34;是移动到另一个目录,但我不确定它是如何移动的。如果我执行svn log newpath/file
,则历史记录不包括文件的原始位置,因此我假设它以不保留历史记录的方式移动(即:不是相同的svn节点)。但我不确定。如果我在父级上执行svn log
删除了几个级别,以便它包含旧目录和新目录,我会得到以下内容:
r1804 | ...
M newpath/file
r1755 | ...
M newpath/file
r1700 | ...
D oldpath/file
A newpath/file
r1678 | ...
A oldpath/file
这里的root需要是一个diff文件的原始版本,就像它第一次添加时一样,由于历史记录在文件移动时被破坏,我无法轻易获得。如果有一种简单的方法可以做到这一点,那将是值得赞赏的,但这在技术上并不是这个具体问题所要求的。
那么如何与已删除的文件进行交互?
答案 0 :(得分:0)
已删除的文件不再位于工作副本中,因此您需要从存储库中访问该修订版。
看起来您已经确定了您感兴趣的修订和路径名。使用:
$user_id = \JFactory::getUser()->id;
从工作副本中找到相对网址。它看起来像svn info
(取决于你调用它的目录)。
可以使用(例如)
来访问已删除的文件^/trunk/newpath