我通常在小型項目上工作,只涉及2-3個人同時在相同的代碼庫上工作。多人項目SVN補丁/差異管理
對我來說,通常的程序如下:
- 沖刷過的bug報告,挑選優先的錯誤,並寫了修復
- 創建一個diff /補丁(姑且稱之爲補丁「阿爾法」 )的更改代碼庫(即:SVN DIFF>〜/ diff_alpha.patch)
- 電子郵件的補丁同事在那裏他們可以目視檢查對代碼庫的diff和鍼砭或建議
- 他們告訴我需要什麼變化,我把它們放進去,然後給我的團隊重新發送電子郵件修改後的補丁
- 一旦所有人都同意這個補丁是好的,我將它應用到代碼庫中,在必要時合併其他人的更改,重新構建,重新測試和提交。
這裏的問題是,我通常不得不等待幾天才能獲得修改後的最終補丁程序的所有批准,並且在那段時間內(顯然)我想要在其他補丁程序上工作。
如果我去另一個bug的工作,它會影響我在前面的補丁工作在同一個文件,這意味着,當我想犯了以前修補(阿爾法),我必須:
- 備份我目前的工作提高到一個新的補丁(即:補丁 「布拉沃」),通過svn DIFF>〜/ diff_ 布拉沃 .patch
- 還原我當前的工作副本(SVN恢復-R)
- 應用舊的補丁(patch -p0 <〜/ diff_ alpha.patch)
- 提交舊補丁(SVN提交)
- 應用我以前工作的補丁(補丁-p0 <〜/ diff_ 布拉沃 .patch)
- 繼續對相關的代碼工作,diff_bravo.patch
這很煩人,因爲我通常需要手動合併diff_alpha和diff_bravo之間的衝突。
我嘗試的另一種方法是繼續我的diff_alpha工作而不創建diff_bravo。然後,當我已經批准在原diff_alpha我發電子郵件了所有的代碼,我做到以下幾點:
- 備份我目前的工作提高到一個新的補丁(即:補丁「TEMP」),通過svn DIFF>〜/ diff_ 溫度 .patch
- 還原我的當前的工作副本(SVN還原-R)
- 應用舊補丁(補丁-p0 <〜/ diff_ 阿爾法。補丁)
- 提交舊補丁(SVN提交)
- 應用我以前在(補丁工作補丁-p0 <〜/ diff_ 臨時 .patch)
- 現在我可以繼續我在做什麼,而不不得不手動合併,但我會在我的「補丁」命令中收到大量失敗的代碼,因爲diff_temp中的一半代碼已經在diff_alpha中提交。我不覺得這是可以接受的。
任何處理公共文件上的多個任務/錯誤的建議,以便我可以最小化SVN衝突?
[代碼評論的最佳工具](http://stackoverflow.com/questions/49906/best-tools-for-code-reviews)可能是有用的閱讀 – 2012-03-29 23:13:34