diff (di): 显示本地修改,或者两个版本或路径之间的差异。

用法:

  1. diff
  2. diff [-c M | -r N[:M]] [TARGET[@REV]...]
  3. diff [-r N[:M]] --old=OLD-TGT[@OLDREV] [--new=NEW-TGT[@NEWREV]] [PATH...]
  4. diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]
  5. diff OLD-URL[@OLDREV] NEW-PATH[@NEWREV]
  6. diff OLD-PATH[@OLDREV] NEW-URL[@NEWREV]
  1. 仅使用 “svn diff” 则显示工作副本的本地修改。

  2. 显示对由 REV 确定的 TARGET 其两个版本之间所做的修改。TARGET 可以全是工作副本路径或者全是版本库 URL 路径。两个修订版本之间在 REV 中看到的对 TARGET 所做的更改。 目标可以是所有工作副本路径或所有 URL。如果 TARGET 是工作副本路径,则 N 默认为 BASEM 默认为工作副本;如果是版本库 URL 路径,则必须指定 NM 默认则为 HEAD。“-c M” 选项等效于 “-r N:M”, 其中 N = M - 1。使用 “-c -M” 则相反,等效于:“-r M:N”,其中 N = M - 1

  3. 显示由 OLDREV 确定的 OLD-TGT 和由 NEWREV 确定的 NEW-TGT 之间的差异。PATH(如果给定)是相对于 OLD-TGTNEW-TGT 的,并将仅输出这些路径的差异 。OLD-TGTNEW-TGT 可以是工作副本路径或者版本库 URL[@REV]。如果 NEW-TGT 未指定,则默认为 OLD-TGT-r N 使 OLDREV 默认为 N-r N:M 使 OLDREV 默认为 NNEWREV 默认为 M。如果未指定 OLDREVNEWREV,对于工作副本目标,它们默认为 WORKING,对于版本库 URL 路径目标,则默认为 HEAD

    OLD-TGTNEW-TGT 或两者都可以是未版本控制目标的路径。不能为未版本控制的目标指定版本。 这两个目标必须是相同的节点类型(文件或目录)。不支持对未版本控制的目标与版本库 URL 目标进行比较。

  4. svn diff --old=OLD-URL[@OLDREV] --new=NEW-URL[@NEWREV]” 的简写。

  5. svn diff --old=OLD-URL[@OLDREV] --new=NEW-PATH[@NEWREV]” 的简写。

  6. svn diff --old=OLD-PATH[@OLDREV] --new=NEW-URL[@NEWREV]” 的简写。

有效选项:  
-r [--revision] ARG : 指定版本 ARG (一些命令也接受 ARG1:ARG2 格式的版本范围),版本参数可以是如下之一:
  • NUMBER 版本号
  • '{' DATE '}' 在指定时间以后的版本
  • 'HEAD' 版本库中的最新版本
  • 'BASE' 工作副本的基准版本
  • 'COMMITTED' 最后提交的版本或基准版本之前的版本
  • 'PREV' 最后提交版本 COMMITTED 的前一版本
-c [--change] ARG : 版本 ARG (类似 -r ARG-1:ARG) 所作的修改:
  • 如果 ARG 是负数,类似于 -r ARG:ARG-1
  • 如果 ARG 的形式为 ARG1-ARG2,则类似于 -r ARG1:ARG2,其中包括 ARG1
--old ARG : ARG 用作旧目标
--new ARG : ARG 用作新目标
-N [--non-recursive] : 已过时,与 --depth=files 相同
--depth ARG : 限制输出深度为 ARG (empty, files, immediates, 或 infinity)
--diff-cmd ARG : 使用 ARG 作为比较命令
--internal-diff : 覆盖配置文件中指定的 diff-cmd 比较命令
-x [--extensions] ARG : 为外部比较、内部比较、或追溯命令指定比较选项,默认为 “-u”。 各个选项之间使用空白分隔。外部比较和追溯命令使用的选项:
  • -u, --unified: 显示 3 行一致的上下文
  • -b, --ignore-space-change: 忽略空白数量的改变
  • -w, --ignore-all-space: 忽略全部空白
  • --ignore-eol-style: 忽略行尾风格的改变
  • -U ARG, --context ARG: 显示 ARG 行上下文
  • -p, --show-c-function: 显示 C 函数名称
--no-diff-added : 不为添加的文件输出差异
--no-diff-deleted : 不为删除的文件输出差异
--ignore-properties : 操作过程中忽略属性
--properties-only : 操作过程中仅显示属性
--show-copies-as-adds : 不将复制或移动的文件与其来源进行比较
--notice-ancestry : 将不相关的节点当中添加和删除进行比较
--summarize : 显示结果统计
--changelist [--cl] ARG : 仅对变更列表 ARG 的成员进行操作
--force : 强制运行比较
--xml : 以 XML 格式进行输出
--git : 使用 git 的扩展差异格式
--patch-compatible : 生成适用于第三方通用修补工具的差异;当前与 --show-copies-as-adds --ignore-properties 相同