2010-02-26 33 views
0

我有一個存儲在SVN存儲庫中的網站。我被要求徹底改寫它,我已經完成了它尚未受版本控制。我應該將全新的項目重寫版本導入併合併到現有的SVN存儲庫中嗎?

我應該將新版本合併到網站的現有存儲庫中嗎?

由於它是一個全新的版本,它具有與存儲在存儲庫中的現有站點不同的文件和目錄結構。我可以想象這是嘗試合併時的一個問題。

我詢問合併的唯一原因是因爲將項目的所有歷史記錄保存在存儲庫中不是一個好習慣嗎?

關於評論

人們似乎認爲我已經錯過了點,但我可以告訴你,我沒有。我創建了一個全新的站點,它在代碼,目錄結構等方面沒有什麼不同。我決定從一個空目錄(乾淨的畫布)開始處理這個項目,然後在項目結束時導入到存儲庫中。

+0

我強烈建議您查看Michael Feathers的「使用遺留代碼有效地工作」。 – 2010-02-26 16:41:52

回答

3

如果您已經在不使用版本控制的情況下重新編寫它,我認爲您有點錯過了這一點。

你可以做到這一點的一種可能方式是分支原始版本,使用該分支遞增地提交更改,然後在完成時合併回主幹。

現在你已經完成了它,你可能最好把它作爲一個不同的版本來維護。

+0

我決定不使用現有的存儲庫,因爲代碼是一場災難。我無法通過修改現有代碼來完成我所需的更改。這不僅僅是對現有文件進行更改,它是一個全新的網站。 – Camsoft 2010-02-26 16:31:22

+0

@Camsoft在這種情況下,我將它從現在開始視爲一個完全不同的項目。如果原稿處於這樣糟糕的狀態,那麼我無法想象在這種情況下歷史會有用。 – Martin 2010-02-26 16:41:11

+7

您仍然錯過了這樣一個觀點:您爲什麼不在版本控制下進行*開發*,而不是等到完成之後纔將其添加到SVN中?即使你是從一個乾淨的石板開始。 – 2010-02-26 16:41:59

0

你可能已經從重寫開始的原始回購工作,這不會是一個問題。

你可以嘗試合併,但它可能會非常困難。你也可以爲新版本創建一個新的回購。

0

我想這個答案真的取決於SVN如何用於當前網站。如果將SVN用作處理網站更新和部署的方式,並且很難改變環境的配置方式,那麼您可能需要嘗試合併,或者進行一次提交,即刪除當前內容並添加內容。

在我看來,一個更好的方法是將代碼導入新的回購庫,或者至少在現有回購庫中有不同的分支,然後重新定位網站以從新的位置取而不是現有的回收站。

1

創建一個新的存儲庫。如果重寫的應用程序不利用任何原始代碼庫,則嘗試合併它們沒有任何好處。創建一個新的回購協議,創建新的構建和部署腳本,並且將舊的回退。把它作爲一個經驗教訓粉碎,並在下一次建立新的版本。

+0

當舊的代碼庫沒有被保存時,我怎樣才能從原始版本創建新版本? – Camsoft 2010-02-26 16:38:37

1

正如其他人所說,理想情況下,新工作將在源代碼控制下完成。即使是單個開發人員也可以從恢復,分支和排除外部的能力中受益。

繼續,我會將舊項目的主幹移動到標記中,然後將新項目的當前狀態移動到主幹中。這將保留原始項目的修訂歷史記錄,並將新項目放入應該的位置。

相關問題