2011-11-01 57 views
0

我很好奇GIT(或Mercurial)或SVN是否可以從提交評論追加評論。例如,如果我有一個文件ABC.cpp並在ABC.cpp文件的末尾執行Commit -m「hello world」,它會將提交註釋附加到它上面?或相反亦然? EG:讓GIT或SVN在接近ABC.cpp代碼的末尾查看標記值並將其附加爲提交註釋?GIT或SVN註釋在提交或反之後添加到文件

感謝

+1

你最好不要這樣做 –

回答

1

沒有,這一點是用在CVS日內完成(或更早),但它通常被認爲今天的實踐爲差。主要問題是它使非常難,因爲更改爲文件自動衝突與其他所有更改。

+0

該死的...謝謝.... – Minh

+2

「文件的每一次改變都會自動與其他所有改變衝突」 - 錯誤。 Git,AFAIK中的過濾器,只修改**表示層**,不存儲和**關鍵字內容更改**在Mercurial中**沒有被跟蹤** –

+0

@LazyBadger:當然,如果你想添加一個額外的層免費的隱藏實際內容的VCS頂部。但是,將提交日誌嵌入到文件內容中仍然是一個壞主意。 –

3

不過,你可以設法得到它在Git中/水銀,但無論如何格雷格是正確的 - 今天是不禮貌的。

只是暗示,不準備使用的解決方案

  • Git中

,你可以寫在文件時替換 自己的過濾器提交/結賬的情況下。這些是「乾淨」和「污跡」過濾器。在 .gitattributes文件中,您可以爲特定路徑設置一個過濾器,然後設置腳本,在文件 檢出之前處理文件(「污跡」,請參見圖7-2),並且在它們出現之前 提交(「乾淨」的,參見圖7-3)

Pro Git, 「關鍵詞膨脹」 部分)。

  • 在水銀的情況下,關鍵字擴展和 精心設計關鍵字,它趕上提交消息

    [keywordmaps] ... Commitmess = {}內容描述

在.hgrc中,這將允許您在源中使用$ Commitmess $

1

我最喜歡的示例之一爲什麼這麼糟糕來自CVS網站。在CVS中,如果將「$ Log $」放入文件中,它會將提交註釋放在該行後面的行中。這就像在您的提交中輸入「cvs log」的輸出。

一些亮人作爲提交評論「在文件中添加了$ Log $行」。因此,右側的提交註釋下面是行:

Added $Log$ line in the file 

在接下來的提交,的$Log兩個實例引起要重複的提交註釋。而且,由於其中一條評論包含「$ Log」,我們現在有四個「$ Log $」實例。

每次提交完成後,我們都會將$ Log $條目中的行數加倍。刪除無關的$ Log $行並沒有幫助,因爲下一次提交將它們重新放入並重新加倍。

最後,我不得不編輯存儲庫中的,v文件以清除整個$ Log $混亂。

在Subversion文檔中,他們對$ Log $ very clear做出了自己的感受。

+0

看來他們修復了它,至少我不能重現它。 – Rudi

+0

@Rudi - 你說的是CVS而不是Subversion?對? –

+0

當然。由於我是負責保持我們公司CVS服務器運行的人員(* grml *),因此我總是檢查是否找到一些CVS另一個惱人的行爲。 – Rudi

相關問題