2010-05-17 54 views
1

我注意到我們系統中的一些源文件存在差異,其中一些源文件包含源代碼控制簽入註釋,而另一些則不包含。這些評論會自動添加到該文件的頂部時,它被選中:源文件頂部的源代碼管理簽入註釋

* $Log: //vm1/Projects/Morpheus/Sleep.bdy-arc $ 
-- 
-- Rev 1.14 Apr 14 2009 15:32:52 John Smith 
--Fixed bugs 2292 and 2230. 

這似乎已經在所有與我工作過的compainies相當prevelant,但我必須承認,我很難看到重點。一般來說,評論並不是那麼好,早已離開的人留下了,即使他們的標準很高,也很難將他們與物理代碼變更聯繫起來。

這也令我感到震驚,你在物理上改變你正在檢查的文件。現在,這可能不是一個將被編譯的文件的問題,但可能會與其他人發生災難。 JavaScript文件。

所以,真的,我的查詢是在第一個例子中提供這種功能的概念背後的動機是什麼?有沒有人真的覺得這些評論有用?

此外,我很想知道這是否是源代碼管理系統通常支持的功能。我知道它與PVCS,VSS和Subversion(Subversion Keyword Substitution),但我不知道它是否也可用在一些更受歡迎的DVCSs。

您的幫助,一如既往,非常感謝。

回答

5

你說得對 - 這是平衡的,不是修訂控制系統的一個非常有用的功能!是的,公司喜歡審計跟蹤,但這是由修訂控制系統的日誌命令提供的;是的,這意味着如果版本控制系統不存在,則日誌可用 - 但在這種情況下,Fixed bug 1234可能不是很有意義:-)而且,正如您所暗示的,爲了將更改與特定行相關聯,您仍需要版本控制系統的幫助。

你也是正確的,更改文件,因爲它正在致力於可產生的問題 - 我曾經看到其中一個同事仔細地確保了他的代碼編譯的問題,然後提交它,只有被火燒,因爲這些文件,他'承諾沒有編譯。結果發現該評論與Clean up /tmp/*.txt類似,C編譯器將/*視爲註釋開始字符(並且抱怨,因爲它已經在評論中)。

登錄文件的另一個問題是它們只對線性工作有意義 - 一旦你開發了多個分支(像git/mercurial/bazaar這樣的分佈式源工具鼓勵)在源中登錄文件本身幾乎在任何時候都只會造成合並衝突。

由於這個原因,現代工具往往不實現這個功能。確實subversion doesn't - 其關鍵字替換故意不允許包含日誌歷史記錄。

+1

輝煌答案!謝謝 :-) – 2010-05-17 15:04:42

1

所以真的,我查詢究竟是什麼 動機概念暫列第一 實例提供 此功能?有沒有人真的找到 這些評論有用嗎?

當源鏡像到外部位置(源包,源代碼索引等)時,則版本控制信息可能不可用。對於這種情況,這些信息可能有用。

1

真的,我的查詢是在第一個例子中提供這種功能的概念背後的動機是什麼?有沒有人真的覺得這些評論有用?

在一些公司中,審計控制是一個大問題。審計人員希望能夠從事件系統追蹤到實際的代碼更改。 Fixed bugs 2292 and 2230.提供了從代碼到事件系統的追溯。

由於相同的原因,一些公司要求事件編號作爲源控制更改日誌註釋的一部分。