如何查看SVN文件的旧版本?


156

我有一个SVN文件,该文件现在缺少一些逻辑,因此,当它具有我需要的逻辑时,我需要回溯约40次修订。除了尝试在命令行中查看文件的差异(很难阅读)以外,还有什么方法可以获取该文件的副本以进行检查,以便研究它以恢复零件?

Answers:


237

您可以更新到旧版本:

svn update -r 666 file

或者,您可以直接查看文件:

svn cat -r 666 file | less

13
svn cat -r 666 file | less很完美,所以我可以用vim读通它!
Xeoncross

4
@sillyMunky试试svn cat | vim -。如果vim的语法高亮显示不能自动启动,请执行:set syntax=java(或使用任何一种语言)。
约翰·库格曼

1
非常感谢John,实际上我正在使用debian,我发现有一个很好的语法高亮软件包,称为“ source-highlight”,因此可以自动语法高亮显示(实际上,我现在将其别名为lesss以示区别)。
sillyMunky 2012年

2
svn cat -r 666文件> file_666.js,如果您想查看整个文件:p
Parijat Kalia 2013年

或者,如果您使用的是bash vim +set\ ft=<FILETYPE> <( svn cat -r <REV> <FILE> )
h4unt3r 2014年

5

将当前工作版本的文件与另一个版本的相同文件进行比较也很有趣。

您可以执行以下操作:

$ svn diff -r34 file


1

我认为查看修订的最佳方法是使用一个程序/应用程序,它使您轻松自如。我喜欢使用trac:http : //trac.edgewall.org/wiki/TracSubversion

它提供了一个很棒的svn浏览器,并且使您轻松地进行修订很容易。

将其设置为要检查的特定版本可能有点过大,但是如果将来打算做很多事情,这可能会很有用。


1

使用Subclipse的最新版本,您实际上可以在不使用cmd提示的情况下查看它们。在文件上,只需右键单击=> Team =>切换到另一个分支/标记/修订。在修订字段旁边,单击选择,您将看到该文件的所有版本。


1

要直接回答如何“获取该文件的副本”的问题:

svn cat -r 666 file > file_r666

然后您可以file_r666使用任何查看器或比较程序查看新创建的内容,例如

kompare file_r666 file

很好地显示了差异。

我发布了答案,因为接受的答案的命令实际上没有提供文件的副本,并且因为svn cat -r 666 file | vim它不适用于我的系统(Vim: Error reading input, exiting...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.