如何找到已删除然后重新提交到SVN的文件的修订历史记录?

如何找到已删除然后重新提交到SVN的文件的修订历史记录?

How can I find the revision history of the file that was deleted and then resubmitted to SVN?

这是"如何从SVN的修订版本中删除1个文件"的问题的后续解答。 但由于答案可能截然不同,因此我相信知道答案将使其他人受益。 (我不知道答案。)

回答了上一个问题,我发现无法从SVN中删除修订。 第二个最佳解决方案是从SVN中删除文件,提交,然后重新添加文件并再次提交。

现在,我要确保原始文件的修订历史记录已消失。 因此,我希望对问题"我如何找到已删除然后重新提交给SVN的文件的修订历史记录"的答案? 是你不能。


是什么让您认为无法从Subversion删除修订?给您另一个问题(svndumpfilter)的解决方案正是这样做的(请参见参数--drop-empty-revs--renumber-revs)!而且,当修订不存在时,显然没有办法了解修订历史,因为它从来没有出现过。


简短答案:您可以

长答案:

不幸的是(对于您来说,但对于大多数人而言可能不是),已删除文件的修订历史记录仍然存在-很难找到。

这是一个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
$ touch one
$ svn add one
$ svn ci -m"Added file one"
$ date >> one
$ svn ci -m"Updated file one"
$ date >> one
$ svn ci -m"Updated file one again"
$ svn log file:///repos/one

------------------------------------------------------------------------
r3 | andrewr | 2008-08-29 12:27:10 +1000 (Fri, 29 Aug 2008) | 1 line

Updated file one again
------------------------------------------------------------------------
r2 | andrewr | 2008-08-29 12:26:50 +1000 (Fri, 29 Aug 2008) | 1 line

Updated file one
------------------------------------------------------------------------
r1 | andrewr | 2008-08-29 12:25:07 +1000 (Fri, 29 Aug 2008) | 1 line

Added file one
------------------------------------------------------------------------

$ svn delete one
$ svn ci -m"Deleted file one"
$ svn up
$ touch one
$ svn add one
$ svn ci -m"Adding file one back in"
$ svn log file:///repos/one

------------------------------------------------------------------------
r5 | andrewr | 2008-08-29 12:29:13 +1000 (Fri, 29 Aug 2008) | 1 line

add one back
------------------------------------------------------------------------

看起来它可以工作(旧的历史记录已消失),但是如果您在较旧的版本中请求文件,则会获得历史记录
的已删除文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ svn log -r 3:1 file:///repos/one

------------------------------------------------------------------------
r3 | andrewr | 2008-08-29 12:27:10 +1000 (Fri, 29 Aug 2008) | 1 line

Updated file one again
------------------------------------------------------------------------
r2 | andrewr | 2008-08-29 12:26:50 +1000 (Fri, 29 Aug 2008) | 1 line

Updated file one
------------------------------------------------------------------------
r1 | andrewr | 2008-08-29 12:25:07 +1000 (Fri, 29 Aug 2008) | 1 line

Added file one
------------------------------------------------------------------------


用简单

1
svn log -v [folder]

您可以快速浏览添加和删除。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
------------------------------------------------------------------------
r14 | kame | 2008-08-29 04:23:43 +0200 (ven., 29 ao?2008) | 1 line
Chemins modifié :
   A /a.txt

Readded a
------------------------------------------------------------------------
r13 | kame | 2008-08-29 04:23:24 +0200 (ven., 29 ao?2008) | 1 line
Chemins modifié :
   D /a.txt

Delete a
------------------------------------------------------------------------
r12 | kame | 2008-08-29 04:23:06 +0200 (ven., 29 ao?2008) | 1 line
Chemins modifié :
   A /a.txt

svn日志不会显示该文件,svn diff会假装该旧修订版不存在,但是针对该旧修订版的svn checkout将很高兴为您提供旧文件。


我会说您不能-您创建了一个新文件,因此在SVN眼中创建了修订树。

可能可以独立地恢复旧树(不确定是您管理的是实际删除还是仅是SVN删除),但是旧修订树与新修订树之间没有链接。


推荐阅读

    linux默认命令删除?

    linux默认命令删除?,系统,软件,名称,档案,命令,文件,目录,不了,电脑,文件夹,

    linux分隔文件命令?

    linux分隔文件命令?,系统,信息,文件,命令,位置,指令,文件夹,目录,前缀,方法,l

    linux下删除命令行?

    linux下删除命令行?,系统,数据,命令,文件,名称,百度,环境,不了,档案,文件夹,l

    linux删除挂载命令?

    linux删除挂载命令?,系统,设备,电脑,信息,管理,网络,名字,密码,文件,命令,lin

    linux改文件权限命令?

    linux改文件权限命令?,系统,工具,档案,权限,文件,信息,命令,目录,选项,用户,

    linux退出删除命令行?

    linux退出删除命令行?,地址,状态,系统,工作,命令,电脑,名字,管理,信息,文件,l

    linux命令交换文件名?

    linux命令交换文件名?,命令,文件,数据,名称,工具,地址,软件,系统,基础知识,

    linux文件夹转移命令?

    linux文件夹转移命令?,系统,文件,命令,位置,材料,信息,工具,电脑,目录,源文

    linux转移文件命令?

    linux转移文件命令?,文件,命令,密码,电脑,位置,名称,信息,系统,目录,目标,lin

    linux下替换文件命令?

    linux下替换文件命令?,文件,一致,评论,名称,标的,资料,工作,命令,字符串,内

    linux文件nl命令?

    linux文件nl命令?,地址,工作,信息,系统,情况,标准,实时,对比,百度,命令,linux

    linux寻找文件夹命令?

    linux寻找文件夹命令?,名称,命令,文件,位置,工作,标准,目录,子目录,文件名,

    linux跳到文件尾命令?

    linux跳到文件尾命令?,系统,文件,命令,管理,状态,实时,末尾,光标,内容,编辑,l

    linux把文件复制命令?

    linux把文件复制命令?,名字,文件,软件,系统,位置,目录,命令,源文件,目标,文

    linux删除空行命令?

    linux删除空行命令?,名称,不了,命令,文件夹,文件,时间,工作,简介,情况,资料,l

    linux删除软件命令?

    linux删除软件命令?,软件,系统,命令,不了,名称,数据,文件夹,文件,工具,百度,l

    linux文件夹合并命令?

    linux文件夹合并命令?,文件,对比,第一,下来,命令,文件夹,两个,字段,内容,数

    linux删除集群命令?

    linux删除集群命令?,软件,管理,工具,平台,工作,系统,技术,数据,公司,产品,在l

    linux下文件创建命令?

    linux下文件创建命令?,名字,名称,首次,命令,文件,系统,密码,文件名,文件夹,