14
Q
跨平臺git鉤子
A
回答
10
git掛鉤與任何shell腳本沒有什麼不同,因爲保持它們「跨平臺」的最佳實踐同樣適用。最小的區別在於,您也可能將Windows * nix仿真層作爲這些鉤子的主要用戶,並且與大多數實際的Unix環境相比,這些鉤子可能會相對受損。
我剛剛移植了一個post-commit鉤子(並且寫了一個預先提交的鉤子)到默認的Git for Windows,它使用了MINGW32。有幾個變化,我不得不做,因爲以前的版本在關於腳本環境中可用的一些假設:
- 沒有
readlink
可用,但它在Windows上是無效的,無論如何,所以我就砍死在which readlink
檢查和無製作的通訊資料,如果有沒有 - 重定向到
/dev/null
不工作在Windows,而不是你要重定向到nul
,要做到這一點,我只是做了uname -s
檢查並設定一個變量是什麼重定向到 - 沒有
mktemp
可用,但由於它是我們最終修剪的目錄,所以我們使用一個天真的硬編碼的目錄名 - 出於某種原因,通過
exec >>$out
標準輸出重定向工作在MINGW32罰款,但exec 2>>$err
對於STDERR沒有(似乎無聲無息地死去),所以很遺憾,我們只是要回避那些重定向
除此之外,它工作得非常好,因爲它沒有太多特定於平臺的「東西」。所以只要堅持製作跨平臺腳本的最佳實踐,那至少可以讓您獲得80%的方式。之後,在所有針對您的各種環境中進行測試測試。
相關問題
- 1. Git跨平臺行結尾
- 2. 是.git文件夾跨平臺嗎?
- 3. 跨平臺
- 4. 跨平臺
- 5. 跨平臺CSRF
- 6. 跨平臺C?
- 7. 跨平臺Bonjour
- 8. SWIG跨平臺
- 9. Android跨平臺
- 10. git post-commit鉤子
- 11. 鏈接git鉤子
- 12. 跨平臺的罐子大小
- 13. 跨平臺分佈電子應用
- 14. Git Post-Receive鉤子從一臺服務器推向另一臺
- 15. 跨平臺移動平臺編程
- 16. 跨平臺框架
- 17. 跨平臺構建
- 18. IOCP,跨平臺庫?
- 19. 跨平臺開發?
- 20. S.M.A.R.T.跨平臺API?
- 21. 跨平臺formatString的
- 22. 跨平臺部署
- 23. C#Activex跨平臺
- 24. 跨平臺登錄
- 25. 跨平臺問題
- 26. 如何刪除git鉤子
- 27. Github桌面和git鉤子
- 28. git鉤子語法檢查
- 29. git服務器端鉤子
- 30. git鉤子執行順序
當然,並不要求git鉤子是一個shell腳本 - 事實上,Perl中至少有一個git的contrib目錄。 – Cascabel 2011-03-08 18:48:49
@Jefromi好點,雖然[shell]標籤讓我相信他在shell腳本中這樣做,但也許他不知道他必須這麼做+1 – 2011-03-08 19:13:45