當我使用「p4 diff」時,它會忽略我已打開添加的文件。是否有可能生成包含添加文件以及更改文件的差異?Perforce - 生成包含添加文件的差異?
回答
考慮diff in Perforce車廠在客戶工作區的文件進行比較,以修訂,簡單的答案是「不」。
沒有文字記載的歷史比較,爲added file(前提交不提交到庫)
較長的答案會涉及腳本添加的文件的全部內容,完成差異。 (有點像在這個SO question)
噢。這是一個恥辱,謝謝你的答案。 – kdt 2010-01-04 23:00:28
這是P4差異的已知失蹤的功能,大量的處理Perforce的工具必須解決。
的代碼審查工具Reviewboard自帶的工具post-review。它用於爲代碼視圖創建差異,但如果您願意,它只會執行差異。
它在Python中,你可以拉出來爲自己使用的差異部分。
我剛工作圍繞這一問題,並得到了包括在魚眼預提交評論我添加的文件。
我所做的就是複製編輯後的文件的diff hunk描述符標題。這包括一行列出倉庫和本地路徑 - 非常簡單 - 另一行包含範圍信息,格式如here所述。
所以,我添加的每個附加的每個文件的內容涉及diff,每個都由
==== //path/to/depot/file#1 - /path/to/workspace/file ====
@@ -1,1 +1,LEN @@
其中LEN
是在所添加的文件的行數之後。
這對我有效;你的旅費可能會改變。
我剛剛得到這個工作,分出了亞倫的答案。取而代之的
==== //path/to/depot/file#1 - /path/to/workspace/file ====
我用
--- //path/to/file [TIMESTAMP GENERATED BY NORMAL DIFF]
+++ //path/to/file [TIMESTAMP GENERATED BY NORMAL DIFF]
@@ -1,1 +1,LEN @@
然後確保每個添加行的開頭有一個+
。
我寫這幫助我在Cygwin上:
#!/bin/bash
if [ $# -ne 1 ]; then
echo "usage: $0 <pathSpec>"
exit 1
fi
pathSpec=$1
doIt() {
p4 opened "$pathSpec" | egrep "#.* - add" | while read f; do
# figure out the workspace path
depotPath=${f%#*}
clientFileLine=$(p4 fstat "$depotPath" | grep clientFile)
workspacePathWin=${clientFileLine#... clientFile }
# diff output
echo ==== $depotPath#1 - $workspacePathWin ====
workspacePath=$(cygpath "$workspacePathWin")
lineCount=$(wc -l < "$workspacePath")
echo @@ -0,0 +1,$lineCount @@
# the actual diff contents
sed -e 's/^/+/' "$workspacePath"
echo
done
}
doIt
只是P4打印添加的文件(我知道,這不是很大), - 但它絕對一條路可走。
- 1. 使用Perforce生成多個文件的差異
- 2. 比較XML文件並生成僅包含差異的輸出
- 3. Perforce - 獲取添加或刪除文件的差異
- 4. 應用差異文件,其中包含來自多個文件的差異
- 5. mercurial生成文件名僅差異
- 6. 包含CMake的外部生成文件
- 7. PHP包含Javascript生成的文件名?
- 8. Perforce公司排除差異
- 9. 如何生成頂級包含文件
- 10. 在宏中生成包含文件名
- 11. NSDateformatter在NSTextfield的界面生成器中添加添加GMT差異
- 12. 添加文本(文件包含標籤)
- 13. 在修訂範圍內perforce中的多個文件差異
- 14. 如何生成mst文件差異爲2個msi文件
- 15. 如何爲內核模塊生成文件添加包含路徑
- 16. 更改包含的生成文件中的文件路徑
- 17. 不能標記添加文件perforce
- 18. Perforce在Eclipse中的外部差異?
- 19. 如何將msbuild生成的文件添加到Azure包
- 20. 在FOP生成的PDF文件中包含PDF文件
- 21. 僅包含以遞歸的差異
- 22. 生成鑲木地板文件 - R和Python之間的差異
- 23. Perforce不包含子文件夾的Filespec語法
- 24. Enterprise Architect - 生成文檔 - 包含文檔工件作爲附件
- 25. perforce:如何從差異視圖結帳?
- 26. 生成一個文本文件的周圍包含數據
- 27. 熊貓列差異,包含列表
- 28. 將包電池包含在生成文件中供Ocaml使用
- 29. 生成來自不同文件和文件夾的多個更改列表中的單個差異
- 30. 將Maven生成的網站添加到生成的包中
'p4 reconcile'會爲你工作嗎? http://www.perforce.com/perforce/doc.current/manuals/cmdref/p4_reconcile.html – P4Shimada 2015-01-30 01:58:10