我想用python來構建一組git實用程序。我正在使用subprocess.Popen來運行git二進制文件。現在我只是試圖找到確定運行git命令時出錯的最佳方法。從Python和錯誤代碼調用Git二進制
我的問題是git是否總會在成功的git命令中返回0的返回碼,並總是在不成功的調用中返回非零的返回碼?我只想確保檢查返回碼是一種安全的方式來檢測錯誤,以便在git命令不成功時退出腳本。
我想用python來構建一組git實用程序。我正在使用subprocess.Popen來運行git二進制文件。現在我只是試圖找到確定運行git命令時出錯的最佳方法。從Python和錯誤代碼調用Git二進制
我的問題是git是否總會在成功的git命令中返回0的返回碼,並總是在不成功的調用中返回非零的返回碼?我只想確保檢查返回碼是一種安全的方式來檢測錯誤,以便在git命令不成功時退出腳本。
是的,git(和任何行爲良好的* nix程序)將始終返回0成功,非0失敗。這是GNU/Linux系統上的範例,而且由於Git是由製作Linux的同一個人制作的,所以您可以打賭遵循約定。
但是,如何從各種git命令定義成功?它不像'cat'或'grep'那麼簡單,雖然我同意它應該返回正確的值,人們會期望我沒有在任何地方看到它。 –
我想不出任何不太明顯的東西。如果你對一個特定的命令有特定的問題,它是什麼?如果你不相信它會返回「正確的價值觀」,那麼就自己嘗試吧 - 這裏沒有人需要說服你。 –
嗯,我只是說你不能提出它會一直返回預期值的說法。例如,如果您沒有git下的目錄權限,則返回128。 –
你有沒有看過Python的任何Git模塊?任何理由不使用它們? –
我聽說他們是欠佳的。我非常喜歡命令行中的git二進制文件,所以我認爲這將是最好的選擇。 – ryanzec
理想的情況是,它應該很容易與二進制接口相連,然而這取決於你如何定義一個錯誤,一些用戶可能期望看到的錯誤可能返回非零。您也可能會遇到處理程序錯誤的問題,因爲您必須處理的最佳值(返回值)不如異常有用。 –