2013-02-09 47 views
2

我正在與一個有多個版本的軟件組的團隊合作。從無版本控制轉換

該軟件具有許多展開時 - 我們的每一次客戶端拋出一個新的「事件」,我們部署了他們一個新的Rails應用程序有它自己的數據庫,我們的服務器上進行。

到現在爲止,我們剛剛保持了各個版本的「大師」,和符號鏈接每個安裝使用的軟件版本到主版本。

這使我們能夠對主服務器進行更改,並從該主服務器更新(如果它是全局所需的錯誤修復程序或修補程序)中部署5次安裝,同時還允許我們偶爾拋出每個安裝功能這可能只是在某個事件安裝中需要或期望的。

什麼是管理和維護這樣的系統中的一些有效的方法?

如何使用新版本將所有這些舊版本的軟件加載到存儲庫中?

我在想,我可以這樣做: 創建一個名爲「V1.0」 刪除所有文件 文件從應用程序的版本,我想標記 提交這些更改移動新的分支 ??一些git命令,允許我將該分支轉換爲master上的標籤。

這是純粹的猜想,我會測試這個,以及我從那些更有經驗的git獲得的想法。

最後,如果有你有這種類型的轉換的任何一般提示,請分享。

+0

從一個部署到另一個部署有什麼不同?次要功能?巨大的定製?只有不同的數據庫? – ctcherry 2013-02-09 02:18:33

+0

只有小功能,沒什麼大的。錯誤修復通常針對每次安裝(每個版本都安裝多次) – Squadrons 2013-02-09 03:11:28

回答

2

根據我的經驗,管理多個分支樹的痛苦是相當高的。相反,我會強烈考慮將不同部署的不同特性構建到單一源代碼樹中,並且擁有一個非常好的配置/功能標記系統,以根據每個實例中的需求定製安裝。你甚至可以把整個事情變成一個單一的應用程序,而不是有多個部署,每個部署都變成了一個「賬戶」,也就是多租戶應用程序。

+0

Upvoted讓我看看多租戶。雖然這不會在我的組織中發揮作用,因爲它可能會做太多的工作和改變。只是讓人們相信版本管理是一個優秀的東西一直非常困難。 – Squadrons 2013-02-09 16:20:25

+1

我感覺對你來說,獲得那些不太「明白」的組織所實施的那些變革是一個非常艱難的過程。繼續打好戰鬥! – ctcherry 2013-02-09 21:12:36

1

如果每個安裝功能,可以不配置,使每個安裝分公司和重訂其需要升級時,要掌握。請參閱http://git-scm.com/book/en/Git-Branching-Rebasing(從開頭閱讀該書)。

要導入歷史記錄:我希望你的每個版本都在它自己的目錄中。然後在第一個目錄中初始化Git存儲庫,然後從每個版本目錄創建符號鏈接到這個新的first/.git。現在在每個版本目錄中輸入git add . && git commit -a。之後,您將創建所有提交,因此刪除符號鏈接並將.git目錄移動到新(空)目錄並鍵入git reset --hard(它會將該空目錄的維度恢復到最新版本)。

您將要修改的日期和作者姓名,而這樣做git commit。請參閱手冊(git commit --help)。