分布式代碼管理方法及系統的制作方法
【專利摘要】本發明涉及代碼編譯領域,公開了一種分布式代碼管理方法及系統。其中,該方法包括:部署權限服務器,使所述權限服務器能夠對多個代碼服務器中的每一個進行操作;通過所述權限服務器創建多個代碼分支,每個代碼分支對應于所述多個代碼服務器中的一個代碼服務器;以及所述權限服務器將所創建的多個代碼分支對應發送到所述多個代碼服務器,實現代碼同步。通過上述技術方案,通過部署權限服務器對多個代碼服務器中的每一個進行操作,通過權限服務器創建并發送對應于代碼服務器的多個代碼分支到代碼服務器,可以實現代碼同步能夠實現靈活的代碼管理。
【專利說明】
分布式代碼管理方法及系統
技術領域
[0001]本發明涉及代碼編譯領域,具體地,涉及一種分布式代碼管理方法及系統。
【背景技術】
[0002]代碼審查可以通過Gerr it軟件實現。Gerr it是一種免費、開放源代碼的代碼審查軟件,使用網頁界面。利用網頁瀏覽器,同一個團隊的軟件程序員,可以相互審閱彼此修改后的程序代碼,決定是否能夠提交,退回或者繼續修改。它使用Git作為底層版本控制系統。代碼審查也稱代碼復查,是指通過閱讀代碼來檢查源代碼與編碼標準的符合性以及代碼質量的活動。
[0003]通常每個應用或者二方庫的代碼將包括master(主)、develop(開發)、release(發布)、hotf ix(修補程序)、feature(特征)分支,其中:
[0004]master和develop分支都是主分支,主分支是所有開發活動的核心分支。所有的開發活動產生的輸出物最終都會反映到主分支的代碼中。
[0005]master分支上存放的應該是隨時可供在生產環境中部署的代碼。當開發活動告一段落,產生了一份新的可供部署的代碼時,master分支上的代碼會被更新。同時,每一次更新,都有對應的版本號標簽(TAG)。
[0006]develop分支是保存當前最新開發成果的分支。通常這個分支上的代碼也是可進行每日夜間發布的代碼(Nightly build)。因此這個分支有時也可以被稱作“集成分支(integrat1n branch),,。
[0007]當develop分支上的代碼已實現了軟件需求說明書中所有的功能,通過了所有的測試后,并且代碼已經足夠穩定時,就可以將所有的開發成果合并回master分支了。對于master分支上的新提交的代碼建議都打上一個新的版本號標簽(TAG),供后續代碼跟蹤使用。
[0008]release分支是為發布新的產品版本而設計的。在這個分支上的代碼允許做小的缺陷修正、準備發布版本所需的各項說明信息(版本號、發布時間、編譯時間等等)。通過在re I ease分支上進行這些工作可以讓develop分支空閑出來以接受新的特征(feature)分支上的代碼提交,進入新的軟件開發迭代周期。
[0009]當develop分支上的代碼已經包含了所有即將發布的版本中所計劃包含的軟件功能,并且已通過所有測試時,就可以考慮準備創建release分支了。而所有在當前即將發布的版本之外的業務需求一定要確保不能混到release分支之內(避免由此引入一些不可控的系統缺陷)。
[00?0] 成功的派生了 release分支,并被賦予版本號之后,develop分支就可以為“下一個版本”服務了。所謂的“下一個版本”是在當前即將發布的版本之后發布的版本。版本號的命名可以依據項目定義的版本號命名規則進行。
[0011 ]除了是計劃外創建的以外,hotfix分支與release分支十分相似:都可以產生一個新的可供在生產環境部署的軟件版本。當生產環境中的軟件遇到了異常情況或者發現了嚴重到必須立即修復的軟件缺陷的時候,就需要從master分支上指定的TAG版本派生hotfix分支來組織代碼的緊急修復工作。
[0012]現有技術中,待審查的代碼都存儲在固定的服務器上,針對代碼的操作(例如審查)需要在特定的服務器上進行。要對代碼進行操作時,需要登錄服務器或通過下載的方式從服務器獲取代碼,操作繁瑣、靈活性差。
[0013]針對上述技術問題,現有技術中尚無良好解決方案。
【發明內容】
[0014]本發明的目的是提供一種方法及系統,該方法及系統能夠實現靈活的代碼管理。
[0015]為了實現上述目的,本發明提供一種分布式代碼管理方法,該方法包括:部署權限服務器,使所述權限服務器能夠對多個代碼服務器中的每一個進行操作;通過所述權限服務器創建多個代碼分支,每個代碼分支對應于所述多個代碼服務器中的一個代碼服務器;以及所述權限服務器將所創建的多個代碼分支對應發送到所述多個代碼服務器,實現代碼同步。
[0016]進一步地,該方法包括:在所述權限服務器上設置web系統;以及通過所述web系統的界面為使用者分配權限。
[00?7]進一步地,該方法包括:通過所述web系統創建所述多個代碼分支,其中所述web系統提供web操作界面。
[0018]進一步地,該方法包括:所述權限服務器通過安全外殼SSH將所創建的多個代碼分支對應發送到所述多個代碼服務器。
[0019]進一步地,所述代碼分支包括以下至少之一者:主分支、開發分支、發布分支、修補程序分支、特征分支。
[0020]進一步地,所述權限服務器為所述多個代碼服務器中具有預設權限的代碼服務器。
[0021]本發明的另一個方面,提供了一種分布式代碼管理系統,該系統包括:相通信的權限服務器和代碼服務器,其中所述代碼服務器被配置成執行代碼審查;以及所述權限服務器被配置成:操作多個代碼服務器中的每一個代碼服務器;創建多個代碼分支,每個代碼分支對應于所述多個代碼服務器中的一個代碼服務器;以及將所創建的多個代碼分支對應發送到所述多個代碼服務器,實現代碼同步。
[0022]進一步地,所述權限服務器上設置有web系統;以及通過所述web系統的界面為使用者分配權限。
[0023]進一步地,所述權限服務器被配置成:通過所述web系統創建所述多個代碼分支,其中所述web系統提供web操作界面。
[0024]進一步地,所述權限服務器被配置成:通過安全外殼SSH將所創建的多個代碼分支對應發送到所述多個代碼服務器。
[0025]進一步地,所述代碼分支包括以下至少之一者:主分支、開發分支、發布分支、修補程序分支、特征分支。
[0026]進一步地,所述權限服務器為所述多個代碼服務器中具有預設權限的代碼服務器。
[0027]通過上述技術方案,通過部署權限服務器對多個代碼服務器中的每一個進行操作,通過權限服務器創建并發送對應于代碼服務器的多個代碼分支到代碼服務器,可以實現代碼同步能夠實現靈活的代碼管理。
[0028]本發明的其它特征和優點將在隨后的【具體實施方式】部分予以詳細說明。
【附圖說明】
[0029]附圖是用來提供對本發明的進一步理解,并且構成說明書的一部分,與下面的【具體實施方式】一起用于解釋本發明,但并不構成對本發明的限制。在附圖中:
[0030]圖1是本發明實施方式提供的分布式代碼管理方法流程圖;以及
[0031]圖2是本發明實施方式提供的分布式代碼管理系統結構示意圖。
【具體實施方式】
[0032]以下結合附圖對本發明的【具體實施方式】進行詳細說明。應當理解的是,此處所描述的【具體實施方式】僅用于說明和解釋本發明,并不用于限制本發明。
[0033]圖1是本發明實施方式提供的分布式代碼管理方法流程圖。如圖1所示,本發明提供的分布式代碼管理方法,該方法可以包括以下步驟:
[0034]步驟101:部署權限服務器,使所述權限服務器能夠對多個代碼服務器中的每一個進行操作;
[0035]在實施方式中,部署的權限服務器可以新建或新裝的服務器,并對服務器進行權限配置,使該服務器具有能夠操作代碼服務器的能力,例如,能夠向代碼服務器發送代碼以使代碼服務器對代碼執行代碼審查;或者向代碼服務器發送指令,指示代碼服務器對在其中存儲的代碼執行代碼審查。在不同的實施方式中,可以單獨設置或部署權限服務器,也可以將代碼服務器中的一個設置為權限服務器。在后者這樣的實施方式中,具有特定權限的代碼服務器除了具有代碼審查功能之外,還可以對其他代碼服務器進行操作,以向其他代碼服務器發送待審查代碼或向其他代碼服務器發送指示代碼服務器對在其中存儲的代碼執行代碼審查。
[0036]步驟102:通過所述權限服務器創建多個代碼分支,每個代碼分支對應于所述多個代碼服務器中的一個代碼服務器;
[0037]在實施方式中,可以根據使用要求或者根據不同代碼服務器的處理能力創建代碼分支。在不同的實施方式中,可以根據代碼服務器中存儲的代碼類型為代碼服務器創建分支。在實施方式中,可以創建的代碼分支包括但不限于以下代碼分支類型:
[0038]主分支、開發分支、發布分支、修補程序分支、特征分支。
[0039]步驟103:所述權限服務器將所創建的多個代碼分支對應發送到所述多個代碼服務器,實現代碼同步。
[0040]在創建了代碼分支之后,權限服務器可以通過網絡(例如,有線網絡或無線網絡)將創建的代碼分支對應發送到代碼服務器。本領域技術人員可以理解,與權限服務器相通信的多個代碼服務器可能不是位于同一機房內部通過局域網連接的代碼服務器集群,而可能是分散于世界各地的分布式代碼服務器。為了保證通信的安全性,在可選的實施方式中,權限服務器可以通過,例如,基于密鑰的安全認證方式發送代碼分支。在可選的實施方式中,所述權限服務器可以通過安全外殼SSH將所創建的多個代碼分支對應發送到所述多個代碼服務器。SSH為安全外殼(Secure ShelI)的縮寫,由IETF的網絡工作小組(NetworkWorking Group)所制定;SSH為建立在應用層和傳輸層基礎上的安全協議。SSH是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用SSH協議可以有效防止遠程管理過程中的信息泄露問題。在其他可選的實施方式中,權限服務器與分布的代碼服務器之間可以具有安全隧道,以實現相互之間的安全通信。
[0041]在實施方式中,權限服務器中可以通過預設的系統提供使用者操作界面以及系統功能(例如,基于用戶名和密碼的登錄功能)。上述方法可以包括:在所述權限服務器上設置web系統;以及通過所述web系統的界面為使用者分配權限。Web系統可以具有以下幾個主要組成部分:Web前端系統、負載均衡系統、數據庫集群系統、緩存系統、分布式存儲系統、分布式服務器管理系統、代碼分發系統等。
[0042]相應地,根據web系統,上述方法可以包括:通過所述web系統創建所述多個代碼分支,其中所述web系統提供web操作界面。利用web操作界面,可以實現諸如使用者登錄等操作。
[0043]圖2是本發明實施方式提供的分布式代碼管理系統結構示意圖。如圖2所示,本發明的實施方式提供了一種分布式代碼管理系統,該系統包括:相通信的權限服務器201和代碼服務器202,其中所述代碼服務器202被配置成執行代碼審查(例如,代碼服務器202中安裝有Gerrit軟件);以及所述權限服務器201被配置成:操作多個代碼服務器202中的每一個代碼服務器202;創建多個代碼分支,每個代碼分支對應于所述多個代碼服務器202中的一個代碼服務器202;以及將所創建的多個代碼分支對應發送到所述多個代碼服務器202,實現代碼同步。
[0044]在實施方式中,部署的權限服務器201可以新建或新裝的服務器,并對服務器進行權限配置,使該服務器具有能夠操作代碼服務器的能力,例如,能夠向代碼服務器202發送代碼以使代碼服務器202對代碼執行代碼審查;或者向代碼服務器202發送指令,指示代碼服務器202對在其中存儲的代碼執行代碼審查。在不同的實施方式中,可以單獨設置或部署權限服務器201,也可以將代碼服務器202中的一個設置為權限服務器201。
[0045]權限服務器201可以是單一計算機,也可以是部署在機房中的計算機(或服務器)集群。在創建了代碼分支之后,權限服務器201可以通過網絡(例如,有線網絡或無線網絡)將創建的代碼分支對應發送到代碼服務器202。本領域技術人員可以理解,與權限服務器201相通信的多個代碼服務器202可能不是如圖2所示位于同一機房內部通過交換機的局域網連接的代碼服務器202集群,而可能是分散于世界各地通過網絡連接的分布式代碼服務器202。為了保證通信的安全性,在可選的實施方式中,權限服務器201可以通過,例如,基于密鑰的安全認證方式發送代碼分支。
[0046]在實施方式中,所述權限服務器201上可以設置有web系統;以及通過所述web系統的界面為使用者分配權限。
[0047]在實施方式中,所述權限服務器201可以被配置成:通過所述web系統創建所述多個代碼分支,其中所述web系統提供web操作界面。在優選的實施方式中,所述權限服務器201可以被配置成:通過安全外殼SSH將所創建的多個代碼分支對應發送到所述多個代碼服務器202。
[0048]在實施方式中,可以根據使用要求或者根據不同代碼服務器202的處理能力創建代碼分支。在不同的實施方式中,可以根據代碼服務器202中存儲的代碼類型為代碼服務器202創建分支。在實施方式中,可以創建的代碼分支包括但不限于以下代碼分支類型:
[0049 ]主分支、開發分支、發布分支、修補程序分支、特征分支。
[0050]通過上述技術方案,通過部署權限服務器對多個代碼服務器中的每一個進行操作,通過權限服務器創建并發送對應于代碼服務器的多個代碼分支到代碼服務器,可以實現代碼同步能夠實現靈活的代碼管理。
[0051]以上結合附圖詳細描述了本發明的優選實施方式,但是,本發明并不限于上述實施方式中的具體細節,在本發明的技術構思范圍內,可以對本發明的技術方案進行多種簡單變型,這些簡單變型均屬于本發明的保護范圍。例如,可以將代碼分支改變為審查分支。
[0052]另外需要說明的是,在上述【具體實施方式】中所描述的各個具體技術特征,在不矛盾的情況下,可以通過任何合適的方式進行組合。為了避免不必要的重復,本發明對各種可能的組合方式不再另行說明。
[0053]此外,本發明的各種不同的實施方式之間也可以進行任意組合,只要其不違背本發明的思想,其同樣應當視為本發明所公開的內容。
【主權項】
1.一種分布式代碼管理方法,其特征在于,該方法包括: 部署權限服務器,使所述權限服務器能夠對多個代碼服務器中的每一個進行操作; 通過所述權限服務器創建多個代碼分支,每個代碼分支對應于所述多個代碼服務器中的一個代碼服務器;以及 所述權限服務器將所創建的多個代碼分支對應發送到所述多個代碼服務器,實現代碼同步。2.根據權利要求1所述的分布式代碼管理方法,其特征在于,該方法包括: 在所述權限服務器上設置web系統;以及 通過所述web系統的界面為使用者分配權限。3.根據權利要求2所述的分布式代碼管理方法,其特征在于,該方法包括: 通過所述web系統創建所述多個代碼分支,其中所述web系統提供web操作界面。4.根據權利要求1所述的分布式代碼管理方法,其特征在于,該方法包括: 所述權限服務器通過安全外殼SSH將所創建的多個代碼分支對應發送到所述多個代碼服務器。5.根據權利要求1所述的分布式代碼管理方法,其特征在于,所述代碼分支包括以下至少之一者: 主分支、開發分支、發布分支、修補程序分支、特征分支。6.根據權利要求1所述的分布式代碼管理方法,其特征在于,所述權限服務器為所述多個代碼服務器中具有預設權限的代碼服務器。7.一種分布式代碼管理系統,其特征在于,該系統包括: 相通信的權限服務器和代碼服務器,其中 所述代碼服務器被配置成執行代碼審查;以及 所述權限服務器被配置成: 操作多個代碼服務器中的每一個代碼服務器; 創建多個代碼分支,每個代碼分支對應于所述多個代碼服務器中的一個代碼服務器;以及 將所創建的多個代碼分支對應發送到所述多個代碼服務器,實現代碼同步。8.根據權利要求7所述的分布式代碼管理系統,其特征在于: 所述權限服務器上設置有web系統;以及 通過所述web系統的界面為使用者分配權限。9.根據權利要求8所述的分布式代碼管理系統,其特征在于,所述權限服務器被配置成: 通過所述web系統創建所述多個代碼分支,其中所述web系統提供web操作界面。10.根據權利要求7所述的分布式代碼管理方法,其特征在于,所述權限服務器被配置成: 通過安全外殼SSH將所創建的多個代碼分支對應發送到所述多個代碼服務器。11.根據權利要求7所述的分布式代碼管理系統,其特征在于,所述代碼分支包括以下至少之一者: 主分支、開發分支、發布分支、修補程序分支、特征分支。12.根據權利要求7所述的分布式代碼管理系統,其特征在于,所述權限服務器為所述多個代碼服務器中具有預設權限的代碼服務器。
【文檔編號】G06F9/44GK105893035SQ201610191488
【公開日】2016年8月24日
【申請日】2016年3月30日
【發明人】石奉兵, 肖瑩
【申請人】樂視控股(北京)有限公司, 樂視致新電子科技(天津)有限公司