两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種代碼歸并方法和設(shè)備的制作方法

文檔序號:6431839閱讀:153來源:國知局
專利名稱:一種代碼歸并方法和設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及軟件開發(fā)領(lǐng)域,尤其涉及一種代碼歸并方法和設(shè)備。
背景技術(shù)
在大規(guī)模的軟件開發(fā)項目中,代碼文件一般都存在多個版本分支。在某一分支上因解決BUG (漏洞)或增加新特性而修改的代碼,需要在某個時刻歸并到其他分支上。代碼歸并雖然只是一些簡單、重復(fù)的操作,但在版本分支多、版本升級頻繁的情況下仍然會耗用程序員的大量時間,造成人力成本高、工作效率低、容易出錯等后果?,F(xiàn)有代碼歸并方式主要包括以下幾種
(1)利用代碼比對工具進行手動歸并。程序員使用代碼比對工具(如Beyond Compare) 對比查看歸并的源文件(以下簡稱源文件)和歸并的目標文件(以下簡稱目標文件),找到代碼的修改處,手動將修改的代碼由源文件歸并到目標文件。(2)使用軟件配置管理工具自帶的代碼歸并功能,如ClearCase工具中的Merge (歸并)功能,將修改的代碼由源文件歸并到目標文件。(3)使用專用的文件比較合并工具,如Araxis Merge Professional等,將修改的代碼由源文件歸并到目標文件。發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下缺陷
(1)使用代碼比對工具進行手動歸并的方法中,由于這種歸并方式需要程序員手動完成,工作效率較低,且由于代碼歸并由人工完成,代碼歸并的正確性難以保證,尤其是在修改較多的情況下,漏歸并、錯歸并的現(xiàn)象難以避免。(2)使用軟件配置管理工具自帶的代碼歸并功能進行歸并的方法中,源文件中所有的代碼修改都將被歸并到目標文件,而實際中存在只歸并部分修改的需求,即該方法靈活性較差;此外,使用該方法,一次只能歸并一個文件;而一個BUG或新特性可能涉及到數(shù)十個文件的修改,逐個歸并既不方便,效率也低。(3)使用專用的文件比較合并工具進行歸并的方法中,無法進行有選擇的代碼歸并,靈活性較差;此外,由于此類工具仍然將源文件中所有的代碼修改都將被歸并到目標文件,可能導(dǎo)致目標文件中的部分代碼被誤修改。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種代碼歸并方法和設(shè)備,用以提高代碼歸并的效率和靈活性,并降低誤歸并的概率,為此,本發(fā)明實施例采用如下技術(shù)方案
一種代碼歸并方法,應(yīng)用于根據(jù)源代碼文件對目標代碼文件進行代碼歸并的過程,該方法包括以下步驟
根據(jù)代碼段發(fā)生改變的情況,使用包含有對應(yīng)屬性信息的歸并標記對源代碼文件中的代碼段進行標識;
當進行代碼歸并時,根據(jù)歸并條件中包含的屬性值從所述源代碼文件中查詢對應(yīng)的歸并標記,讀取查詢到的歸并標記所標識的代碼段,根據(jù)查詢到的歸并標記以及讀取的代碼段,對目標代碼文件進行歸并。本發(fā)明實施例還提供一種代碼歸并設(shè)備,應(yīng)用于根據(jù)源代碼文件對目標代碼文件進行代碼歸并的過程,所述源代碼文件中包含有對該文件中的代碼段進行標識的歸并標記,所述歸并標記包含有對應(yīng)于所述代碼段發(fā)生改變的情況的屬性信息,該設(shè)備包括
接收模塊,用于接收歸并條件;
查詢模塊,用于當進行代碼歸并時,根據(jù)歸并條件中包含的屬性值從所述源代碼文件中查詢對應(yīng)的歸并標記,并讀取查詢到的歸并標記所標識的代碼段;
歸并模塊,用于根據(jù)查詢到的歸并標記以及讀取的代碼段,對目標代碼文件進行歸并。與現(xiàn)有技術(shù)相比,本發(fā)明至少具有以下優(yōu)點
本發(fā)明的上述實施例,通過根據(jù)代碼段發(fā)生改變的情況,使用包含有對應(yīng)屬性信息的歸并標記對源代碼文件中的代碼段進行標識,當進行代碼歸并時,根據(jù)歸并條件中包含的屬性值從源代碼文件中查詢對應(yīng)的歸并標記,讀取查詢到的歸并標記所標識的代碼段,根據(jù)查詢到的歸并標記以及讀取的代碼段,對目標代碼文件進行歸并,提高了代碼歸并的效率和靈活性,并降低了誤歸并的概率。


