SVN:如何知道文件在哪个版本中被删除?

鉴于我在Windows上使用svn命令行,如何find文件被删除的版本号? 在Windows上,没有喜欢的东西像grep,我试图只使用命令行,没有TortoiseSVN。 提前致谢!

编辑:

  • 我看了几个post,比如检查已删除文件的历史logging,但是没有回答我的问题。
  • 除了svn log -v url> log.out和用记事本search以外,还有什么办法吗?

安装Cygwin。

我使用这个:

 svn log -v --limit <nr> -v | grep -E '<fileName>|^r' | grep -B 1 <fileName> 

哪里

 fileName - the name of the file or any pattern which matches it nr - the number of latest revisions in which I want to look for 

这将给你所有的行动(添加,删除,删除,修改)有关该文件的修订,但与grep简单的调整,你可以得到修改只能删除。

(很显然,–limit是可选的,但是你通常会有一个关于你需要多深的搜索的概述。

日志是要看的地方。 我知道你不想听到这个答案,但这是你需要在SVN中查找被删除的文件的地方。

这是因为被删除的文件在被删除后是不可见的。 唯一可以找到它的存在的地方是在日志中,或者在删除之前取出先前的版本。

我知道处理这个问题最简单的方法就是离开命令行,使用TortoiseSVN等GUI工具。

TortoiseSVN将自己链接到标准的Windows文件资源管理器中,因此使用起来非常简单。 在回答这个问题的时候,你仍然会用它来查看日志,但是它会变得更加快速:

浏览到您想要检查的SVN文件夹。 然后右键单击文件夹图标,然后从上下文菜单中选择TortoiseSVN – > View Logs

您现在将会看到一个窗口,显示该文件夹中所做的所有修改。 特别是,很容易看到哪些修订版本有添加和删除,因为该列表包含每个修订版本的一组操作图标。 您可以双击修订以获取已更改文件的列表(如果只更改了一个文件,则直接进入差异视图)

所以你可以很容易地看到哪些修改有删除,你可以快速点击它们来找出涉及哪些文件。 它真的很容易。

我知道你在问关于命令行,但是对于这样的管理任务,GUI浏览器确实有意义。 与阅读隐藏文本的页面(无论您阅读文本多么精通)相比,它可以更快地看到发生了什么事情。