2012-06-07 62 views
3

我正在將我們公司的SCM從SVN遷移到mercurial。SSH上的Mercurial用戶名被覆蓋

當前情況是這樣的。 SVN運行在專用於它的單獨的Ubuntu服務器上。 因此,所有開發人員都使用在Ubuntu服務器上創建的用戶在各自的機器上使用「svn + ssh」協議來檢查代碼。因此,無論用戶使用SSH,它都會作爲變更集的作者記錄在回購站中。

因此,在Mercurial中,是否可以使用在Ubuntu上創建的相同用戶集合,並在開發人員通過SSH(而不是hgrc中設置的本地用戶名)登錄時將其記錄爲作者?

汞柱克隆SSH://[email protected]//hg/support

是什麼,我嘗試使用。它適用於作者問題。

+0

如果我推送自己和他人所做的更改會怎麼樣?他們都變了嗎? – robert

+0

@robert,實際上每個開發人員都有單獨的登錄密碼,只有被分配的開發人員知道密碼。所以你的改變是你的,他的是他的。 –

回答

6

不,這是不可能的。您正在遇到中央版本控制與分散版本控制之間的根本區別。

在DVCS中,作者是在每個開發人員的本地配置中配置的,並且在更改提交後立即設置。在此之後,提交是不可變的,其散列是固定的,因此當您按下它時,服務器不具備更改作者的能力。

這不被視爲一個問題,口頭禪是:如果你不相信你的開發者設置正確的名字,可能你不應該讓他們訪問推送代碼。作者僅僅是有用的元數據,而不是權威的。

如果您仍然需要以某種方式記錄此信息,則可以執行的操作是使用記錄哪些用戶推送了哪些變更集的掛鉤來創建推送日誌。例子就在那裏,例如Mozilla有一個,谷歌爲「mercurial pushlog」。

+0

哦,太棒了!感謝Laurens 讓我看看pushlog是如何爲我工作的。 :) –

+3

@勞倫斯霍爾斯特是現貨。考慮跳過pushlog - 這可能比你想象的重要得多。 –