我們有提交消息規則的雞與雞蛋情況。直到之後提交之後才能知道一條信息。我們認爲,不要求用戶修改提交(如果提交較舊,則需要重新綁定),如果用戶只需通過「註釋」機制添加信息就會很好。好的,到目前爲止,這麼好。在git預接收鉤子中訪問Notes
問題是,如果commit + notes信息不符合規則,我希望'pre-receive'鉤子能夠失敗推送。然而,我似乎無法弄清楚如何查看給定提交的註釋,除非筆記已經被提前提交。
我可以簡單地允許筆記推送通過未選中,然後檢查提交消息和它的筆記,當我看到提交。但是,這是一個不太理想的解決方法。我們可以保證訂單先做筆記,然後提交。但是,這是一個黑客。由於筆記中的信息,如果提交+筆記失敗,該怎麼辦?這意味着可以通過的說明需要修改。
相反,我想要同時獲得筆記和提交(類似git push origin refs/notes/* refs/heads/<branch>
)。我們可以控制這個,因爲我們推送使用包裝腳本。如果兩個推動一起發生,我應該能夠通過/失敗整個事情。沒有錯誤的信息通過。
但我不能爲了我的生活弄清楚如何看筆記。理想的做法是在推送中的每個提交中使用類似git log --format=%N -1 <commit>
的內容。但是這不會產生什麼,我猜是因爲提交和筆記都還沒有完成。我試過git notes list
,希望能打印散列指向的對象(git cat-file -p <hash>
)。但git notes list
什麼都沒有產生。
想法?謝謝。
也許您需要接受臨時分支機構,並且只有在所有信息都存在的情況下才可以回扣它們(有點像Gerrit中的提交門) – eckes