2011-08-01 37 views

回答

0

實際上,提交消息適用於變更集,其中包含對所修改文件的更改。

,如果你想解決更改每個文件你可以做多行消息:

new features, fixed bugs, etc. 
file1.txt: fixed bug 1234 
file2.txt: refactored body of Foobar() 
file3.txt: did Rot13 on the entire file, twice 
file4.txt: added overload of Bar() to except a second Foo object 

我不建議這樣做對每個文件變更,但是,即使這是可能的。

+0

順便說一句,將摘要和其餘消息分開爲空行是不是很好的做法? – Helgi

+0

也許吧。對我來說,這似乎更多的是個人偏好,儘管人們可能會將其作爲店鋪風格策略的一部分。儘管我們很少在商店中共同承諾無關的更改,但我們在提交消息中並不是非常冗長:它們通常是一行內容。 –

+0

我使用多行消息進行提交,但是當我對遠程存儲庫(Bitbucket)執行推送操作時,我檢查了推送的文件,並且在單獨修改源文件時看到了整個消息提交。我在考慮使用多行提交消息,只有引用文件的消息是該文件的提交消息。現在我在更新的所有文件中都有一些提交消息,可以通過某種方式更改此行爲? –

4

理想情況下,每個變更集應該包含一些特定的變化,不管是修正文件中的單行修正一個小錯誤,還是修改整個代碼庫中的函數簽名等大小。

這允許您稍後將更改集移植到其他分支上,這很容易,當您的更改集沒有被不相關的東西污染時,這很容易。

(順便說一句,這是現代DVCS像水銀或Git的,其軌道改變,和舊的系統,如SVN,之間的主要區別哪個軌道修訂

如果你覺得你需要爲每個文件寫入單獨的註釋,這個可能是意味着你實際上一次提交幾個不相關的更改,這不是很好的做法。

在另一方面,如果不是的話,你當然可以寫多行消息:如果要使用命令行

User can no longer add the same product twice (issue123) 

add_product.py: added server-side validation 
scripts.js: added client-side validation 
+0

感謝您的回覆! –

+0

如果回答了您的問題,請考慮接受答案(綠色複選標記圖標)。 – Helgi

1

,你可以通過更改提交到單個文件他們hg commit命令行:

> hg st 
M file1.cpp 
M file1.h 
M file2.cpp 
M file2.h 
> hg commit -m "Some changes" file1.cpp file1.h 
> hg st 
M file2.cpp 
M file2.h 

你可以使用TortoiseHg只「檢查」你要檢查在thg commit窗口中的文件,同樣的事情 - 通過取消選中那些你不想或者更準確地說,承諾。

但請注意,這將創建幾個變更集,每個提交一個。如果這不是你想要的,那麼我會同意Helgi。

在以前的TortoiseHg版本(使用tk編寫的時候,以前不是很久以前),實際上可以選擇文件更改的單獨「塊」並單獨提交它們。然而,這在目前的版本中是不可用的,據我所知,暫時還沒有計劃。