2017-09-07 32 views
0

我們使用Phabricator來執行預先提交的審查&對mercurial repo的審計。 Phabricator 不會主機回購,它只會觀察它。 該項目配置爲自動關閉,因此直到最近,推送存儲庫上經過驗證的審查的所有提交都會自動關閉相關修訂。 目前爲止這麼好。Phabricator通過考慮第一次承諾是最後一次承諾我弄了個評論

今天,我們的管理員發現一個php lib丟失並安裝它。看來deamon從來沒有'正確地'工作到現在。然而,從這一刻起,所有現有的評論都被更新了,使得第一次評審是唯一可以看到的。任何新的評論是罰款,直到它被關閉,其中Phabricator寫道:

Closed by commit R1:a9a9e1153022: doc: update changelog (authored by vsiles). · Explain WhyThu, Sep 7, 5:09 PM 
This revision was automatically updated to reflect the committed changes. 

(分別爲a9a9e1153022是最先提交的修訂,但是這是總是如此IIRC)。現在整個評論只顯示第一次提交,而不是全部。

如果我們轉到評論中的「歷史」選項卡,我們可以看到,Phabricator在第一次提交的修訂&時間戳後添加了一個額外的「差異」,在我們推送的所有diff之後。這似乎是問題所在。如果我們修改歷史記錄以顯示所有提交,但是這一次,我們找回所有我們的評論內容。

目前,我唯一的解決方法是取消「自動關閉」功能,並使用arc close-revision DXX手動關閉評論。 Phabricator沒有更多的自動步驟來解決問題,並且額外的差異不是由Phabricator生成的。

有人可以解釋爲什麼Phabricator認爲審查是關閉的第一提交,這似乎是問題在這裏?

回答

0

Phabricator推薦的工作流程是使用arc land來推送和關閉修訂版本。直接推送使用mercurial可能沒有預期的結果,因爲mercurial沒有差異修訂的知識,並且Phabricator守護進程在事實之後嘗試重新構建修訂和提交之間的聯繫。

+0

是的,我希望在下一個項目中使用的工作流程。不幸的是,我們必須將Phabricator設置爲傳統項目的「僅限觀察者」。感謝您的意見! – Vinz