代碼自動合并方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種代碼自動合并方法和系統(tǒng),該方法包括如下步驟:接收新修改的代碼文件;其中,所述新修改的代碼文件中記錄有代碼的修改位置、修改時(shí)間和合并路徑;根據(jù)所述合并路徑查找待合并的代碼文件;按照所述修改位置對應(yīng)的修改時(shí)間的先后順序,將所述修改位置對應(yīng)的代碼合并到所述待合并的代碼文件中,獲得更新后的代碼文件。本發(fā)明能快速自動地對代碼進(jìn)行合并,合并過程無須人工參與,合并效率高。
【專利說明】代碼自動合并方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及代碼處理【技術(shù)領(lǐng)域】,特別是涉及一種代碼自動合并方法,以及一種代 碼自動合并系統(tǒng)。
【背景技術(shù)】
[0002] 目前在進(jìn)行開發(fā)時(shí),當(dāng)某一個版本具備上線條件后,需要在上一個已發(fā)布的版本 基礎(chǔ)上進(jìn)行發(fā)布,才能夠避免出現(xiàn)版本相互覆蓋,因此往往需要對版本之間的代碼進(jìn)行合 并。
[0003] 傳統(tǒng)技術(shù)中經(jīng)常是人工操作第三方合并工具進(jìn)行代碼合并。例如,TortoiseSVN 是Subversion版本控制系統(tǒng)的一個客戶端,利用該工具,人工操作合并代碼的步驟為 checkout (檢出代碼到本地)、merge (合并指定代碼到本地)、commit (提交代碼到版本 庫)、remark (備注提交信息)。
[0004] 這種方式的缺點(diǎn)是:由于系統(tǒng)因代碼庫龐大數(shù)據(jù)量,檢索耗時(shí)和傳輸問題等導(dǎo)致 速度操作速度緩慢;需專業(yè)人員或者經(jīng)過一定的培訓(xùn)后才懂得使用。操作步驟繁瑣,需按一 定的順序完成一系列的操作,并且人工操作執(zhí)行效率低、操作步驟繁瑣,人為操作易導(dǎo)致代 碼合并錯誤、遺漏、低效等問題。
【發(fā)明內(nèi)容】
[0005] 基于此,本發(fā)明提供一種代碼自動合并方法和系統(tǒng),能快速自動地對代碼進(jìn)行合 并,合并過程無須人工參與,合并效率高。
[0006] 一種代碼自動合并方法,包括如下步驟:
[0007] 接收新修改的代碼文件;其中,所述新修改的代碼文件中記錄有代碼的修改位置、 修改時(shí)間和合并路徑;
[0008] 根據(jù)所述合并路徑查找待合并的代碼文件;
[0009] 按照所述修改位置對應(yīng)的修改時(shí)間的先后順序,將所述修改位置對應(yīng)的代碼合并 到所述待合并的代碼文件中,獲得更新后的代碼文件。
[0010] -種代碼自動合并系統(tǒng),包括:
[0011] 接收模塊,用于接收新修改的代碼文件;其中,所述新修改的代碼文件中記錄有代 碼的修改位置、修改時(shí)間和合并路徑;
[0012] 第一查找模塊,用于根據(jù)所述合并路徑查找待合并的代碼文件;
[0013] 第一合并模塊,用于按照所述修改位置對應(yīng)的修改時(shí)間的先后順序,將所述修改 位置對應(yīng)的代碼合并到所述待合并的代碼文件中,獲得更新后的代碼文件。
[0014] 上述代碼自動合并方法和系統(tǒng),接收用戶提交的新修改的代碼文件,由于代碼文 件中記錄有代碼的修改位置、修改時(shí)間和合并路徑,可根據(jù)合并路徑查找到待合并的代碼 文件,接著根據(jù)所述修改位置對應(yīng)的修改時(shí)間的先后順序,將所述修改位置對應(yīng)的代碼合 并到所述待合并的代碼文件中,從而獲得更新后的代碼文件;本發(fā)明根據(jù)提交的合并路徑 查找到對應(yīng)的待合并代碼文件,可根據(jù)修改位置和修改時(shí)間實(shí)現(xiàn)代碼的自動合并,無需人 工參與,代碼合并速率較高。
【專利附圖】
【附圖說明】
[0015] 圖1為本發(fā)明代碼自動合并方法在第一實(shí)施方式中的流程示意圖。
[0016] 圖2為本發(fā)明代碼自動合并方法在第四實(shí)施方式中獲取開始合并的版本號及結(jié) 束合并的版本號的界面示意圖。
[0017] 圖3為本發(fā)明代碼自動合并系統(tǒng)在第一實(shí)施方式中的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0018] 下面結(jié)合實(shí)施例及附圖對本發(fā)明作進(jìn)一步詳細(xì)說明,但本發(fā)明的實(shí)施方式不限于 此。
[0019] 如圖1所示,是本發(fā)明一種代碼自動合并方法在第一實(shí)施方式中的流程示意圖, 包括如下步驟:
[0020] Sl 1、接收新修改的代碼文件;其中,所述新修改的代碼文件中記錄有代碼的修改 位置、修改時(shí)間和合并路徑;
[0021] S12、根據(jù)所述合并路徑查找待合并的代碼文件;
[0022] S13、按照所述修改位置對應(yīng)的修改時(shí)間的先后順序,將所述修改位置對應(yīng)的代碼 合并到所述待合并的代碼文件中,獲得更新后的代碼文件;
[0023] 本實(shí)施例的代碼自動合并方法,接收用戶提交的新修改的代碼文件,由于代碼文 件中記錄有代碼的修改位置、修改時(shí)間和合并路徑,可根據(jù)合并路徑查找到待合并的代碼 文件,接著根據(jù)所述修改位置對應(yīng)的修改時(shí)間的先后順序,將所述修改位置對應(yīng)的代碼合 并到所述待合并的代碼文件中,從而獲得更新后的代碼文件;本實(shí)施例根據(jù)提交的合并路 徑查找到對應(yīng)的待合并代碼文件,可根據(jù)修改位置和修改時(shí)間實(shí)現(xiàn)代碼的自動合并,無需 人工參與,代碼合并速率較高。
[0024] 對于步驟S11、接收新修改的代碼文件;其中,所述新修改的代碼文件中記錄有代 碼的修改位置、修改時(shí)間和合并路徑;
[0025] 當(dāng)用戶修改代碼文件時(shí),實(shí)時(shí)記錄代碼文件中代碼的修改位置和修改時(shí)間,同時(shí) 記錄該新修改的代碼文件的合并路徑;所述合并路徑,可為版本庫中某一域名下的分支路 徑,版本庫中保存有所有的代碼文件,按照不同的項(xiàng)目分類,對應(yīng)不同的域名,每個域名下 對應(yīng)有多個分支,每個分支下儲存相應(yīng)的代碼文件。
[0026] 對于步驟S12、根據(jù)所述合并路徑查找待合并的代碼文件;
[0027] 根據(jù)新修改的代碼文件中指定的合并路徑,從版本庫中查找對應(yīng)的待合并的代碼 文件;本實(shí)施例中,待合并的代碼文件無需在用戶的本地端處理,相對現(xiàn)有技術(shù),可顯著減 少處理流程。
[0028] 對于步驟S13、按照所述修改位置對應(yīng)的修改時(shí)間的先后順序,將所述修改位置對 應(yīng)的代碼合并到所述待合并的代碼文件中,獲得更新后的代碼文件;
[0029] 本實(shí)施例中,對于新修改的代碼文件,可能有多個不同的修改位置,新修改的代碼 文件由于記錄了各個修改位置對應(yīng)的修改時(shí)間,在合并時(shí),根據(jù)各個修改位置對應(yīng)的修改 時(shí)間的先后順序進(jìn)行代碼文件的合并,將所述修改位置對應(yīng)的代碼合并到所述待合并的代 碼文件中,獲得更新后的代碼文件。
[0030] 以下是本發(fā)明一種代碼自動合并方法的第二實(shí)施方式,本實(shí)施方式與第一實(shí)施方 式的區(qū)別在于:
[0031] 所述修改位置為所述新修改的代碼文件的修改行的行號;
[0032] 所述將所述修改位置對應(yīng)的代碼合并到所述待合并的代碼文件中的步驟包括:
[0033] 將所述新修改的代碼文件中所述行號對應(yīng)的代碼,與所述待合并的代碼文件中所 述行號對應(yīng)的代碼進(jìn)行對比;
[0034] 若兩者不同,則將所述新修改的代碼文件中所述行號對應(yīng)的代碼覆蓋掉所述待合 并的代碼文件中所述行號對應(yīng)的代碼;
[0035] 本實(shí)施例中,所述修改位置為新修改的代碼文件中修改行的行號;通過記錄被修 改的代碼所在的行號,能精確地記錄代碼文件的修改位置;在合并時(shí),首先根據(jù)修改行的行 號,對比在新修改的代碼文件該行號的代碼和待合并的代碼文件中該行號對應(yīng)的代碼,兩 者不同,則表示該行的代碼修改過,將其覆蓋掉所述待合并的代碼文件中所述行號對應(yīng)的 代碼,完成代碼文件合并的過程;本實(shí)施例通過記錄修改行的行號,可精確地實(shí)現(xiàn)代碼的合 并,減少代碼文件合并的錯誤率。
[0036] 以下是本發(fā)明一種代碼自動合并方法的第三實(shí)施方式,本實(shí)施方式與第一實(shí)施方 式的區(qū)別在于:
[0037] 所述接收提交的新修改的代碼文件的步驟包括:
[0038] 從Subversion版本控制系統(tǒng)接收所述新修改的代碼文件,通過所述Subversion 版本控制系統(tǒng)獲得所述修改位置和修改時(shí)間,并將所述修改位置和修改時(shí)間添加到所述新 修改的代碼文件中;
[0039] 本實(shí)施例的代碼文件的修改,通過Subversion版本控制系統(tǒng)進(jìn)行管理,利用源代 碼的版本控制機(jī)制(每個文件、每行代碼,通過Subversion做好版本記錄),根據(jù)不同用戶 提交的代碼進(jìn)行管理并做版本記錄;因此通過獲取版本庫中的日志記錄,通過比較不同用 戶修改的代碼以時(shí)間節(jié)點(diǎn)為準(zhǔn)進(jìn)行先后順序的合并,將修改前后的文件進(jìn)行匹配合并成新 版本的代碼文件,并重新提交給源代碼庫,無須手工合并代碼。
[0040] 以下是本發(fā)明一種代碼自動合并方法的第四實(shí)施方式,本實(shí)施方式與第一實(shí)施 方式的區(qū)別在于:所述新修改的代碼文件中還記錄有版本號;本實(shí)施例的方法還可包括步 驟:
[0041] 獲取開始合并的版本號及結(jié)束合并的版本號;
[0042] 在接收的新修改的代碼文件中查找從所述開始合并的版本號到結(jié)束合并的版本 號之間對應(yīng)的所有新修改的代碼文件;
[0043] 根據(jù)所述版本號的排列順序,按照所述修改位置對應(yīng)的修改時(shí)間的先后順序,將 所述修改位置對應(yīng)的代碼合并到所述待合并的代碼文件中,獲得更新后的代碼文件。
[0044] 本實(shí)施例中的方法,可以根據(jù)用戶要求,接收多份新修改的代碼文件,同時(shí)將多份 新修改的代碼文件合并至同一份待合并的代碼文件中;具體的,每份新修改的代碼文件記 錄對應(yīng)的版本號,每個版本號的排列順序代表該文件的修改順序;用戶可提交多份新修改 的代碼文件后再執(zhí)行合并,獲取用戶指定開始合并的版本號及結(jié)束合并的版本號,查找從 開始合并的版本號到結(jié)束合并的版本號之間對應(yīng)的多份新修改的代碼文件,根據(jù)所述版本 號的排列順序,按照所述修改位置對應(yīng)的修改時(shí)間的先后順序,將所述修改位置對應(yīng)的代 碼合并到所述待合并的代碼文件中,獲得更新后的代碼文件;本實(shí)施例方法能實(shí)現(xiàn)批量獲 取多份新修改的代碼文件,并同時(shí)將多份新修改的代碼文件進(jìn)行合并,顯著地提高文件合 并的效率。
[0045] 如圖2所示,示出了獲取開始合并的版本號及結(jié)束合并的版本號的示意圖;本實(shí) 施方式中,可通過生成可視化界面,在該可視化界面中包括域名框、分支框、開始版本框、結(jié) 束版本框,域名與分支為待合并的代碼文件的路徑,可通過域名框和分支框選擇需要合并 的代碼文件,開始版本號和結(jié)束版本號可在新修改的代碼文件提交后輸入,將人工操作以 可視化實(shí)現(xiàn),在后臺,可通過命令腳本執(zhí)行上述的合并過程,準(zhǔn)確性更高,節(jié)省人力成本。
[0046] 本實(shí)施例的代碼自動合并方法,可適用于window版本的代碼合并,也可適用于 WEB版本的代碼合并;
[0047] Windows版本結(jié)構(gòu)和示例:通過自動化的檢查流程,進(jìn)行同步工作,導(dǎo)出日志。
[0048]
【權(quán)利要求】
1. 一種代碼自動合并方法,其特征在于,包括如下步驟: 接收新修改的代碼文件;其中,所述新修改的代碼文件中記錄有代碼的修改位置、修改 時(shí)間和合并路徑; 根據(jù)所述合并路徑查找待合并的代碼文件; 按照所述修改位置對應(yīng)的修改時(shí)間的先后順序,將所述修改位置對應(yīng)的代碼合并到所 述待合并的代碼文件中,獲得更新后的代碼文件。
2. 根據(jù)權(quán)利要求1所述的代碼自動合并方法,其特征在于,所述修改位置為所述新修 改的代碼文件中修改行的行號; 所述將所述修改位置對應(yīng)的代碼合并到所述待合并的代碼文件中的步驟包括: 將所述新修改的代碼文件中所述行號對應(yīng)的代碼,與所述待合并的代碼文件中所述行 號對應(yīng)的代碼進(jìn)行對比; 若兩者不同,則將所述新修改的代碼文件中所述行號對應(yīng)的代碼覆蓋掉所述待合并的 代碼文件中所述行號對應(yīng)的代碼。
3. 根據(jù)權(quán)利要求1或2所述的代碼自動合并方法,其特征在于,所述接收提交的新修改 的代碼文件的步驟包括: 從Subversion版本控制系統(tǒng)接收所述新修改的代碼文件,通過所述Subversion版本 控制系統(tǒng)獲得所述修改位置和修改時(shí)間,并將所述修改位置和修改時(shí)間添加到所述新修改 的代碼文件中。
4. 根據(jù)權(quán)利要求3所述的代碼自動合并方法,其特征在于,所述新修改的代碼文件中 還記錄有版本號;所述方法還包括步驟: 獲取開始合并的版本號及結(jié)束合并的版本號; 在接收的新修改的代碼文件中查找從所述開始合并的版本號到結(jié)束合并的版本號之 間對應(yīng)的所有新修改的代碼文件; 根據(jù)所述版本號的排列順序,按照所述修改位置對應(yīng)的修改時(shí)間的先后順序,將所述 修改位置對應(yīng)的代碼合并到所述待合并的代碼文件中,獲得更新后的代碼文件。
5. -種代碼自動合并系統(tǒng),其特征在于,包括: 接收模塊,用于接收新修改的代碼文件;其中,所述新修改的代碼文件中記錄有代碼的 修改位置、修改時(shí)間和合并路徑; 第一查找模塊,用于根據(jù)所述合并路徑查找待合并的代碼文件; 第一合并模塊,用于按照所述修改位置對應(yīng)的修改時(shí)間的先后順序,將所述修改位置 對應(yīng)的代碼合并到所述待合并的代碼文件中,獲得更新后的代碼文件。
6. 根據(jù)權(quán)利要求5所述的代碼自動合并系統(tǒng),其特征在于,所述修改位置為所述新修 改的代碼文件的修改行的行號; 所述第一合并模塊包括: 對比模塊,用于將所述新修改的代碼文件中所述行號對應(yīng)的代碼,與所述待合并的代 碼文件中所述行號對應(yīng)的代碼進(jìn)行對比; 覆蓋模塊,用于當(dāng)所述對比模塊判斷兩者不同時(shí),將所述新修改的代碼文件中所述行 號對應(yīng)的代碼覆蓋掉所述待合并的代碼文件中所述行號對應(yīng)的代碼。
7. 根據(jù)權(quán)利要求5或6所述的代碼自動合并系統(tǒng),其特征在于,所述接收模塊還用于: 從Subversion版本控制系統(tǒng)接收所述新修改的代碼文件,通過所述Subversion版本控制 系統(tǒng)獲得所述修改位置和修改時(shí)間,并將所述修改位置和修改時(shí)間添加到所述新修改的代 碼文件中。
8.根據(jù)權(quán)利要求7所述的代碼自動合并系統(tǒng),其特征在于,所述新修改的代碼文件中 還記錄有版本號;所述系統(tǒng)還包括: 獲取模塊,用于獲取開始合并的版本號及結(jié)束合并的版本號; 第二查找模塊,用于在接收的新修改的代碼文件中查找從所述開始合并的版本號到結(jié) 束合并的版本號之間對應(yīng)的所有新修改的代碼文件; 第二合并模塊,用于根據(jù)所述版本號的排列順序,按照所述修改位置對應(yīng)的修改時(shí)間 的先后順序,將所述修改位置對應(yīng)的代碼合并到所述待合并的代碼文件中,獲得更新后的 代碼文件。
【文檔編號】G06F17/30GK104461578SQ201410837536
【公開日】2015年3月25日 申請日期:2014年12月26日 優(yōu)先權(quán)日:2014年12月26日
【發(fā)明者】蘇青章, 陳武鋒 申請人:廣州唯品會信息科技有限公司