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

时间:2009-09-09 14:15:12

标签: svn diff

我一直在尝试为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

2 个答案:

答案 0 :(得分:3)

  

这些是一些标准的算法   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 - 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> - “你的”文件的文件路径。即较新的修订版
  12. 正如您所看到的,前两个与GNU diff3之外的任何内容都无关,因此在编写bat文件以将参数传递给外部工具时,请使用SHIFT两次,以便在插槽中使用相关参数1-9而不是3-11。

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

答案 1 :(得分:2)

您是否阅读过SVN书籍中的appropriate section