2008-09-09 44 views
0

我目前正在重建我的本地Subversion版本庫,方法是添加一些新項目,並將舊版代碼和舊版代碼庫中的數據合併到一起。你如何看待遺留代碼(和數據)?

當我在過去完成這項工作時,通常會將遺留代碼放在專用的「遺留」文件夾中,以免「干擾」新的和「結構良好」的代碼樹。但是,本着重構的精神,我覺得這有點不對。理論上,遺留代碼將隨着時間的推移而重構,並移至新的位置,但實際上這很少發生。

你如何對待你的遺留代碼?儘管我很願意將舊的罪孽藏在「遺產」文件夾中,但絕不要再看它,在某種程度上,我希望通過迫使它在存儲庫中的更「健康」的居民中生活,也許遺留下來代碼將有一個更好的機會有一天會好起來?

(是的,我們都知道we shouldn't rewrite stuff,但是這是我的「好玩」的容器,而不是我的經營項目...)

更新

我並不擔心飼養技術方面跟蹤各種版本。我知道如何使用標籤和分支。這更多的是心理方面,因爲我更喜歡在存儲庫中有一個「整潔」的結構,這使得人類更容易導航。

回答

4

有一天所有的代碼都會變成'傳統',爲什麼要把它分開呢?源代碼控制是通過項目/分支或項目/平臺/分支和該類型的層次結構。誰在乎牙齒有多長時間?

2

標記是顛覆中非常便宜的操作。當你開始重構時,並且在你一直處於正常階段時,標記你的代碼。這樣,仍然可以輕鬆地訪問舊的(但功能性的代碼),作爲您閃亮的新代碼(但代碼不正確)的參考。 :-)

1

使用外部定義svn:externals屬性)像您將第三方存儲庫一樣引用您的遺留代碼。

然後,您可以將您的重構工作從您的相關項目中分離出來,並且(使用固定版本引用(例如-r1234))非常明確地說明依賴項目依賴於哪個修訂版本的遺留代碼。

1

這裏是免費的心理分析:

你在這裏什麼是一個根深蒂固的願望來解決您的舊代碼,以便它不是傳統了。當你把它藏起來時,你只是在壓制這種慾望,試圖避免它,因爲這是一種不舒服的感覺。如果你把它放在外面,兩件事情中的一件將會發生:它最終會讓你瘋狂,你必須自殺,或者(更樂觀地),你會被提醒每一個凌亂的事情,直到你最終分解並清理它。

不要掩蓋混亂;打掃。否則它遲早會回來咬你。

1

這取決於你所稱的傳統。如果通過說遺產你真的意味着'從一些退休的應用程序的代碼是如此糟糕,我們將永遠不會再使用它'它應該從你當前的代碼分開。 如果它來自您當前的項目,但是由其他人編寫或不符合您當前的標準,請僅正常處理它,但將其標記爲未來在問題跟蹤器中進行重新分解。

+0

它有所不同。有些是「我應該儘快重構它,但它很無聊,所以我一直在推遲它」,還有一些是「我十年前寫的,希望保留它以防我需要再次做類似的事情或者我只是覺得懷舊,並想看看舊代碼「。 – 2008-09-18 18:27:51