2010-04-29 65 views
0

它有時會發生在我身上,我忘了,包括在變更文件(即提交了一些修改過的文件屬於一個整體的,如「更正錯誤#45」)提交後添加文件到變更​​集的巧妙方法?

我通常只是做一個第二提交相同的提交消息。

是否有一種聰明而簡單的方式將「後來者」添加到第一次提交中?沒有svn dump ing和svndumpfilter ing?

回答

1

沒有,是不是一個聰明的方式將文件添加到SVN提交。這是真正的原子提交的副作用。一旦提交完成,它就完成了。它是任何其他方式,那麼提交將不會是原子的,因爲它仍然會等待添加「後者」文件。

看來你已經探索了使用「svn dump」和「svn dumpfilter」來回滾提交的明顯技術。唯一的其他選擇是爲了錯誤地提交一個提交「搶先」的SVN樹的備份。祝你的錯誤預防算法!

如果你真的覺得很煩人,我想你可以在pre-commit hook中進行備份,但這有它自己的問題。在用戶覆蓋備份之前,您可能無法識別您忘記了該文件,並且提交可能需要很長時間(由於備份)。

最好的解決方案似乎是註釋你的提交作爲同一個bug的更改集的一部分。通過這種方式尋找修正錯誤的方法將在日誌中提取兩個條目,這基本上描述了兩個提交都是「修復」問題所必需的。這可能會對集成工具產生一些影響,就好像您正在使用掛鉤或工具來檢查日誌一樣,它們應該能夠在多次提交單個錯誤時倖存下來。通常這意味着將錯誤手動更新爲「準備構建」,因爲您不知道錯誤何時由一次提交修復,或者由於健忘而需要另一次提交才能完成。

+0

是的,註釋似乎是最好的選擇。提交之前立即備份的有趣想法。這聽起來像是矯枉過正,但也許是,用預先提交的鉤子...回購是40-50 MB的最大,並在現代機器上快速複製快速複製。如果有任何東西出來,我會在這裏留下反饋,謝謝! – 2010-04-29 13:50:47

1

不可以。您可以更改原始提交消息,但要讓它指示應該與之一起提交的其他提交,或者它是多部分提交。

即。 「修復錯誤#45(1/2)」或「修復錯誤#45(另見修訂號1232,1233)」

您需要確保在服務器上安裝了pre-revprop掛鉤,以允許你編輯提交註釋

1

不,沒有。

2

不,在SVN中沒有這樣的東西。我建議,使第二日誌消息

- Followup to bug #45 

- Followup to revision 123132