【问题标题】:What are the arguments passed to SVNs --diff3-cmd?传递给 SVN --diff3-cmd 的参数是什么?
【发布时间】:2009-09-09 14:15:12
【问题描述】:

我一直在尝试为 SVN 编写自己的 diff3 包装脚本,我想知道传递给 --diff3-cmd 的各种参数是什么。

到目前为止我能找到的最接近的是:

How can I use Beyond Compare 3 as the diff3-cmd for svn?

但这并不能完全解释所有参数的作用。

我也试过通过这个:

#!/bin/ksh
echo "$*"

作为--diff3-cmd,并得到了一些输出,但我无法对它吐出的论点做出正面或反面。这些是某些 unix diff 命令的标准参数吗?

-E -m -L .working -L .merge-left.r1000 -L .merge-right.r1001 /home/user/some/long/filename1 /tmp/tmp /home/user/some/long/filename2

【问题讨论】:

    标签: svn diff


    【解决方案1】:

    这些是某些人的标准参数吗 unix diff 命令?

    是的,这些是GNU diff3 的参数。我是covered in the svn book

    这就是它们的实际代表:

    1. -E - 在差异输出中添加括号。例如<<<<<<< mine
    2. -m - Output the merge file directly
    3. -L - Same as --label 为文件命名。
    4. .working - 工作副本文件的标签名称。
    5. -L - Same as --label 为文件命名。
    6. .merge-left.rXXX - 标签名称是旧版本的版本号。
    7. -L - Same as --label 为文件命名。
    8. .merge-right.rXXX - 标签名称是较新版本的版本号。
    9. <temp-file-path> - “我的”文件的文件路径。即the working copy before the update process
    10. <temp-file-path> - “旧”文件的文件路径。即旧版本
    11. <temp-file-path> - “你的”文件的文件路径。即较新的版本

    如您所见,前 2 个与 GNU diff3 以外的任何东西都无关,因此在编写 bat 文件以将参数传递给外部工具时,请使用 SHIFT 两次,以便您在插槽 1- 中拥有相关参数9 而不是 3-11。

    这对于批处理文件是必需的,因为它们只处理 9 个参数,但对于 bash/python 等则不是必需的。

    【讨论】:

      【解决方案2】:

      你读过SVN Book中的appropriate section吗?

      【讨论】:

      • 啊哈,显然我错过了这一节。谢谢!
      • 下面有更好的答案
      猜你喜欢
      • 2022-01-05
      • 2018-09-29
      • 1970-01-01
      • 1970-01-01
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多