2008-12-08 24 views
1

當使用一些開源項目(在我的例子中是Joomla和Moodle)時,我經常不得不鑽研核心代碼來做一些修改,但是問題是跟蹤這些更改,以便知道哪些文件要在生產服務器上更新,以及升級到新版本時要特別注意哪些文件,以免我的更改被覆蓋。如何跟蹤對一個大型的,外部維護的代碼庫的小修改

顯而易見的答案是將整個代碼庫加載到版本控制中,然後您可以方便地將修訂版本0(未觸發的版本代碼)與當前版本或工作副本進行比較以查找更改後的文件,但似乎有點像當你只更改一個或兩個文件,並且該項目有超過5000個文件(如Moodle)時,會導致過度殺傷。

一方面是版本控制存儲庫,另一方面是使用記事本手動跟蹤更改...有什麼之間的任何東西?

回答

7

我不確定你爲什麼抵抗版本控制;你的情況正是版本控制的設計要處理的!

實際上,對大型外部驅動代碼庫進行若干小型局部更改的情況使得使用適當的源代碼控制更爲重要。使用具有智能差異和合並引擎的源代碼控制系統可確保從上游進行更新時進行簡單的合併更改很簡單,而且複雜的更改有可能被追蹤。

鑑於高質量,零成本的源控制系統的廣泛可用性,真的沒有理由不使用它們。

0

最終,這聽起來像你已經完成了你已經分叉的代碼。那真的是你的意圖嗎?將您的更改合併到原始源中,然後您不必爲未來的更新繼續進行這些更改。

如果您的更改不適合該項目的任何其他使用者,那麼也許可以引入更改,以便稍後加載您的自定義設置。也就是說,即使您的具體更改不適用於所有人,但您更改的代碼段也可能是其他人希望爲其安裝定製的部分。將一個功能添加到將從單獨文件加載定製的程序。然後,代碼不需要再改變,您可以更新配置文件,而無需跟蹤與外部代碼相關的更改。