代码之家  ›  专栏  ›  技术社区  ›  Mike Miller

传递给svns-diff3-cmd的参数是什么?

  •  2
  • Mike Miller  · 技术社区  · 15 年前

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

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

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

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

    我也试着通过这个:

    #!/bin/ksh
    echo "$*"
    

    作为 --DIF3CMD 得到了一些输出,但我不能使它所输出的参数的前后颠倒。这些是某些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
    
    2 回复  |  直到 8 年前
        1
  •  2
  •   Milen A. Radev    15 年前

    你读过吗 appropriate section 在SVN的书中?

        2
  •  3
  •   opticyclic    8 年前

    这些是一些标准参数吗 Unix diff命令?

    是的,这些是 GNU diff3 .它是 covered in the svn book .

    这就是他们真正代表的:

    1. -E -将括号添加到diff输出。例如 <<<<<<< mine
    2. -m - Output the merge file directly
    3. -L - Same as --label 给文件命名。
    4. .working -工作副本文件的标签名称。
    5. -L - 等同于 --标签 给文件命名。
    6. .merge-left.rXXX -旧版本的修订号的标签名称。
    7. -L - 等同于 --标签 给文件命名。
    8. .merge-right.rXXX -标签名称,它是较新版本的版本号。
    9. <temp-file-path> -“mine”文件的文件路径。即 the working copy before the update process
    10. <临时文件路径 -“旧”文件的文件路径。即旧版本
    11. <临时文件路径 -“yours”文件的文件路径。即更新版本

    如您所见,前2与GNU diff3之外的任何内容都不相关,因此在编写BAT文件以将参数传递给外部工具时 SHIFT 两次,这样在插槽1-9而不是3-11中就有了相关参数。

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