2009-09-09 74 views
2

我一直在努力为SVN写我自己的diff3 wrap脚本,我想知道传递给--diff3-cmd的各种参数是什么。传递给SVNs的参数是什么--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

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

+0

啊哈,显然我错过了这一节。谢谢! – 2009-09-09 14:37:05

2

这些是一些 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> - “mine”文件的文件路径。即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等不是必需的。

相关问题