圖1為本發(fā)明實施例提供的代碼歸并方法流程示意圖; 圖2為本發(fā)明另一實施例提供的代碼歸并方法流程示意圖; 圖3為本發(fā)明實施例提供的代碼歸并設(shè)備的結(jié)構(gòu)示意圖。
具體實施例方式針對現(xiàn)有代碼歸并方法中存在的缺陷,本發(fā)明實施例提供了一種代碼歸并的技術(shù)方案,根據(jù)代碼段發(fā)生改變的情況,使用包含有對應(yīng)屬性信息的歸并標記對源代碼文件中的代碼段進行標識,當需要進行代碼歸并時,根據(jù)歸并條件中包含的屬性值從源代碼文件中查詢對應(yīng)的歸并標記,讀取查詢到的歸并標記所標識的代碼段,根據(jù)查詢到的歸并標記以及讀取的代碼段,對目標代碼文件進行歸并,從而提高代碼歸并的效率和靈活性,降低誤歸并的概率。為了使本領(lǐng)域技術(shù)人員更清楚地理解本發(fā)明實施例提供的技術(shù)方案,下面首先對本發(fā)明實施例提供的技術(shù)方案中的歸并標記的概念及使用方法進行描述。在本發(fā)明實施例提供的技術(shù)方案中,歸并標記是添加在源文件中的一種特殊的、 規(guī)范化的代碼注釋語句,用于指示待歸并的代碼在源代碼文件(以下簡稱源文件)中的位置、歸并的類型以及歸并的原因等;該歸并標記主要可以包括以下屬性信息中的一個或多個
(1)歸并標識屬性信息(以下簡稱歸并標識)
歸并標識用一種自定義的字符串(如“#MERGE”)表示,用于標明對應(yīng)的代碼注釋為歸并標記,即將歸并標記和普通的代碼注釋區(qū)分開。(2)歸并類型屬性信息(以下簡稱歸并類型)
歸并類型也可以用自定義的字符串表示,用于標明發(fā)生改變的代碼文件中相應(yīng)的代碼段發(fā)生改變的類型。歸并類型屬性值可以根據(jù)代碼文件中相應(yīng)的代碼發(fā)生的改變分為代碼增加、代碼刪除和代碼修改等。例如,代碼增加可以用字符串“ADD”表示,代碼刪除和代碼修改可以分別用字符串“DELETE”和“MODIFY”表示。進行代碼歸并時,不同的歸并類型對應(yīng)的歸并操作不相同。(3)歸并原因?qū)傩孕畔?以下簡稱歸并原因)
歸并原因用于標明發(fā)生改變的代碼文件中相應(yīng)的代碼段發(fā)生改變的原因,如為了修復(fù) BUG或增加新特性而改變對應(yīng)的代碼段。一般歸并原因可以用BUG或新特性的編號表示,相應(yīng)的歸并原因?qū)傩灾禐锽UG或新特性的編號值。需要注意的是,本發(fā)明實施例提供的技術(shù)方案中,歸并標記除了包括上述3個要素,還可以包括其他擴展字段。例如,歸并標記中還可以包括用于標明發(fā)生改變的代碼文件中相應(yīng)的代碼段發(fā)生改變的時間的字段。歸并標記作為特殊的代碼注釋,被添加在因BUG或新特性而發(fā)生改變的代碼段前后。由于修復(fù)BUG或增加新特性時,可能涉及到多個代碼文件的代碼改變,而每個代碼文件中又可能涉及多處改變。因此,在本發(fā)明實施例提供的技術(shù)方案中,把代碼改變比較集中且連續(xù)的代碼段作為歸并的基本單位——歸并代碼段,歸并代碼段的前一行和后一行分別添加一條歸并標記,即歸并標記總是成對出現(xiàn)。前后兩條歸并標記有所不同,可以通過歸并標識進行區(qū)分。例如,可以使用自定義的字符串“#MERGE START”和“#MERGE END”分別作為歸并代碼段前后的兩條歸并標記中的歸并標識。對于一個歸并代碼段,若此段代碼完全是新增加的,則歸并標記中的歸并類型屬性值置為代碼增加(可以用字段“ADD”表示);若此段代碼需要刪除,則歸并標記中的歸并類型屬性值則置成代碼刪除(可以用字段“DELETE”表示);若此段代碼是在原有代碼的基礎(chǔ)上做了一些修改,則歸并標識中的歸并類型屬性值置為代碼修改(可以用字段“MODIFY”)。其中,歸并標記是在修復(fù)BUG或增加新特性的編碼過程中添加的,而不是等到需要歸并的時候才臨時添加,且歸并標記中需要包含歸并原因(修復(fù)BUG或增加新特性)。此外,在添加歸并標記時,需要保證與某個BUG修改或增加的新特性相關(guān)的所有代碼都包含在歸并代碼段中,以防止代碼漏歸并的發(fā)生。需要注意的是,在本發(fā)明實施例提供的技術(shù)方案中,當一段代碼需要刪除時,并不直接將該段代碼從代碼文件中刪除,而是在該段代碼的前后分別添加刪除字段(即用于標明該段代碼被刪除)。例如,對于C/C++中的代碼文件,當某段代碼需要刪除時,可以在該段代碼前添加“ # if 0”,并在該段代碼后添加“# endif·”,以將該段代碼注釋化(在運行相應(yīng)的代碼文件時,該段代碼作為代碼注釋而存在),并分別在“ # if 0”前后和“# endif”前后添加相應(yīng)的歸并標記(歸并類型為代碼刪除)。當進行代碼歸并時,將“# if 0,,、“# endif” 及相應(yīng)的歸并標記插入到目標代碼文件(以下簡稱目標文件)的相應(yīng)位置。下面將結(jié)合本申請的實施例中的附圖,對本申請的實施例提供的技術(shù)方案中的代碼歸并方法進行清楚、完整地描述,顯然,下面所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領(lǐng)域普通技術(shù)人員所獲得的其他實施例,都屬于本申請的實施例保護的范圍。如圖1所示,為本發(fā)明實施例提供的代碼歸并方法流程示意圖,該方法中代碼文件中設(shè)置有上述歸并標記,該方法可以包括以下步驟步驟101、讀取待歸并的源文件和目標文件。具體的,在本發(fā)明實施例提供的技術(shù)方案中,代碼歸并設(shè)備的顯示界面可以以命令行界面或圖形化界面的形式向用戶展示。當需要進行代碼歸并時,用戶可以輸入(命令行界面)或選擇(圖形化界面)源文件和目標文件。代碼歸并設(shè)備可以按行讀取源文件和目標文件至內(nèi)存中。其中,代碼歸并設(shè)備可以逐行讀取源文件和目標文件中的代碼行(包括注釋行、空行),將其內(nèi)容和屬性存放于結(jié)構(gòu)變量中。每一行為一個節(jié)點,插入到鏈表之中。行屬性包括行號、行類型(代碼行、注釋行、歸并行等)等。步驟102、根據(jù)歸并條件中包含的屬性值從所述源代碼文件中查詢對應(yīng)的歸并標記,讀取查詢到的歸并標記所標識的代碼段。具體的,代碼歸并設(shè)備將源文件和目標文件讀取到內(nèi)存中后,接收用戶提交的歸并條件,即用戶想要針對哪些類型的改變進行代碼歸并或針對哪些BUG和/或新特性進行代碼歸并,該歸并條件可以是用戶想要歸并的代碼段對應(yīng)歸并類型屬性值,和/或用戶想要歸并的代碼段對應(yīng)的BUG和/或新特性的編號值。代碼歸并設(shè)備獲取到歸并條件后,可以根據(jù)該歸并條件中包含的屬性值從源文件中查詢對應(yīng)的歸并標記,并讀取該歸并標記對應(yīng)的代碼段(源代碼段)。其中,可以預(yù)先設(shè)定一個特殊的屬性值,用于指示對源文件中的所有歸并代碼段進行歸并。步驟103、根據(jù)查詢到的歸并標記以及讀取的代碼段,對目標代碼文件進行歸并。具體的,當查詢到相應(yīng)的歸并標記,并讀取到對應(yīng)的代碼段后,代碼歸并設(shè)備根據(jù)查詢到的歸并標記以及讀取的代碼段,對目標代碼文件進行歸并。其中,當歸并標記中的歸并類型屬性值為代碼增加時,代碼歸并設(shè)備根據(jù)源代碼段的之前和/或之后的代碼在目標文件中查找匹配位置,并將源代碼段及歸并標記插入到該匹配位置;
當歸并標記中的歸并類型屬性值為代碼刪除時,根據(jù)源代碼段在目標文件中查找對應(yīng)的目標代碼段,并在該目標代碼段之前和之后分別插入相應(yīng)的刪除字段(如“# if 0”和“# endif ”)及歸并標記;
當歸并標記中的歸并類型屬性值為代碼修改時,根據(jù)源代碼段之前和/或之后的代碼在目標文件中查找對應(yīng)的目標代碼段,并用源代碼段及歸并標記在目標代碼文件中替換該目標代碼段。其中,代碼歸并設(shè)備查詢到對應(yīng)的歸并代碼段后,在進行歸并之前,還可以先判斷該歸并代碼段是否已經(jīng)歸并,即判斷目標文件中是否存在與該歸并代碼段完全相同的代碼段(包括歸并標記)。若判斷為是,則確定該歸并代碼段已經(jīng)歸并,并對其他歸并代碼段進行判斷;否則,確定該歸并代碼段未進行歸并,根據(jù)該歸并代碼段及對應(yīng)的歸并標記,對目標代碼文件進行歸并。當代碼歸并設(shè)備在目標文件中找不到進行歸并的匹配位置時,則可以以歸并日志的形式打印歸并失敗信息,以供用戶分析失敗原因,并進行相應(yīng)的操作。為了避免因發(fā)生歸并錯誤而導(dǎo)致不能返回到歸并前狀態(tài)的狀況的發(fā)生,在代碼歸并過程中,在輸出歸并后的目標文件的同時,還可以保存一份歸并前的目標文件。其中,當歸并標記中還包括代碼文件中相應(yīng)代碼段發(fā)生改變的時間時,歸并條件中還可以包括發(fā)生改變的時間,即指示對特定時間發(fā)生改變的代碼段進行歸并。
需要注意的是,在本發(fā)明實施例提供的技術(shù)方案中,進行歸并的源文件和目標文件可以是一個或多個,即本發(fā)明實施例提供的技術(shù)方案支持多文件歸并。其中,待歸并的源文件和目標文件一一對應(yīng)(如具有相同的文件名)。當對多個文件進行歸并時(如按文件夾的形式進行歸并),輪詢源文件夾和目標文件夾中的文件,并將源文件夾中某一文件的代碼自動歸并到目標文件夾中的對應(yīng)目標文件(如同名文件)中。下面結(jié)合具體的應(yīng)用場景,對本發(fā)明實施例提供的代碼歸并的技術(shù)方案進行更加詳細的描述。如圖2所示,為本發(fā)明另一實施例提供的代碼歸并方法流程示意圖,該實施例中, 代碼文件A具有兩個不同的版本Al和A2,代碼文件Al中因BUGl和BUG2進行了相應(yīng)代碼段的改變,代碼文件A2中因BUG3和BUG4進行相應(yīng)的代碼段的改變,用戶需要將代碼文件 Al (源文件)中針對BUGl和BUG2的歸并代碼段歸并到代碼文件A2 (目標文件)中,且保證 A2中保存有因BUG1、BUG2、BUG3以及BUG4而作的代碼改變,其中,BUG1、BUG2、BUG3以及 BUG4的編號分別為B1、B2、B3以及B4,針對BUGl的歸并類型屬性值為代碼增加,針對BUG2 的歸并類型屬性值為代碼刪除,該方法可以包括以下步驟
步驟201、按行讀取代碼文件Al和A2至內(nèi)存。步驟202、獲取用戶的歸并條件。具體的,代碼歸并設(shè)備獲取用戶輸入的需要歸并的BUG的編號,即Bl和B2。步驟203、選擇一個歸并條件,并根據(jù)選擇的歸并條件中包含的屬性值(Bi或B2) 在代碼文件Al中查詢對應(yīng)的歸并標記,并確定對應(yīng)的歸并代碼段。具體的,代碼歸并設(shè)備在代碼文件Al中查找包含Bl或B2的歸并標記,并確定對應(yīng)的歸并代碼段。其中,由于Bl對應(yīng)的歸并類型屬性值為代碼增加,因此需要進行的歸并的為包含Bl的歸并標記之間的代碼段;而B2對應(yīng)的歸并類型屬性值為代碼刪除,因此,需要進行的為包含B2的歸并標記之間的刪除字段(如“# if 0”和“#endif”),并確定該刪除字段之間的代碼段位需要刪除的代碼段。步驟204、判斷相應(yīng)的歸并代碼段是否已歸并。若判斷為是,則轉(zhuǎn)至步驟203 ;否則,轉(zhuǎn)至步驟205。具體的,判斷目標文件(代碼文件A2)中是否存在對應(yīng)Bl或B2的歸并代碼段以及歸并標記。當代碼文件A2中存在與對應(yīng)Bl的歸并代碼段相同的代碼段以及相應(yīng)的歸并標記時,代碼歸并設(shè)備確定對應(yīng)Bl的歸并代碼段已歸并;否則,確定對應(yīng)Bl的歸并代碼段未歸并。步驟205、根據(jù)歸并代碼段和/或該歸并代碼段之前和/或之后的代碼在目標文件中查找匹配位置。具體的,對于對應(yīng)于Bl的歸并,代碼歸并設(shè)備根據(jù)歸并代碼段之前和/或之后的代碼在代碼文件A2中查找匹配位置,即查找到與該歸并代碼段之前和/或之后的代碼相同的代碼,確定相應(yīng)的匹配位置;對于對應(yīng)于B2的歸并,代碼設(shè)備根據(jù)歸并代碼段在代碼文件A2中查找匹配位置,即查找到與該歸并代碼段相同的代碼段,確定相應(yīng)的匹配位置。其中,當在代碼文件A2中未查找到匹配位置時,打印歸并失敗信息。步驟206、進行代碼歸并,并判斷是否還存在未選擇的歸并條件。若判斷未是,則轉(zhuǎn)至步驟203 ;否則,轉(zhuǎn)至步驟207。
具體的,對于對應(yīng)于Bl的歸并,代碼歸并設(shè)備將歸并代碼段及相應(yīng)的歸并標記插入到代碼文件A2中相應(yīng)的匹配位置;對于對應(yīng)于B2的歸并,分別將刪除字段及相應(yīng)的歸并標記插入到代碼文件A2中相應(yīng)的代碼段之前和之后。步驟207、輸出歸并后的代碼文件A2。具體的,歸并后的代碼文件A2即為保存有因BUG1、BUG2、BUG3以及BUG4而作的代碼改變的代碼文件?;谏鲜龃a歸并方法相同的發(fā)明構(gòu)思,本發(fā)明實施例還提供了一種代碼歸并設(shè)備,應(yīng)用于根據(jù)源代碼文件對目標代碼文件進行代碼歸并的過程,所述源代碼文件中包含有對該文件中的代碼段進行標識的歸并標記,所述歸并標記包含有對應(yīng)于所述代碼段發(fā)生改變的情況的屬性信息。如圖3所示,為本發(fā)明實施例提供的代碼歸并設(shè)備的結(jié)構(gòu)示意圖,可以包括 接收模塊31,用于接收歸并條件;
查詢模塊32,用于當進行代碼歸并時,根據(jù)歸并條件中包含的屬性值從所述源代碼文件中查詢對應(yīng)的歸并標記,并讀取查詢到的歸并標記所標識的代碼段;
歸并模塊33,用于根據(jù)查詢到的歸并標記以及讀取的代碼段,對目標代碼文件進行歸并。其中,所述屬性信息中包含歸并類型屬性信息,所述歸并條件包括歸并類型屬性值。其中,所述屬性信息中還包括歸并原因?qū)傩孕畔?,所述歸并原因?qū)傩孕畔槁┒?BUG編號,用于表示歸并原因為修改對應(yīng)編號的BUG,或者所述歸并原因?qū)傩孕畔樾绿匦跃幪枺糜诒硎練w并原因為增加對應(yīng)編號的新特性;所述歸并條件還包括BUG或新特性編號值。其中,所述屬性信息還包括用于標明代碼段發(fā)生改變的時間信息;所述歸并條件還包括代碼段發(fā)生改變的時間。其中,所述歸并類型屬性值包括代碼增加、代碼刪除或代碼修改;
歸并模塊33具體用于,所述歸并類型屬性值為代碼增加,根據(jù)讀取的代碼段的之前和 /或之后的代碼在目標代碼文件中查找匹配位置,并將讀取的代碼段及歸并標記插入到所述匹配位置;或,
所述歸并類型屬性值為代碼刪除,根據(jù)讀取的代碼段在目標代碼文件中查找對應(yīng)的目標代碼段,并在所述目標代碼段之前和之后分別插入相應(yīng)的刪除字段及歸并標記;或,
所述歸并類型屬性值為代碼修改,根據(jù)讀取的代碼段之前和/或之后的代碼在目標文件中查找對應(yīng)的目標代碼段,并用讀取的代碼段及歸并標記在所述目標代碼文件中替換所述目標代碼段。其中,歸并模塊33具體用于,根據(jù)查詢到的歸并標記以及讀取的代碼段判斷目標代碼文件中是否存在相同的歸并標記和代碼段,并當目標代碼文件中不存在相同的歸并標記和代碼段時,將該讀取的代碼段歸并到目標代碼文件中。其中,所述歸并標記為成對出現(xiàn)的注釋語句,分別位于對應(yīng)的代碼段之前和之后。其中,所述源代碼文件和目標代碼文件的數(shù)量為一個或多個,且所述源代碼文件和目標代碼文件一一對應(yīng);當所述源代碼文件為多個時,查詢模塊32具體用于,輪詢所述源代碼文件,并根據(jù)歸并條件中包含的屬性值從所述源代碼文件查詢對應(yīng)的歸并標記;
歸并模塊33具體用于,根據(jù)查詢到的歸并標記以及讀取的代碼段,分別對對應(yīng)的目標代碼文件進行歸并。本領(lǐng)域技術(shù)人員可以理解,本裝置實施例中的模塊可以按照實施例描述分布于實施例的裝置中,也可以進行相應(yīng)變化而位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機,個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視本發(fā)明的保護范圍。
權(quán)利要求
1.一種代碼歸并方法,應(yīng)用于根據(jù)源代碼文件對目標代碼文件進行代碼歸并的過程, 其特征在于,該方法包括以下步驟根據(jù)代碼段發(fā)生改變的情況,使用包含有對應(yīng)屬性信息的歸并標記對源代碼文件中的代碼段進行標識;當進行代碼歸并時,根據(jù)歸并條件中包含的屬性值從所述源代碼文件中查詢對應(yīng)的歸并標記,讀取查詢到的歸并標記所標識的代碼段,根據(jù)查詢到的歸并標記以及讀取的代碼段,對目標代碼文件進行歸并。
2.如權(quán)利要求1所述的方法,其特征在于,所述屬性信息中包含歸并類型屬性信息,所述歸并條件包括歸并類型屬性值。
3.如權(quán)利要求2所述的方法,其特征在于,所述屬性信息中還包括歸并原因?qū)傩孕畔ⅲ?所述歸并原因?qū)傩孕畔槁┒碆UG編號,用于表示歸并原因為修復(fù)對應(yīng)編號的BUG,或者所述歸并原因?qū)傩孕畔樾绿匦跃幪?,用于表示歸并原因為增加對應(yīng)編號的新特性;所述歸并條件還包括BUG或新特性編號值。
4.如權(quán)利要求2所述的方法,其特征在于,所述屬性信息還包括用于標明代碼段發(fā)生改變的時間信息;所述歸并條件還包括代碼段發(fā)生改變的時間。
5.如權(quán)利要求2所述的方法,其特征在于,所述歸并類型屬性值包括代碼增加、代碼刪除或代碼修改;所述根據(jù)查詢到的歸并標記以及讀取的代碼段,對目標代碼文件進行歸并,具體為所述歸并類型屬性值為代碼增加,根據(jù)讀取的代碼段的之前和/或之后的代碼在目標代碼文件中查找匹配位置,并將讀取的代碼段及歸并標記插入到所述匹配位置;或,所述歸并類型屬性值為代碼刪除,根據(jù)讀取的代碼段在目標代碼文件中查找對應(yīng)的目標代碼段,并在所述目標代碼段之前和之后分別插入相應(yīng)的刪除字段及歸并標記;或,所述歸并類型屬性值為代碼修改,根據(jù)讀取的代碼段之前和/或之后的代碼在目標文件中查找對應(yīng)的目標代碼段,并用讀取的代碼段及歸并標記在所述目標代碼文件中替換所述目標代碼段。
6.如權(quán)利要求1-5任一項所述的方法,其特征在于,根據(jù)查詢到的歸并標記以及讀取的代碼段,對目標代碼文件進行歸并,具體為根據(jù)查詢到的歸并標記以及讀取的代碼段判斷目標代碼文件中是否存在相同的歸并標記和代碼段,并當目標代碼文件中不存在相同的歸并標記和代碼段時,將該讀取的代碼段歸并到目標代碼文件中。
7.如權(quán)利要求1-5任一項所述的方法,其特征在于,所述歸并標記為成對出現(xiàn)的代碼注釋語句,分別位于對應(yīng)的代碼段之前和之后。
8.如權(quán)利要求1-5任一項所述的方法,其特征在于,所述源代碼文件和目標代碼文件的數(shù)量為一個或多個,且所述源代碼文件和目標代碼文件一一對應(yīng);當所述源代碼文件和目標代碼文件的數(shù)量為多個時,所述根據(jù)歸并條件中包含的屬性值從所述源代碼文件中查詢對應(yīng)的歸并標記,具體為輪詢所述源代碼文件,并根據(jù)歸并條件中包含的屬性值從所述源代碼文件查詢對應(yīng)的歸并標記;所述根據(jù)查詢到的歸并標記以及讀取的代碼段,對目標代碼文件進行歸并,具體為根據(jù)查詢到的歸并標記以及讀取的代碼段,分別對對應(yīng)的目標代碼文件進行歸并。
9.一種代碼歸并設(shè)備,應(yīng)用于根據(jù)源代碼文件對目標代碼文件進行代碼歸并的過程, 其特征在于,所述源代碼文件中包含有對該文件中的代碼段進行標識的歸并標記,所述歸并標記包含有對應(yīng)于所述代碼段發(fā)生改變的情況的屬性信息,該設(shè)備包括接收模塊,用于接收歸并條件;查詢模塊,用于當進行代碼歸并時,根據(jù)歸并條件中包含的屬性值從所述源代碼文件中查詢對應(yīng)的歸并標記,并讀取查詢到的歸并標記所標識的代碼段;歸并模塊,用于根據(jù)查詢到的歸并標記以及讀取的代碼段,對目標代碼文件進行歸并。
10.如權(quán)利要求9所述的設(shè)備,其特征在于,所述屬性信息中包含歸并類型屬性信息, 所述歸并條件包括歸并類型屬性值。
11.如權(quán)利要求10所述的設(shè)備,其特征在于,所述屬性信息中還包括歸并原因?qū)傩孕畔?,所述歸并原因?qū)傩孕畔槁┒碆UG編號,用于表示歸并原因為修復(fù)對應(yīng)編號的BUG,或者所述歸并原因?qū)傩孕畔樾绿匦跃幪枺糜诒硎練w并原因為增加對應(yīng)編號的新特性;所述歸并條件還包括BUG或新特性編號值。
12.如權(quán)利要求10所述的設(shè)備,其特征在于,所述屬性信息還包括用于標明代碼段發(fā)生改變的時間信息;所述歸并條件還包括代碼段發(fā)生改變的時間。
13.如權(quán)利要求10所述的設(shè)備,其特征在于,所述歸并類型屬性值包括代碼增加、代碼刪除或代碼修改;所述歸并模塊具體用于,所述歸并類型屬性值為代碼增加,根據(jù)讀取的代碼段的之前和/或之后的代碼在目標代碼文件中查找匹配位置,并將讀取的代碼段及歸并標記插入到所述匹配位置;或,所述歸并類型屬性值為代碼刪除,根據(jù)讀取的代碼段在目標代碼文件中查找對應(yīng)的目標代碼段,并在所述目標代碼段之前和之后分別插入相應(yīng)的刪除字段及歸并標記;或,所述歸并類型屬性值為代碼修改,根據(jù)讀取的代碼段之前和/或之后的代碼在目標文件中查找對應(yīng)的目標代碼段,并用讀取的代碼段及歸并標記在所述目標代碼文件中替換所述目標代碼段。
14.如權(quán)利要求9-13任一項所述的設(shè)備,其特征在于,所述歸并模塊具體用于,根據(jù)查詢到的歸并標記以及讀取的代碼段判斷目標代碼文件中是否存在相同的歸并標記和代碼段,并當目標代碼文件中不存在相同的歸并標記和代碼段時,將該讀取的代碼段歸并到目標代碼文件中。
15.如權(quán)利要求9-13任一項所述的設(shè)備,其特征在于,所述歸并標記為成對出現(xiàn)的代碼注釋語句,分別位于對應(yīng)的代碼段之前和之后。
16.如權(quán)利要求9-13任一項所述的設(shè)備,其特征在于,所述源代碼文件和目標代碼文件的數(shù)量為一個或多個,且所述源代碼文件和目標代碼文件一一對應(yīng);當所述源代碼文件為多個時,所述查詢模塊具體用于,輪詢所述源代碼文件,并根據(jù)歸并條件中包含的屬性值從所述源代碼文件查詢對應(yīng)的歸并標記;所述歸并模塊具體用于,根據(jù)查詢到的歸并標記以及讀取的代碼段,分別對對應(yīng)的目標代碼文件進行歸并。
全文摘要
本發(fā)明公開了一種代碼歸并方法和設(shè)備,應(yīng)用于根據(jù)源代碼文件對目標代碼文件進行代碼歸并的過程,該方法包括以下步驟根據(jù)代碼段發(fā)生改變的情況,使用包含有對應(yīng)屬性信息的歸并標記對源代碼文件中的代碼段進行標識;當進行代碼歸并時,根據(jù)歸并條件中包含的屬性值從所述源代碼文件中查詢對應(yīng)的歸并標記,讀取查詢到的歸并標記所標識的代碼段,根據(jù)查詢到的歸并標記以及讀取的代碼段,對目標代碼文件進行歸并。在本發(fā)明中,提高了代碼歸并的效率和靈活性,并降低了誤歸并的概率。
文檔編號G06F9/44GK102279749SQ20111025157
公開日2011年12月14日 申請日期2011年8月30日 優(yōu)先權(quán)日2011年8月30日
發(fā)明者劉彬, 王婷, 米燈 申請人:大唐移動通信設(shè)備有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
嘉禾县| 梓潼县| 新昌县| 阜平县| 广安市| 天长市| 文水县| 寿宁县| 深泽县| 台前县| 河源市| 新昌县| 莱州市| 宁津县| 龙里县| 务川| 河北区| 垫江县| 托克托县| 屯留县| 井冈山市| 崇仁县| 阿荣旗| 尤溪县| 丹凤县| 开江县| 上思县| 自治县| 望都县| 天津市| 西乡县| 和平区| 娄烦县| 新宾| 噶尔县| 黄陵县| 小金县| 江华| 新疆| 江津市| SHOW|