2009-09-09 73 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等不是必需的。

相關問題