我一直在尝试为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
答案 0 :(得分:3)
这些是一些标准的算法 unix diff命令?
是的,这些是GNU diff3的参数。这是covered in the svn book。
这就是他们实际代表的内容:
-E
- 在diff输出中添加括号。例如<<<<<<< mine
-m
- Output the merge file directly -L
- Same as --label
为文件命名。.working
- 工作副本文件的标签名称。-L
- Same as --label
为文件命名。.merge-left.rXXX
- 标签名称,即旧版本的修订号。-L
- Same as --label
为文件命名。.merge-right.rXXX
- 标签名称,是较新版本的修订号。<temp-file-path>
- “我的”文件的文件路径。即the working copy before the update process <temp-file-path>
- “旧”文件的文件路径。即旧版本<temp-file-path>
- “你的”文件的文件路径。即较新的修订版正如您所看到的,前两个与GNU diff3之外的任何内容都无关,因此在编写bat文件以将参数传递给外部工具时,请使用SHIFT
两次,以便在插槽中使用相关参数1-9而不是3-11。
这对于批处理文件是必要的,因为它们只处理9个参数,但对于bash / python等不是必需的。
答案 1 :(得分:2)
您是否阅读过SVN书籍中的appropriate section?