專利名稱:用以管理版本控制系統(tǒng)的檔案的方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于一種數(shù)據(jù)管理系統(tǒng),尤指應(yīng)用于版本控制的數(shù)據(jù)管理系統(tǒng),特別是有關(guān)于一種用以管理版本控制系統(tǒng)的檔案的方法。
背景技術(shù):
對(duì)許多軟硬件開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō),版本控制系統(tǒng)(version control system)是一種功能強(qiáng)大的必要工具。版本控制系統(tǒng)的基本概念是將所有的改版記錄儲(chǔ)存于中央服務(wù)器中,各工程師的工作區(qū)域(workspace)中則分別儲(chǔ)存有正在被該工程師修改的副本。版本控制系統(tǒng)允許多位工程師同時(shí)修改同一個(gè)檔案,并可避免各版本發(fā)生沖突。利用網(wǎng)際網(wǎng)絡(luò)和版本控制系統(tǒng),分散在全世界各地的工程師即可方便地成為工作團(tuán)隊(duì)并共同合作。目前最普遍的版本控制系統(tǒng)為共享版本系統(tǒng)(concurrent versions system,CVS)。
一般而言,程序設(shè)計(jì)師寫(xiě)出來(lái)的語(yǔ)言稱為源代碼(source code),源代碼必須再經(jīng)過(guò)轉(zhuǎn)換才能成為可被機(jī)器辨識(shí)的語(yǔ)言。在某些情況下,由于轉(zhuǎn)換編碼的過(guò)程相當(dāng)耗時(shí),使用者會(huì)希望儲(chǔ)存在版本控制系統(tǒng)中的是將源代碼轉(zhuǎn)換過(guò)的編碼或檔案,而非源代碼本身,藉此節(jié)省再次轉(zhuǎn)換的時(shí)間。
一般的共享版本系統(tǒng)是將某一檔案的所有版本儲(chǔ)存在一個(gè)集合檔案中;以共享版本系統(tǒng)為例,該集合檔案包含了最新版本和之前各版本之間的差異。也就是說(shuō),假設(shè)最新版本為第四版本,該集合檔案包含有第四版本、第四版本與第三版本之間的差異、第三版本與第二版本之間的差異...,依此類推。
然而,如上述的集合檔案中儲(chǔ)存各版本的方式并不適用于經(jīng)過(guò)轉(zhuǎn)換后的編碼或檔案,因?yàn)樵创a中一個(gè)細(xì)微的變動(dòng)就可能使轉(zhuǎn)換后的版本與前一個(gè)版本有極大的差異。此外,經(jīng)過(guò)轉(zhuǎn)換后的編碼或檔案通常很龐大;要比較及處理兩版本間的差異將會(huì)耗費(fèi)許多時(shí)間。在先前技藝中,假設(shè)使用者僅希望將一小卷標(biāo)增加至某個(gè)版本中,共享版本系統(tǒng)就必須讀取、開(kāi)啟,并處理包含有初始版本和各版本的差異的整個(gè)集合檔案。如熟悉此領(lǐng)域的技術(shù)者所知,要開(kāi)啟或處理數(shù)百兆字節(jié)(mega bytes)的檔案不但耗時(shí),還會(huì)占據(jù)相當(dāng)多的硬件資源。
發(fā)明內(nèi)容
為解決上述問(wèn)題,本發(fā)明提供一種在版本控制系統(tǒng)中管理目標(biāo)檔案的方法。
根據(jù)本發(fā)明的一個(gè)較佳具體實(shí)施例為將目標(biāo)檔案新增至版本控制系統(tǒng)的方法。該方法首先根據(jù)該目標(biāo)檔案產(chǎn)生一替代檔案,并將該替代檔案存入該版本控制系統(tǒng)。接著,該方法根據(jù)預(yù)先決定的規(guī)則,選擇將用以儲(chǔ)存該目標(biāo)檔案的儲(chǔ)存空間。該方法接著將該目標(biāo)檔案儲(chǔ)存至該儲(chǔ)存空間。在該目標(biāo)檔案被儲(chǔ)存至該儲(chǔ)存空間之后,當(dāng)讀取該目標(biāo)檔案的要求被傳送至該版本控制系統(tǒng),儲(chǔ)存于該版本控制系統(tǒng)中的該替代檔案首先被取出。接著,根據(jù)該替代檔案與該預(yù)先決定的規(guī)則,用以儲(chǔ)存該目標(biāo)檔案的該儲(chǔ)存空間被找出。
根據(jù)本發(fā)明的另一個(gè)較佳具體實(shí)施例為一種用以管理目標(biāo)檔案的方法。該目標(biāo)檔案包含N個(gè)版本。替代檔案是預(yù)先根據(jù)該N個(gè)版本被產(chǎn)生并儲(chǔ)存于版本控制系統(tǒng)中。該N個(gè)版本中的每一個(gè)版本是分別于儲(chǔ)存空間中。響應(yīng)(response)將該目標(biāo)檔案由該版本控制系統(tǒng)取出至一工作區(qū)域(workspace)的一取出要求,該方法首先判斷該N個(gè)版本中的任一個(gè)版本是否曾經(jīng)被取出至該工作區(qū)域。如果該判斷結(jié)果為否,則該方法將該替代檔案由該版本控制系統(tǒng)取出至該工作區(qū)域。根據(jù)一預(yù)先決定的規(guī)則與該替代檔案,該方法可找出用以儲(chǔ)存該N個(gè)版本中的一目標(biāo)版本的該儲(chǔ)存空間。接著,該方法將該目標(biāo)版本由該儲(chǔ)存空間復(fù)制至該工作區(qū)域。
根據(jù)本發(fā)明的另一個(gè)較佳具體實(shí)施例為一種用以管理一目標(biāo)檔案的方法,該目標(biāo)檔案包含多個(gè)版本,該方法包含將一替代檔案與該多個(gè)版本中的一版本同步;將該替代檔案存入一版本控制系統(tǒng);將與該替代檔案同步的該版本復(fù)制至一儲(chǔ)存空間;以及產(chǎn)生對(duì)應(yīng)于該儲(chǔ)存空間的一儲(chǔ)存路徑;其中,根據(jù)該替代檔案,該儲(chǔ)存路徑可被找出。
根據(jù)本發(fā)明的另一個(gè)較佳具體實(shí)施例為一種用以管理一目標(biāo)檔案的方法,該目標(biāo)檔案包含多個(gè)版本,該方法包含由一版本控制系統(tǒng)中取出一替代檔案;由一儲(chǔ)存空間復(fù)制多個(gè)版本中的一版本;以及產(chǎn)生對(duì)應(yīng)于該儲(chǔ)存空間的一儲(chǔ)存路徑;其中,根據(jù)該替代檔案,該儲(chǔ)存路徑可被找出。
根據(jù)本發(fā)明,當(dāng)使用者要求取出(check-out)、存入(check-in)、更新(update)該目標(biāo)檔案,或新增卷標(biāo)(tag)至該目標(biāo)檔案時(shí),該版本控制系統(tǒng)是針對(duì)一替代檔案(substitute file),而非該目標(biāo)檔案本身,執(zhí)行所述動(dòng)作。該替代檔案是根據(jù)該目標(biāo)檔案所產(chǎn)生,并且遠(yuǎn)小于該目標(biāo)檔案。藉此,本發(fā)明即可縮短開(kāi)啟或處理該目標(biāo)檔案的時(shí)間。
本發(fā)明的優(yōu)點(diǎn)與精神可以通過(guò)以下的發(fā)明詳述及所附圖式得到進(jìn)一步的了解。
圖1為根據(jù)本發(fā)明一較佳具體實(shí)施例將一目標(biāo)檔案新增至一版本控制系統(tǒng)的方法的流程圖。
圖2為根據(jù)本發(fā)明一較佳具體實(shí)施例的取出方法的流程圖。
圖3為根據(jù)本發(fā)明一較佳具體實(shí)施例的存入方法的流程圖。
圖4為根據(jù)本發(fā)明一較佳具體實(shí)施例的更新方法的流程圖。
圖5是繪示一用以檢查一版本控制系統(tǒng)是否發(fā)生變更的較佳具體實(shí)施例的流程圖。
圖6為根據(jù)本發(fā)明另一較佳具體實(shí)施例的取出方法的流程圖。
圖7為根據(jù)本發(fā)明另一較佳具體實(shí)施例的更新方法的流程圖。
主要組件符號(hào)說(shuō)明S11~S14流程步驟 S21~S26流程步驟
S31~S38流程步驟 S41~S45流程步驟S51~S56流程步驟 S61~S67流程步驟S71~S76流程步驟具體實(shí)施方式
本發(fā)明的一主要目的是提供一種在版本控制系統(tǒng)中管理目標(biāo)檔案的方法。根據(jù)本發(fā)明,當(dāng)使用者要求取出、存入、更新該目標(biāo)檔案,或新增一卷標(biāo)至該目標(biāo)檔案時(shí),該版本控制系統(tǒng)是針對(duì)一替代檔案,而非該目標(biāo)檔案本身,執(zhí)行所述動(dòng)作。該替代檔案是根據(jù)該目標(biāo)檔案所產(chǎn)生,并且遠(yuǎn)小于該目標(biāo)檔案。藉此,本發(fā)明即可縮短開(kāi)啟或處理該目標(biāo)檔案的時(shí)間。此外,使用者仍可使用既有的指令和操作方式來(lái)與該版本控制系統(tǒng)溝通。根據(jù)本發(fā)明的方法會(huì)自動(dòng)轉(zhuǎn)換這些指令,再將轉(zhuǎn)換后的指令傳送給該版本控制系統(tǒng)。本發(fā)明可應(yīng)用于共享版本系統(tǒng)(concurrent versions system,CVS)或其它任一種版本控制系統(tǒng)中。
在實(shí)際應(yīng)用中,該替代檔案的內(nèi)容可以僅包含該目標(biāo)檔案的解釋資料(meta-data)的部分。解釋資料通常為與該目標(biāo)檔案相關(guān)的版本編號(hào)、改版時(shí)間、修改者名稱,以及各種卷標(biāo)(tag)。
根據(jù)本發(fā)明的一較佳具體實(shí)施例為一將一目標(biāo)檔案新增至一版本控制系統(tǒng)的方法。請(qǐng)參閱圖1,圖1是繪示該方法的流程圖。該方法首先執(zhí)行步驟S11,根據(jù)該目標(biāo)檔案產(chǎn)生一替代檔案。該目標(biāo)檔案為一使用者原本希望由他的工作區(qū)域(workspace)存入該版本控制系統(tǒng)的檔案。接著,步驟S12是將該替代檔案存入該版本控制系統(tǒng)。步驟S13則是根據(jù)一預(yù)先決定的規(guī)則,選擇將用以儲(chǔ)存該目標(biāo)檔案的一儲(chǔ)存空間。最后,步驟S14是將該目標(biāo)檔案儲(chǔ)存至該儲(chǔ)存空間。
在該目標(biāo)檔案被儲(chǔ)存至該儲(chǔ)存空間之后,當(dāng)一讀取該目標(biāo)檔案的要求被傳送至該版本控制系統(tǒng),儲(chǔ)存于該版本控制系統(tǒng)中的該替代檔案首先被取出。根據(jù)該替代檔案與該預(yù)先決定的規(guī)則,用以儲(chǔ)存該目標(biāo)檔案的該儲(chǔ)存空間可被找出。接著,該目標(biāo)檔案即可由該儲(chǔ)存空間被復(fù)制至該使用者的工作區(qū)域中。
在實(shí)際應(yīng)用中,該預(yù)先決定的規(guī)則可能是根據(jù)該替代檔案的名稱決定一特定的、相對(duì)的路徑(path)或檔案夾(directory),也即該替代檔案與該儲(chǔ)存空間之間的一特定映射(mapping)關(guān)系。該預(yù)先決定的規(guī)則可由該版本控制系統(tǒng)預(yù)設(shè),也可由使用者自行決定。
根據(jù)本發(fā)明的另一較佳具體實(shí)施例為一種用以管理一目標(biāo)檔案的方法。該目標(biāo)檔案包含N個(gè)版本(version),N為一正整數(shù)。一替代檔案是預(yù)先根據(jù)該N個(gè)版本被產(chǎn)生并儲(chǔ)存于一版本控制系統(tǒng)中。該N個(gè)版本中的每一個(gè)版本是分別于一儲(chǔ)存空間中。所述儲(chǔ)存空間可能是根據(jù)前述的預(yù)先決定的規(guī)則所選定。
請(qǐng)參閱圖2,圖2是繪示在該較佳具體實(shí)施例中將檔案取出(check-out)的方法的流程圖。當(dāng)一使用者傳送一取出要求至該版本控制系統(tǒng),希望將該目標(biāo)檔案由該版本控制系統(tǒng)取出至一工作區(qū)域時(shí),該方法即執(zhí)行步驟S21至S26。
步驟S21是判斷該N個(gè)版本中的任一個(gè)版本是否曾經(jīng)被取出至該工作區(qū)域。如果步驟S21的判斷結(jié)果為否,則該方法繼續(xù)執(zhí)行步驟S23至S25。步驟S23是將該替代檔案由該版本控制系統(tǒng)取出至該工作區(qū)域。使用者可決定希望取出該目標(biāo)檔案的哪一個(gè)版本。舉例而言,假設(shè)該目標(biāo)檔案包含六個(gè)版本,則其中最新的版本的版本編號(hào)可能為1.6。如果該使用者決定取出最新的版本,則步驟S24是根據(jù)一預(yù)先決定的規(guī)則找出對(duì)應(yīng)于該替代檔案并且對(duì)應(yīng)于版本編號(hào)為1.6的儲(chǔ)存空間。同樣地,如果使用者決定取出版本編號(hào)為1.5的版本,則對(duì)應(yīng)于該替代檔案并且對(duì)應(yīng)于版本編號(hào)為1.5的儲(chǔ)存空間會(huì)被找出來(lái)。最后,步驟S25是將該被選定的版本由該儲(chǔ)存空間復(fù)制至使用者的工作區(qū)域中。
使用者用以指定所需版本的方式可以有很多種。舉例來(lái)說(shuō),使用者可以根據(jù)一版本被建立的時(shí)間或是對(duì)應(yīng)于某一版本的卷標(biāo)(tag)、標(biāo)記(label)來(lái)指定所需要的版本。對(duì)使用者來(lái)說(shuō),一版本被建立的時(shí)間的涵義可能比版本編號(hào)來(lái)的大。一版本的儲(chǔ)存空間及其建立時(shí)間、卷標(biāo)、標(biāo)記之間的映射關(guān)系可由一程序或由該版本控制系統(tǒng)產(chǎn)生。
如果步驟S21的判斷結(jié)果為是,則該方法執(zhí)行步驟S22,判斷曾經(jīng)被取出至該工作區(qū)域的該版本在該工作區(qū)域中是否遭到修改。如果步驟S22的判斷結(jié)果為否,則該方法也執(zhí)行步驟S23至S25。如果步驟S22的判斷結(jié)果為是,表示該N個(gè)版本中的至少一個(gè)版本曾經(jīng)被取出至該工作區(qū)域作為一本地版本(local version),并且該替代檔案曾經(jīng)被取出至該工作區(qū)域作為一本地替代檔案。該方法接著執(zhí)行步驟S26,傳送一第一警告至該工作區(qū)域,指出該工作區(qū)域曾發(fā)生一修改事件。該工作區(qū)域的使用者將會(huì)被詢問(wèn)他/她是否希望保留該本地版本,或是希望直接以由該版本控制系統(tǒng)中取出的版本取代該本地版本。同時(shí),該本地替代檔案也會(huì)被修改,以記錄該本地版本已遭到修改。
請(qǐng)參閱圖3,圖3是繪示在該較佳具體實(shí)施例中將檔案存入(check-in)的方法的流程圖。假設(shè)該N個(gè)版本中的至少一個(gè)版本曾經(jīng)被取出至該工作區(qū)域作為一本地版本(local version),并且該替代檔案曾經(jīng)被取出至該工作區(qū)域作為一本地替代檔案。當(dāng)一使用者傳送一存入要求至該版本控制系統(tǒng),表示希望將曾經(jīng)在該工作區(qū)域被修改的本地版本存入該版本控制系統(tǒng),該方法首先執(zhí)行步驟S31。步驟S31是判斷該本地版本在該工作區(qū)域中是否確實(shí)遭到修改。如果步驟S31的判斷結(jié)果為是,該方法即執(zhí)行步驟S32,修改該本地替代檔案,以記錄該本地版本已遭到修改。步驟S33則是接著將該本地替代檔案存入該版本控制系統(tǒng)。步驟S34是判斷一新版的替代檔案是否已產(chǎn)生于該版本控制系統(tǒng)中。如果步驟S34的判斷結(jié)果為是,該方法即執(zhí)行步驟S35,根據(jù)一預(yù)先決定的規(guī)則,選擇將用以儲(chǔ)存該本地版本的一新儲(chǔ)存空間。最后,步驟S36是將該本地版本由該工作區(qū)域復(fù)制至該新儲(chǔ)存空間。如果步驟S31的判斷結(jié)果為否,則該方法執(zhí)行步驟S37,傳送一第二警告至該工作區(qū)域,指出該工作區(qū)域并未發(fā)生一修改事件。如果步驟S34的判斷結(jié)果為否,則該方法執(zhí)行步驟S38,傳送一第三警告至該工作區(qū)域,指出一存入失敗。
請(qǐng)參閱圖4,圖4是繪示在該較佳具體實(shí)施例中將檔案更新(update)的方法的流程圖。假設(shè)該N個(gè)版本中的至少一個(gè)版本曾經(jīng)被取出至該工作區(qū)域作為一本地版本。當(dāng)一使用者傳送一更新要求至該版本控制系統(tǒng),表示希望更新該本地版本時(shí),該方法首先執(zhí)行步驟S41,判斷該本地版本在該工作區(qū)域中是否曾遭到修改。如果步驟S41的判斷結(jié)果為否,則該方法繼續(xù)執(zhí)行步驟S42至S44。步驟S42是由該版本控制系統(tǒng)將該替代檔案取出至該工作區(qū)域。步驟S43則是根據(jù)一預(yù)先決定的規(guī)則與該替代檔案,找出用以儲(chǔ)存該N個(gè)版本中的一目標(biāo)版本的該儲(chǔ)存空間。步驟S44是將該目標(biāo)版本由該儲(chǔ)存空間復(fù)制至該工作區(qū)域,以取代該本地版本,達(dá)成更新該本地版本的目的。如果步驟S41的判斷結(jié)果為是,則該方法執(zhí)行步驟S45,傳送一第四警告至該工作區(qū)域,指出該工作區(qū)域曾發(fā)生一修改事件。
請(qǐng)參閱圖5,圖5是繪示一用以檢查一版本控制系統(tǒng)是否發(fā)生變更的較佳具體實(shí)施例的流程圖。步驟S51是判斷一目標(biāo)檔案是否曾經(jīng)被修改。在實(shí)際應(yīng)用中,步驟S51可能檢查該目標(biāo)檔案被產(chǎn)生或被修改的時(shí)間,以作為判斷的依據(jù)。如果步驟S51的判斷結(jié)果為是,則該實(shí)施例接著執(zhí)行步驟S52,將一替代檔案與該目標(biāo)檔案同步。所謂同步,可能是將一目前時(shí)間(currenttime)或一隨機(jī)數(shù)(random number)寫(xiě)入該替代檔案,也可能是通過(guò)修改該替代檔案來(lái)達(dá)成同步的效果。步驟S53則是將該替代檔案存入該版本控制系統(tǒng)。如果步驟S51的判斷結(jié)果為否(也即該替代檔案已與該目標(biāo)檔案同步),則該實(shí)施例跳過(guò)步驟S52,直接執(zhí)行步驟S53。步驟S54是判斷步驟S53是否已成功地將該替代檔案存入該版本控制系統(tǒng)。如果步驟S54的判斷結(jié)果為是,則該實(shí)施例接著執(zhí)行步驟S55,將已與該替代檔案同步的該目標(biāo)檔案復(fù)制至一儲(chǔ)存空間。如果步驟S54的判斷結(jié)果為否,則該實(shí)施例接著執(zhí)行步驟S56,傳送一警告信息給使用者。
若步驟S51的判斷結(jié)果為否,表示存入該替代檔案是不必要的,可預(yù)期的是,步驟S54的判斷結(jié)果應(yīng)該也為否。在本實(shí)施例中可看出,實(shí)際上會(huì)被存入該版本控制系統(tǒng)中的是該替代檔案,而非該目標(biāo)檔案。由于該替代檔案遠(yuǎn)小于該目標(biāo)檔案,本發(fā)明可縮短檢查該目標(biāo)檔案是否發(fā)生變更的時(shí)間。此外,每當(dāng)該目標(biāo)檔案發(fā)生一版本變更時(shí),本發(fā)明僅需要在該替代檔案中增加一行信息(例如目前時(shí)間)以記錄此變更。因此,該版本控制系統(tǒng)可更有效率地處理該替代檔案。
對(duì)應(yīng)于該儲(chǔ)存空間的一儲(chǔ)存路徑(storage path)可根據(jù)一預(yù)先決定的規(guī)則產(chǎn)生。該預(yù)先決定的規(guī)則可以是根據(jù)該目標(biāo)檔案的名稱及版本編號(hào)產(chǎn)生該儲(chǔ)存路徑。舉例而言,假設(shè)該目標(biāo)檔案的名稱為“FileA”、該替代檔案的名稱為“.substitute.fileA,v”、用以儲(chǔ)存該替代檔案的路徑為“$CVSROOT/dir/.substitute.fileA,v”,并且將被儲(chǔ)存的版本的編號(hào)為1.4,則對(duì)應(yīng)于該儲(chǔ)存空間的該儲(chǔ)存路徑可能為“$CVSROOT/dir/CVS/fileA/1.4”。上述實(shí)施例可進(jìn)一步包含記錄該儲(chǔ)存路徑的步驟。
請(qǐng)參閱圖6,圖6是繪示一取出程序的較佳具體實(shí)施例的流程圖。步驟S61是判斷一替代檔案是否存在于一工作區(qū)域中。如果步驟S61的判斷結(jié)果為是,則本實(shí)施例接著執(zhí)行步驟S62,判斷該工作區(qū)域中的一目標(biāo)檔案是否曾被修改。如果步驟S61的判斷結(jié)果為否,則本實(shí)施例接著執(zhí)行步驟S64,由版本控制系統(tǒng)將一替代檔案取出至該工作區(qū)域。
如果步驟S62的判斷結(jié)果為是,則本實(shí)施例執(zhí)行步驟S63,增加一目前時(shí)間至該工作區(qū)域中的替代檔案,使該替代檔案與該目標(biāo)檔案同步,再接著執(zhí)行步驟S64。使用者可決定希望取出哪一個(gè)版本的目標(biāo)檔案。如果使用者是希望由版本控制系統(tǒng)取出最新版的目標(biāo)檔案,由于該目標(biāo)檔案已經(jīng)在該工作區(qū)域中被修改,此取出的請(qǐng)求將不會(huì)成功。也就是說(shuō),用以判斷取出請(qǐng)求是否成功的步驟S65的判斷結(jié)果將為否,本實(shí)施例并將接著執(zhí)行步驟S67,傳送一警告信息給使用者。
假設(shè)使用者是希望取出最新版的目標(biāo)檔案,如果步驟S62的判斷結(jié)果為否,可能表示該工作區(qū)域中的本地版本已經(jīng)是最新版的目標(biāo)檔案,則本實(shí)施例執(zhí)行步驟S64時(shí)將不會(huì)成功,也即S65的判斷結(jié)果將為否。原因是該工作區(qū)域中的本地版本已經(jīng)是最新版的目標(biāo)檔案,并且在該最新版的目標(biāo)檔案并未在該工作區(qū)域中遭到修改。本實(shí)施例也將執(zhí)行步驟S67,傳送一警告信息給使用者。
如果使用者是希望取出一舊版的目標(biāo)檔案,并且步驟S62的判斷結(jié)果為否,則本實(shí)施例執(zhí)行步驟S64時(shí)將可成功。然而,如果使用者是希望取出一舊版的目標(biāo)檔案,并且步驟S62的判斷結(jié)果為是,則本實(shí)施例執(zhí)行步驟S64時(shí)將失敗,并將傳送一警告信息給使用者,提醒使用者該工作區(qū)域中的本地版本已經(jīng)過(guò)修改,使用者應(yīng)先決定是否要儲(chǔ)存此一經(jīng)修改的本地版本。
如果步驟S65的判斷結(jié)果為是,則一舊版的替代檔案是產(chǎn)生于該工作區(qū)域中,并且本實(shí)施例繼續(xù)執(zhí)行步驟S66,將對(duì)應(yīng)于該舊版的替代檔案的目標(biāo)檔案由一儲(chǔ)存空間復(fù)制至該工作區(qū)域。
請(qǐng)參閱圖7,圖7是繪示一同步程序(或稱為更新程序)的較佳具體實(shí)施例的流程圖。步驟S71是判斷在一工作區(qū)域中的目標(biāo)檔案是否曾被修改。如果步驟S71的判斷結(jié)果為是,則本實(shí)施例執(zhí)行步驟S72,將一目前時(shí)間加入該工作區(qū)域中的替代檔案,藉此將該替代檔案與該目標(biāo)檔案同步。步驟S73是更新該替代檔案。使用者可決定希望更新哪一個(gè)版本的替代檔案。假設(shè)使用者是希望將該工作區(qū)域中的替代檔案更新為最新版的替代檔案,由于該工作區(qū)域中的替代檔案已在步驟S72遭到修改,步驟S73將不會(huì)成功。也就是說(shuō),用以判斷此更新是否成功的步驟S74的判斷結(jié)果將為否,本實(shí)施例并將接著執(zhí)行步驟S76,傳送一警告信息給使用者。
如果步驟S71的判斷結(jié)果為否,假設(shè)該工作區(qū)域中的替代檔案已經(jīng)為最新版的替代檔案,并且使用者是希望將該工作區(qū)域中的替代檔案更新為最新版的替代檔案,則步驟S74的判斷結(jié)果也將為否。由于該工作區(qū)域中的替代檔案已經(jīng)為最新版的替代檔案,因此版本控制系統(tǒng)中的替代檔案將不會(huì)再次被取出至該工作區(qū)域,本實(shí)施例并將接著執(zhí)行步驟S76,傳送一警告信息給使用者。
如果步驟S71的判斷結(jié)果為否,并且使用者是希望將該工作區(qū)域中的替代檔案更新為一舊版的替代檔案,由于將不會(huì)產(chǎn)生版本沖突,步驟S74的判斷結(jié)果將為是。
然而,如果步驟S71的判斷結(jié)果為是,并且使用者是希望將該工作區(qū)域中的替代檔案更新為一舊版的替代檔案,則步驟S74的判斷結(jié)果將為否,本實(shí)施例并將接著執(zhí)行步驟S76,傳送一警告信息給使用者。
如果步驟S74的判斷結(jié)果為是,則一舊版的替代檔案是產(chǎn)生于該工作區(qū)域中,并且本實(shí)施例繼續(xù)執(zhí)行步驟S75,將對(duì)應(yīng)于該舊版的替代檔案的目標(biāo)檔案由一儲(chǔ)存空間復(fù)制至該工作空域。藉此,該工作區(qū)域中的目標(biāo)檔案與替代檔案都可同步于該版本控制系統(tǒng)中的目標(biāo)檔案與替代檔案。
根據(jù)本發(fā)明,響應(yīng)于增加一標(biāo)記(tag)至該目標(biāo)檔案的一標(biāo)記要求,本發(fā)明是將該標(biāo)記加入該替代檔案,因此不需要開(kāi)啟可能極龐大的目標(biāo)檔案。相同地,響應(yīng)檢視對(duì)應(yīng)于該目標(biāo)檔案的一組歷史資料的一記錄(log)要求,本發(fā)明是顯示記錄于該替代檔案中的該組歷史資料,而非開(kāi)啟并讀取該目標(biāo)檔案。
上述各個(gè)根據(jù)本發(fā)明的方法都可應(yīng)用于一共享版本系統(tǒng)(CVS)或其它任一種版本控制系統(tǒng)中。由于本發(fā)明是針對(duì)遠(yuǎn)小于目標(biāo)檔案的一替代檔案執(zhí)行各種程序,因此可較先前技藝大幅提升開(kāi)啟或處理該目標(biāo)檔案的效率。
通過(guò)以上較佳具體實(shí)施例的詳述,是希望能更加清楚描述本發(fā)明的特征與精神,而并非以上述所揭露的較佳具體實(shí)施例來(lái)對(duì)本發(fā)明的范疇加以限制。相反地,其目的是希望能涵蓋各種改變及具有相等性的安排于本發(fā)明所欲申請(qǐng)的專利范圍的范疇內(nèi)。
權(quán)利要求
1.一種將一目標(biāo)檔案新增至一版本控制系統(tǒng)的方法,其特征在于,該方法包含根據(jù)該目標(biāo)檔案產(chǎn)生一替代檔案;將該替代檔案存入該版本控制系統(tǒng);根據(jù)一預(yù)先決定的規(guī)則,選擇將用以儲(chǔ)存該目標(biāo)檔案的一儲(chǔ)存空間;以及將該目標(biāo)檔案儲(chǔ)存至該儲(chǔ)存空間;其中在該目標(biāo)檔案被儲(chǔ)存至該儲(chǔ)存空間之后,當(dāng)一讀取該目標(biāo)檔案的要求被傳送至該版本控制系統(tǒng),儲(chǔ)存于該版本控制系統(tǒng)中的該替代檔案首先被取出,接著,根據(jù)該替代檔案與該預(yù)先決定的規(guī)則,用以儲(chǔ)存該目標(biāo)檔案的該儲(chǔ)存空間被找出。
2.如權(quán)利要求1所述的方法,其特征在于,所述版本控制系統(tǒng)為一共享版本系統(tǒng)。
3.一種用以管理一目標(biāo)檔案的方法,該目標(biāo)檔案包含N個(gè)版本,N為一正整數(shù),一替代檔案是預(yù)先根據(jù)該N個(gè)版本被產(chǎn)生并儲(chǔ)存于一版本控制系統(tǒng)中,該N個(gè)版本中的每一個(gè)版本分別于一儲(chǔ)存空間中,其特征在于,該方法包含響應(yīng)將該目標(biāo)檔案由該版本控制系統(tǒng)取出至一工作區(qū)域的一取出要求,執(zhí)行下列子步驟a1.判斷該N個(gè)版本中的任一個(gè)版本是否曾經(jīng)被取出至該工作區(qū)域,如果為否,則繼續(xù)執(zhí)行子步驟a2至a4;a2.將該替代檔案由該版本控制系統(tǒng)取出至該工作區(qū)域;a3.根據(jù)一預(yù)先決定的規(guī)則與該替代檔案,找出用以儲(chǔ)存該N個(gè)版本中的一目標(biāo)版本的該儲(chǔ)存空間;以及a4.將該目標(biāo)版本由該儲(chǔ)存空間復(fù)制至該工作區(qū)域。
4.如權(quán)利要求3所述的方法,其特征在于,如果子步驟a1的判斷結(jié)果為是,則執(zhí)行下列子步驟a5.判斷曾經(jīng)被取出至該工作區(qū)域的該版本在該工作區(qū)域中是否遭到修改,如果為否,則繼續(xù)執(zhí)行子步驟a2至a4。
5.如權(quán)利要求4所述的方法,其特征在于,如果子步驟a5的判斷結(jié)果為是,則執(zhí)行下列子步驟a6.傳送一第一警告至該工作區(qū)域,指出該工作區(qū)域曾發(fā)生一修改事件。
6.如權(quán)利要求5所述的方法,其特征在于,該N個(gè)版本中的至少一個(gè)版本曾經(jīng)被取出至該工作區(qū)域作為一本地版本,該替代檔案曾經(jīng)被取出至該工作區(qū)域作為一本地替代檔案,并且如果子步驟a5的判斷結(jié)果為是,則也執(zhí)行下列子步驟a7.修改該本地替代檔案,以記錄該本地版本已遭到修改。
7.如權(quán)利要求3所述的方法,其特征在于,該N個(gè)版本中的至少一個(gè)版本曾經(jīng)被取出至該工作區(qū)域作為一本地版本,該替代檔案曾經(jīng)被取出至該工作區(qū)域作為一本地替代檔案,該方法進(jìn)一步包含響應(yīng)將該本地版本由該工作區(qū)域存入該版本控制系統(tǒng)的一存入要求,執(zhí)行下列子步驟b1.判斷該本地版本在該工作區(qū)域中是否遭到修改,如果為是,則修改該本地替代檔案,以記錄該本地版本已遭到修改;b2.將該本地替代檔案存入該版本控制系統(tǒng);b3.判斷一新版的替代檔案是否已產(chǎn)生,如果為是,則繼續(xù)執(zhí)行子步驟b4;b4.根據(jù)一預(yù)先決定的規(guī)則,選擇將用以儲(chǔ)存該本地版本的一新儲(chǔ)存空間;以及b5.將該本地版本由該工作區(qū)域復(fù)制至該新儲(chǔ)存空間。
8.如權(quán)利要求7所述的方法,其特征在于,如果子步驟b1的判斷結(jié)果為否,則執(zhí)行下列子步驟b6.傳送一第二警告至該工作區(qū)域,指出該工作區(qū)域未發(fā)生一修改事件。
9.如權(quán)利要求7所述的方法,其特征在于,如果子步驟b3的判斷結(jié)果為否,則執(zhí)行下列子步驟b7.傳送一第三警告至該工作區(qū)域,指出一存入失敗。
10.如權(quán)利要求3所述的方法,其特征在于,該N個(gè)版本中的至少一個(gè)版本曾經(jīng)被取出至該工作區(qū)域作為一本地版本,該方法進(jìn)一步包含響應(yīng)將該本地版本更新的一更新要求,執(zhí)行下列子步驟c1.判斷該本地版本在該工作區(qū)域中是否遭到修改,如果為否,則繼續(xù)執(zhí)行子步驟c2至c4;c2.由該版本控制系統(tǒng)將該替代檔案取出至該工作區(qū)域;c3.根據(jù)一預(yù)先決定的規(guī)則與該替代檔案,找出用以儲(chǔ)存該N個(gè)版本中的一目標(biāo)版本的該儲(chǔ)存空間;以及c4.將該目標(biāo)版本由該儲(chǔ)存空間復(fù)制至該工作區(qū)域。
11.如權(quán)利要求10所述的方法,其特征在于,如果子步驟c1的判斷結(jié)果為是,則執(zhí)行下列子步驟c5.傳送一第四警告至該工作區(qū)域,指出該工作區(qū)域曾發(fā)生一修改事件。
12.如權(quán)利要求3所述的方法,其特征在于,該方法進(jìn)一步包含響應(yīng)增加一標(biāo)記至該目標(biāo)檔案的一標(biāo)記要求,執(zhí)行下列子步驟d1.記錄對(duì)應(yīng)于該替代檔案的一標(biāo)記。
13.如權(quán)利要求3所述的方法,其特征在于,該方法進(jìn)一步包含響應(yīng)檢視對(duì)應(yīng)于該目標(biāo)檔案的一組歷史資料的一記錄要求,執(zhí)行下列子步驟e1.顯示記錄于該替代檔案中的該組歷史資料。
14.如權(quán)利要求3所述的方法,其特征在于,該版本控制系統(tǒng)為一共享版本系統(tǒng)。
15.一種用以管理一目標(biāo)檔案的方法,該目標(biāo)檔案包含多個(gè)版本,其特征在于,該方法包含將一替代檔案與該多個(gè)版本中的一版本同步;將該替代檔案存入一版本控制系統(tǒng);將與該替代檔案同步的該版本復(fù)制至一儲(chǔ)存空間;以及產(chǎn)生對(duì)應(yīng)于該儲(chǔ)存空間的一儲(chǔ)存路徑;其中,根據(jù)該替代檔案,該儲(chǔ)存路徑可被找出。
16.如權(quán)利要求15所述的方法,其特征在于,該方法進(jìn)一步包含記錄該儲(chǔ)存路徑。
17.如權(quán)利要求15所述的方法,其特征在于,該儲(chǔ)存路徑是根據(jù)一預(yù)先決定的規(guī)則所產(chǎn)生。
18.如權(quán)利要求15所述的方法,其特征在于,該版本控制系統(tǒng)為一共享版本系統(tǒng)。
19.如權(quán)利要求15所述的方法,其特征在于,該同步的步驟進(jìn)一步包含將一目前時(shí)間寫(xiě)入該替代檔案。
20.如權(quán)利要求15所述的方法,其特征在于,該同步的步驟進(jìn)一步包含將一隨機(jī)數(shù)寫(xiě)入該替代檔案。
21.一種用以管理一目標(biāo)檔案的方法,該目標(biāo)檔案包含多個(gè)版本,其特征在于,該方法包含由一版本控制系統(tǒng)中取出一替代檔案;由一儲(chǔ)存空間復(fù)制多個(gè)版本中的一版本;以及產(chǎn)生對(duì)應(yīng)于該儲(chǔ)存空間的一儲(chǔ)存路徑;其中,根據(jù)該替代檔案,該儲(chǔ)存路徑可被找出。
22.如權(quán)利要求21所述的方法,其特征在于,該版本控制系統(tǒng)為一共享版本系統(tǒng)。
23.如權(quán)利要求21所述的方法,其特征在于,該方法進(jìn)一步包含由該版本控制系統(tǒng)取出該替代檔案前,將該替代檔案與該被復(fù)制的版本同步。
全文摘要
本發(fā)明提供用以管理版本控制系統(tǒng)的檔案的方法。根據(jù)本發(fā)明的一個(gè)較佳具體實(shí)施例為一種將一目標(biāo)檔案新增至一版本控制系統(tǒng)的方法,包含根據(jù)該目標(biāo)檔案產(chǎn)生一替代檔案;將該替代檔案存入該版本控制系統(tǒng);根據(jù)一預(yù)先決定的規(guī)則,選擇將用以儲(chǔ)存該目標(biāo)檔案的一儲(chǔ)存空間;以及將該目標(biāo)檔案儲(chǔ)存至該儲(chǔ)存空間。當(dāng)使用者要求取出、存入、更新該目標(biāo)檔案,或新增卷標(biāo)至該目標(biāo)檔案時(shí),該版本控制系統(tǒng)是針對(duì)替代檔案執(zhí)行所述動(dòng)作。該替代檔案是根據(jù)該目標(biāo)檔案所產(chǎn)生,并且遠(yuǎn)小于該目標(biāo)檔案。藉此,即可縮短開(kāi)啟或處理該目標(biāo)檔案的時(shí)間。
文檔編號(hào)G06F9/44GK1987780SQ20061014847
公開(kāi)日2007年6月27日 申請(qǐng)日期2006年11月17日 優(yōu)先權(quán)日2005年12月22日
發(fā)明者陳佩文 申請(qǐng)人:聯(lián)發(fā)科技股份有限公司