【问题标题】:Is there an SVN command to find the difference between two local files?是否有 SVN 命令来查找两个本地文件之间的差异?
【发布时间】:2009-05-06 19:36:31
【问题描述】:

什么是SVN命令来查找硬盘上两个文件(两者都不在存储库中)之间的差异?

如果其中一个文件在特定版本的 SVN 中,用什么命令查找文件?

您使用 SVN 命令做了哪些很酷的事情?

【问题讨论】:

    标签: svn diff


    【解决方案1】:

    您不使用 SVN 来区分不在存储库中的文件。如果您使用的是 linux,请使用以下命令:

    diff file1 file2
    

    如果您使用的是 Windows,请尝试使用 win merge 之类的工具

    要在存储库中查找有关文件的信息,请使用以下命令:

    svn info file
    

    如果你想了解更多关于SVN的信息,请查看官方tutorial

    【讨论】:

    • Windows 可以使用FC 来比较文件。使用FC /?了解更多详情。
    【解决方案2】:

    svn diff --old foo.c --new bar.c

    【讨论】:

    • 嗨,欢迎来到 SO。你能解释一下你的答案吗?
    • 太棒了!效果很好!应该是公认的答案
    • 是的,我同意丹尼斯的观点,这也是帮助我的答案。
    【解决方案3】:

    在 TortoiseSVN 中,您可以区分两个任意文件。 只需选择它们,然后在 tortoiseSVN 的上下文菜单中选择 diff。但是,它们必须在同一目录中,否则 TSVN 将不会显示 diff 命令。在这种情况下,您可以使用辅助工具 TortoiseIDiff.exeTortoiseMerge.exe,它们是 TortoiseSVN 的一部分,位于 TSVN_installation/bin 文件夹中

    【讨论】:

      【解决方案4】:

      答案:

      1. 没有,SVN 可以比较目标的存储库版本(即特定文件的第 1 版和第 3 版)或工作副本版本和上次签出的版本,或工作副本和存储库版本之间的比较

      2. 取决于你的意思。如果文件已添加,您可以检查给定版本的文件的日志,如下所示:

        svn 日志文件名@revnumber

      例如,查看修订版 2 中的 TestFile.txt 的日志:

      svn log TestFile.txt@2
      

      如果它输出一个日志,那么在修订版 2 中有一个同名的文件,否则它不是。

      但是,这不会告诉您当前工作副本中的文件是否与您检查日志的文件相同(即,如果您在较早的版本中删除了该文件,然后添加了一个同名的新文件,它不是同一个文件,生命周期,但它是一个同名的文件在同一个位置)。

      关于第三个问题,能不能说的更具体一点?

      【讨论】:

        【解决方案5】:

        只是对@Richard Kirby 回答的补充,因为我无法评论低声誉。

        "svn diff --old foo.c --new bar.c"

        这个命令可以完美地在两个本地文件之间产生差异。 除此之外,它还可以用于比较使用 SVN 颠覆 URL 指定的两个文件之间的差异。 它会是这样的: svn diff --old https://repository/file1 --new https://repository/file2

        【讨论】:

          猜你喜欢
          • 2014-02-02
          • 2011-04-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-19
          • 1970-01-01
          相关资源
          最近更新 更多