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

Posted

技术标签:

【中文标题】如何查看旧版本的 SVN 文件?【英文标题】:How do I view an older version of an SVN file? 【发布时间】:2011-05-12 06:09:49 【问题描述】:

我有一个 SVN 文件,它现在缺少一些逻辑,所以我需要返回大约 40 次修订到它具有我需要的逻辑的时间。除了尝试在命令行中查看文件的差异(很难阅读),还有什么方法可以让我获得该文件的副本以进行查看,以便我可以研究它以恢复部分?

【问题讨论】:

【参考方案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...)

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

你可以这样做:

$ svn diff -r34 file

【讨论】:

【参考方案4】:

我相信查看修订的最佳方式是使用方便您的程序/应用。我喜欢使用 trac :http://trac.edgewall.org/wiki/TracSubversion

它提供了一个很棒的 svn 浏览器,并且可以很容易地回顾你的修改。

为您要检查的一个特定版本进行设置可能有点矫枉过正,但如果您将来要经常这样做,它可能会很有用。

【讨论】:

【参考方案5】:

更新到特定版本:

svn up -r1234 file

【讨论】:

【参考方案6】:

您可以更新到旧版本:

svn update -r 666 file

或者你可以直接查看文件:

svn cat -r 666 file | less

【讨论】:

svn cat -r 666 file | less 非常完美,所以我可以用 vim 阅读它! @sillyMunky 试试svn cat | vim -。如果 vim 的语法高亮没有自动启动,请执行 :set syntax=java(或任何一种语言)。 非常感谢 John,实际上我在 debian 上,我发现有一个不错的小语法高亮包,叫做“source-highlight”,所以 less 可以自动拾取语法高亮(实际上我现在将其别名为 lesss区别)。 svn cat -r 666 file > file_666.js 如果你想查看整个文件:p 或者如果你正在使用 bash vim +set\ ft=<FILETYPE> <( svn cat -r <REV> <FILE> )

以上是关于如何查看旧版本的 SVN 文件?的主要内容,如果未能解决你的问题,请参考以下文章

SVN如何查看修改的文件记录] 来源:Linux社区 作者:frogoscar

如何使用 git 扩展从其历史记录中查看旧版本的 Excel 文件

Eclipse 的svn 插件如何查看所有的已提交历史版本?

SVN查看修改过的文件

myeclipse 使用svn控制 如何查看类的 哪一行 被修改过

CentOs下 SVN版本控制的安装(包括yum与非yum)