專利名稱:用于在軟件配置管理系統(tǒng)中引用文件的計(jì)算機(jī)方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件管理系統(tǒng)和方法,更特別地,涉及軟件配置管理系統(tǒng)、用于管 理軟件配置的計(jì)算才幾方法及設(shè)備。
背景技術(shù):
專欠件開發(fā)一4殳作為團(tuán)隊(duì)項(xiàng)目來(lái)才似亍。主體(subject)壽欠件系統(tǒng)^:通過"i殳計(jì)工作 (effort )、測(cè)試工作、實(shí)施工作和維護(hù)工作而開發(fā)的??梢杂胁煌膱F(tuán)隊(duì)和不同的 團(tuán)隊(duì)成員參與其中的[個(gè)步驟。整個(gè)這些工作和在工作團(tuán)隊(duì)成員之中,在開發(fā)主 ^^欠件系統(tǒng)時(shí)^^]各種各樣的模型和其它開發(fā)工具,用于增進(jìn)交力M口一致性。軟件 配置管理系統(tǒng)就是一種這樣的工具。軟件配置管理系統(tǒng)允許用戶團(tuán)隊(duì)(軟件開發(fā)人員 /工程師)與主^4欠件系統(tǒng)的人為因素(artifact)協(xié)同工作。軟件人為因素是軟件系統(tǒng)的一個(gè)方面的持U示。軟件人為因素的共同示例是 包含軟件系統(tǒng)的源碼的文件和目錄,但人為因素的其他示例包括需求、最終用戶文 檔、系統(tǒng)模型和系統(tǒng)測(cè)試。^^軟件人為因素的一個(gè)重要狀態(tài)作為該人為因素的一 個(gè)版本,而給定人為因素的一《iUf反本限定該人為因素的歷史。軟件配置是一組軟件人為因素版本,其中通過給定軟件配置只選擇給定人為因 素的一個(gè)纟^。軟件變化集標(biāo)識(shí)了對(duì)配置的邏輯改變,并且所述軟件變化集由對(duì)一 個(gè)或者多個(gè)人為因素的一組一個(gè)或者多個(gè)改變組成。軟件配置的一個(gè)可選特征是其 由一組導(dǎo)致該配置的變化集組成。當(dāng)一組軟件開發(fā)人員正創(chuàng)建和修改一些文件以創(chuàng)建一個(gè)軟件系統(tǒng)的新配置時(shí), 每個(gè)開發(fā)人員都需要這些文件的專用4^分,以便保證該開發(fā)人員能夠測(cè)試他所做的 修改而不會(huì)被其他開發(fā)人員所做的修改干擾。將這種為特定開發(fā)人員提供專用^f分 的對(duì)^沐為工作空間,在被稱作工作空間的文件區(qū)的文件系統(tǒng)樹中肩儲(chǔ)工作空間中有在該文件區(qū)內(nèi)才有歲幻兩者。為了支持?jǐn)嚅_^JD ,在開發(fā)人員的機(jī)器上的本i^茲盤 上^f諸文件區(qū)。當(dāng)開發(fā)人員準(zhǔn)備讓他所做的改變對(duì)其^i且員^f效時(shí),#^企查在他 文件區(qū)內(nèi)已經(jīng)改變的所有公用文件和文件夾,這就在團(tuán)隊(duì)庫(kù)(repository)中創(chuàng)建了那些文件和文件夾的不變;&^。對(duì)開發(fā)人員來(lái)說(shuō),能夠去查看在其他開發(fā)人員工作空間內(nèi)文件的狀態(tài)通常是很 重要的。文件最當(dāng)前的狀態(tài)是在該工作空間的文件區(qū)內(nèi)(例如,正在被修改的文件的 當(dāng)前狀態(tài)通常僅^l^文件區(qū)內(nèi)有幼,但是開發(fā)人員工作空間的文件區(qū)對(duì)于大部分其 他開發(fā)人員來(lái)iM常是不可訪問的(尤其是如果該工作空間的擁有者是在斷開工作中)。在工作空間中文件的最佳近似狀態(tài)通??梢詠VA^卩些文件的射己(checked-in) 狀態(tài)中得到,該狀態(tài)對(duì)^f可訪問到團(tuán)隊(duì)庫(kù)的開發(fā)人員都有效。這意味著有兩種不同 的命名樹可以用來(lái)得到工作空間中文件的狀態(tài)文件區(qū)命名樹(文件i^^)和庫(kù)命 名樹傳^4^)。文件引用機(jī)制必須允"i情發(fā)人員指定他們希望^^]的命名空間(因 為上述兩種命名空間內(nèi)文件的實(shí)際狀態(tài)可以是不同的),但是為了避免不必要的復(fù)雜 性,在上述兩種命名空間內(nèi)的文件訪問機(jī)制應(yīng)該盡可能:l^充一。特別地,系統(tǒng)自動(dòng) 將文件區(qū)引用轉(zhuǎn)換到庫(kù)引用應(yīng)該是可行的,反之亦然。特別地,如果開發(fā)人員引用 了另一個(gè)開發(fā)人員文4t^名樹內(nèi)的一個(gè)文件,則系統(tǒng)應(yīng)該能夠自動(dòng)地將該引用轉(zhuǎn)化 為對(duì)庫(kù)中該文件的射己狀態(tài)的引用,以便它可以向開發(fā)人員提供瀏覽&己狀態(tài)的選 項(xiàng)。相反地,如果開發(fā)人員引用了庫(kù)中的一個(gè)文件,并且該文件的文件區(qū)在該開發(fā) 人員的機(jī)器上,則系統(tǒng)應(yīng)該能夠自動(dòng)地將庫(kù)引用轉(zhuǎn)^^于文件區(qū)里相應(yīng)文件的引用, 即使該開發(fā)人員當(dāng)前是與庫(kù)斷開的。當(dāng)開發(fā)人員4頓引用時(shí),對(duì)系統(tǒng)來(lái)說(shuō)十分重要的是其應(yīng)該能夠判斷從引用被創(chuàng) 建后正在被? 1用的文件的狀態(tài)是否已經(jīng)改變。一種會(huì)出現(xiàn)的復(fù)雜情況是文件區(qū)里的文件或許已經(jīng)被重命名或者乂Ai:件區(qū)中被 移去,但是獲取該文件新位置的被修改的文件夾還沒有被射己至庫(kù)中。發(fā)明內(nèi)容本發(fā)明旨在解決現(xiàn)省技術(shù)中的問題。尤其是,本發(fā)明提供了用于引用潛在地?cái)?開的軟件開發(fā)工作空間中的文件的方法和裝置。本發(fā)明的方法和裝置包括軟件配置 管理系統(tǒng),其包括每個(gè)開發(fā)人員的相應(yīng)工作空間,每個(gè)工作空間(i)將主^^欠件配置限定為像是由 相應(yīng)開發(fā)人員開發(fā)的,以及(ii)具有相應(yīng)文件區(qū),其至少保存與該主^4欠件配置對(duì) 應(yīng)的公用文件;和團(tuán)隊(duì)庫(kù),其{絲來(lái)自開發(fā)人員相應(yīng)工作空間的已被躬己的公用文件的不變片^。 團(tuán)隊(duì)庫(kù)可以進(jìn)一步提供開發(fā)人員工作空間的已射己文件的狀態(tài)。在一些實(shí)施例中,開發(fā)人員工作空間的文件區(qū)^4公用文件和專用文件的任意組合。在一個(gè)伊述實(shí)施例中,獲取對(duì)工作空間中文件或文件夾的引用,作為一類稱作WSReference的特歹i^于象。WSReference包括以下域-IsFileAreaReference:指示是對(duì)文件區(qū)中狀態(tài)的引用還是對(duì)庫(kù)中狀態(tài)的引用 的標(biāo)志。-U,:文件或文件夾的全局唯一標(biāo)踏(universally unique identifier) -WorkspaceUUID:工作空間的^^局。舉一標(biāo)識(shí)符-State: UUID版M者修改日期-Suffix:沒有UUID的專用文件區(qū)文件的鴻徑名后綴在每個(gè)客戶端機(jī)器上^#注冊(cè)表,其包含對(duì)于該機(jī)器中每個(gè)具有文件區(qū)的工作 空間的條目。每個(gè)條目包括工作空間的UUID和到該工作空間文件區(qū)根文件夾的鴻在 名。在團(tuán)隊(duì)庫(kù)中保留每個(gè)客戶端機(jī)器工作空間注冊(cè)表的^#。在工作空間文件區(qū)的每個(gè)文件夾中, 一個(gè)特殊的冊(cè)ID文^H呆存著被射e^j團(tuán)隊(duì) 庫(kù)的該文件夾中每個(gè)成員(文件或文件^)的冊(cè)ID。另夕卜,^^諸了已射己文件片^的 UUID,同樣與UUID—起^^諸了可被用于識(shí)別文件或文件夾的簡(jiǎn)單計(jì)算出的身份信息, 例如創(chuàng)建日期和大小。信息以這種形i(^^諸以致于當(dāng)利用標(biāo)準(zhǔn)文件系Mi^f乍^^多動(dòng) 文件夾或重命名文件夾內(nèi)的文件時(shí),UUID和版本信息不會(huì)丟失。
上述內(nèi)^it過下面對(duì)本發(fā)明示例實(shí)施例的詳細(xì)描述將是顯而易見的,如附圖所 示,附圖中相同的附圖標(biāo)^4示不同視圖中相同的部分。附圖不必按比例畫出,相 反將重點(diǎn)部分》1^詳細(xì)描^^發(fā)明的實(shí)施例上。圖1A-1B是實(shí)施本發(fā)明的計(jì)算才M欠件配置管理系統(tǒng)的示意圖,其中圖1A圖解了 服務(wù)器端,而圖1B圖解了客戶端。圖2是才剁乍本發(fā)明實(shí)施例的計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境的示意圖。圖3是圖2的網(wǎng)絡(luò)中一個(gè)計(jì)算機(jī)節(jié)點(diǎn)的方框圖。
具體實(shí)施方式
下面將描ii^發(fā)明的示例實(shí)施例。圖1A圖解了實(shí)施本發(fā)明的配置管理系統(tǒng)11。配置管理系統(tǒng)11提供主^^欠件程 序13的工作空間視圖和與主^4欠件程序13相關(guān)的各種信息。軟件程序13是由一個(gè) 或者多個(gè)人為因素15、 19、 21構(gòu)成的。每個(gè)人為因素15、 19、 21都有相應(yīng)版本,例如,V. la、 V. 3、 V. lb等。主^4欠件程序13的每個(gè)配置22^^]人為因素15、 19、 21相應(yīng)版本。圖1所示的主^^欠件程序13的配置22之一由人為因素15的版本V. la、 人為因素19的版本V. 3和人為因素21的版本V. lb構(gòu)成。主^^欠件程序13的其它 配置22^fM人為因素15、 19、 21的其它版本。將與人為因素15、 19、 21版^目關(guān)的信息^f諸^A為因素15、 19、 21的相應(yīng) 版本歷史表中。特別地,將變化集信息(某片脈所屬的變化集33)記^NJ應(yīng)的人為 因素版本歷史表17中。圖1A圖解了主^^欠件程序13的配置22,其具有人為因素 15的片林歷史表?xiàng)l目17a、人為因素19的版本歷史表?xiàng)l目17b和人為因素21的版 本歷史表?xiàng)l目17n??梢岳斫猓渲霉芾硐到y(tǒng)11為程序13的每個(gè)配置22##上述 信息。配置管理系統(tǒng)11使開發(fā)人員能夠產(chǎn)生主^M欠件禾i亭13的這些不同的配置22 并與它們一起工作(編輯、測(cè)試、重設(shè)計(jì)等)。每一個(gè)人為因素15、 19、 21都是由開 發(fā)人員所完成的工作的持久結(jié)果, 一般在諸如模型和源碼的文件系統(tǒng)中持續(xù)。"活動(dòng)" ^Uf]^MP宗由使用者(開發(fā)人員)所完成的工作的結(jié)果?;顒?dòng)的"變化集"33是由開 發(fā)人員4;Mti亥活動(dòng)對(duì)人為因素15、 19、 21產(chǎn)生的一組變化。"工作空間"23^^)來(lái) 限定開發(fā)人員的工作環(huán)境一一包^f發(fā)人員所需要的人為因素15、 19、 21和3P斜丸 行那些活動(dòng)的結(jié)果的變化集。工作空間23被稱為"接受"限定當(dāng)前的或者工作中的 配置22'的活動(dòng)變化集。再次聲明,軟件人為因素15、 19、 21的所有改變是在工作空間23a、 b、 c(統(tǒng) 稱23)的上下文中產(chǎn)生。每個(gè)開發(fā)人員或者團(tuán)隊(duì)成員^目應(yīng)客戶端機(jī)器50上有相應(yīng) 工作空間23 (圖lb)。每個(gè)工作空間23在所接受的集34中識(shí)別相應(yīng)變化集33,,所 接受的集34向工作空間的配置22,指示或者提供當(dāng)前正擬亍的邏輯改變。團(tuán)隊(duì)庫(kù)100保存由不同的開發(fā)人員通過登記用文件和文件夾來(lái)創(chuàng)建的文件和 文件夾的不變(不變的)版本,這些公用文件和文件^^開發(fā)人員已經(jīng)在他們的工作 空間23中相應(yīng)文件區(qū)27 (圖lb)中做過修改的任意公用文件和文件夾。團(tuán)隊(duì)庫(kù)100 還"R供開發(fā)人員的工作空間23的文件的射己狀態(tài)(checking-in state )。參照本發(fā)明的配置管理系統(tǒng)11中的客戶端側(cè)50 (圖IB),工作空間注冊(cè)表25 j轉(zhuǎn)于每個(gè)客戶端機(jī)器50上,其包含在該機(jī)器50中具有文件區(qū)27的每個(gè)工作空間 23的條目。每個(gè)條目包含工作空間23的UUID和到該工作空間23的文件區(qū)27的根 文件夾的5^圣名。每個(gè)客戶端機(jī)器50的工作空間注冊(cè)表25的^f襯W呆留在團(tuán)隊(duì)庫(kù) 100 (圖1A)中。件區(qū)27中有j幻。在工作空間23的文件區(qū)27中的每個(gè)文件夾37中,特殊的UUIDUUID。另外,務(wù)賭已射己文件i&^的UUID,以及可被用于識(shí)別文件或文件夾的簡(jiǎn)單 計(jì)算出的身份(identity)信息,例如創(chuàng)建日期和大小,與UUID ~~^^(諸。以這種 形^(^##信息以便當(dāng)利用標(biāo)準(zhǔn)文件系統(tǒng)#^乍^^多動(dòng)文件夾37或重命名文件夾內(nèi)的文 件時(shí),UUID和纟^M言息就不會(huì)丟失。在優(yōu)選實(shí)施例中,對(duì)工作空間23中的文件或文件夾的引用45(即,其文件區(qū)27) 被獲取為被稱作WSRef erence的一類特殊對(duì)象。WSReference包含以下域-IsFileAreaReference:指示是對(duì)文件區(qū)27中狀態(tài)的引用還是對(duì)團(tuán)隊(duì)庫(kù)100 中狀態(tài)的引用的標(biāo)志。-UUID:文件或文件夾的全局唯一標(biāo)i口vf尋-Workspace冊(cè)ID:工作空間23的全局唯一標(biāo)識(shí)符-State: X反本UUID或者〗務(wù)改曰期-Suffix:沒有UUID的文件區(qū)27的專用文件的蹈徑名后綴在所述引用45上支持以下函數(shù)。對(duì)函數(shù)的輸入是以括號(hào)關(guān)系進(jìn)行指示的。 -WSReference createWSReferenceFromFi1ePathname (Str ing) ^^l文件區(qū)27中到文件或文件夾(需要訪問該文件區(qū))的i^圣名在工作空間中 的文件區(qū)27中創(chuàng)建到工作空間23中該文件或文件夾的引用45。-WSReference createWSReferenceFromRepoPathname (String) 使用團(tuán)隊(duì)庫(kù)中到文件或文件夾(需要訪問團(tuán)隊(duì)庫(kù))的鴻4圣名創(chuàng)建對(duì)團(tuán)隊(duì)庫(kù)100中 工作空間23中的該文件或文件夾的引用45。-String getFilePathname(WSReference)獲取用于對(duì)文件或文件夾的引用45的、在文件區(qū)27中的^4U (需要訪問文件區(qū))。-String getRepoPathname(WSReference)獲取用于對(duì)文件或文件夾的引用45的、在團(tuán)隊(duì)庫(kù)100中的^^g (需要訪問團(tuán)隊(duì)庫(kù))。-WSReference getFileWSReference(WSReference)創(chuàng)建標(biāo)識(shí)文件區(qū)27中的文件的引用45 (如果識(shí)別了文件區(qū)中的文件,則返回 輸入WSReference)。-WSReference getRepoWSReference(WSReference)創(chuàng)建識(shí)別團(tuán)隊(duì)庫(kù)IOO中的文件的引用45 (如果識(shí)別了團(tuán)隊(duì)庫(kù)中的文件,則返回 輸入WSRef erence)。-Boolean hasSameState(WSReference)當(dāng)當(dāng)前由引用45標(biāo)識(shí)的文件或文件夾與創(chuàng)建引用45時(shí)的文件或文件夾具有相 同的爿犬態(tài)時(shí)返回真。這些函數(shù)以以下方式實(shí)現(xiàn)WSReference getWSReferenceFromFilePathname (String) WSRef erence. I sFileAreaRef erence被設(shè)置成真。WSReference. WorkspaceUUID被設(shè)置^J:戶端注冊(cè)表中的工作空間的UUID, 該工作空間的根文件區(qū)^4至名是一個(gè)字符串的前綴。WSReference. UUID被設(shè)置成在包^i亥文件的文件區(qū)中文件夾的UUID文件所 指定的文件或文件夾的UUID。如果UUID文件中該文件沒有UUID,則使用離該文件 最近的父文件夾的UUID,接著在WSReference. Suffix中保存來(lái)自該文件夾的這個(gè)文 件的相對(duì)i l4S名。WSReference. State是由文件或文件夾當(dāng)前所i4^反本的UUID,正如從UUID 文件所確定的;如果沒有片脈UUID是有效的(因?yàn)槲募形瓷銭Jij服務(wù)器),則#^諸 文件的修改曰期。WSReference. Suffix被設(shè)置成空串,除非它已經(jīng)被設(shè)置成如 WSReference. UUID中描述的計(jì)算結(jié)果。WSReference getWSReferenceFromRepoPathname(String) WSReference. IsFileAreaReference被設(shè)置成假。WSRef erence. WorkspaceUUID被設(shè)置成工作空間的UUID,該工作空間在庫(kù)中 的根文件夾^t^是一個(gè)字符串的前綴。WSRef erence. UUID被i殳置成文件或者文件夾的UUID,該文件或者文件夾在庫(kù) 中的位置由字符串指定。WSRef erence. State是由文件或文件夾當(dāng)前所i^f反本的UUID。WSRef erence. Suffix被設(shè)置成空串。String getFilePathname(WSReference)WSRef erence. WorkspaceUUID凈M^t^戶端機(jī)器注冊(cè)表中查找工作空間的條目。如果沒有找到相匹配的工作空間的條目,則返回空串。如果找到了工作空間的條目,起源于工作空間的文件區(qū)根文件夾內(nèi)文件樹的 UUID文件被掃描以尋找與WSRef erence. UUID相匹配的文件條目。如果沒有找到相匹配的文件條目,則空串被返回。如果找到了相匹配的文件條目,則構(gòu)建到該文件條目的3斜圣名,將 WSRef erence. Suf fix添加到踏^S名中,并且逸回結(jié)果的踏4圣名。String getRepoPathname(WSReference)如果WSRef erence. Suffix非空,則返回空串。在其UUID是WSReference. WorkspaceUUID的工作空間中為其而ID是 WSReference. UUID的文件查詢團(tuán)隊(duì)庫(kù)。如果沒有找到相匹配的文件,則返回空串。如果找到了相匹配的文件,則在該工作空間內(nèi)構(gòu)建并返回該文件的庫(kù)i^圣名。WSReference getFileWSReference (WSReference)如果WSReference. IsFileArea為真,則返回WSReference。否則,除了 IsFileArea域被設(shè)置成真^卜,創(chuàng)建并返回與自變量WSReference 具有相同域的新WSReference。WSReference getRepoWSReference (WSReference)如果WSReference. IsFileArea為^支,則返回WSReference。否則,除了 IsFi leArea域被設(shè)置成假^卜,創(chuàng)建并返回與自變量WSReference 具有相同域的新WSReference 。Boolean hasSameState(WSReference)如果WSReference. IsFileArea為假,則檢查WSReference. State。如果 WSReference. State是修改日期,則返回假。如果WSReference. State AJi林,則使 用在getR印oPathname中指定的算法在團(tuán)隊(duì)庫(kù)中查找WSReference的條目。如果找 到了條目,并且由該條目所選擇的版本的UUID是WSReference. State,則返回真; 否則,返回々支。如果WSReference. IsFileArea為真,則佳JD在getFilePathname中指定的算 法在UUID文件里查找該WSReference的條目。如果沒有找到這樣的條目,則返回假。如果文件條目具有片林UUID, WSReference. State ^f反本UUID并且兩片脈 UUID相匹配,則返回真。如果文件條目沒有版本UUID, WSReference. State ^J務(wù)改日期并且該文件的 修改日期與WSReference. State相同,則返回真。否則,返回假。相反,本發(fā)明^^M軟件配置管理系統(tǒng)中的統(tǒng)一引用。例如,統(tǒng)一引用典型地 需要客戶端指定工作空間以廢除統(tǒng)一引用,但A^I來(lái)廢除統(tǒng)一引用的客戶端層通常沒有訪問所述信息的權(quán)限。在本發(fā)明中,工作空間注冊(cè)表25已經(jīng)被添加到客戶端50 上,并且工作空間23 UUID已經(jīng)被添加到引用45中。正如在另外一個(gè)示例中,統(tǒng)一引用并未被設(shè)計(jì)成處理由文件區(qū)27和庫(kù)100產(chǎn)生 的雙命名空間。在本發(fā)明中,引用45具有添加的標(biāo)志以指示^^M哪種命名空間, 并且提供進(jìn)程以將其他命名空間創(chuàng)建到對(duì)應(yīng)的引用45。因此,引用標(biāo)志、使能在至少 文件區(qū)27命名空間和團(tuán)隊(duì)庫(kù)100命名空間之間和/或其他命名空間消除模棱兩可情 況稀譯。此外,統(tǒng)一引用不提供用于確定檢出文件的狀態(tài)是否已經(jīng)改變的機(jī)制,而本發(fā) 明中的引用45卻可以。M,統(tǒng)一引用不提供一種好的機(jī)制以引用在文件區(qū)27中還沒有被射EJ'j團(tuán)隊(duì) 庫(kù)100的專用文件31,而本發(fā)明中的引用45卻可以。進(jìn)一步地,本發(fā)明中的引用45既可以用在本地工作空間23中又可以用在服務(wù) 器60上,甚至當(dāng)包括本地工作空間23的機(jī)器(客戶端50)斷開于服務(wù)器60時(shí)。圖2圖解了可以在其中實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)網(wǎng)絡(luò)或類似的數(shù)字處理環(huán)境??蛻舳擞?jì)算機(jī)/設(shè)備50和服務(wù)器計(jì)算機(jī)60提供處理器、##器、#^亍應(yīng)用程序 的輸入/輸出設(shè)備或類似設(shè)備。客戶端計(jì)算才幾/i殳備50也可以通itit信網(wǎng)絡(luò)70鏈接 到其它計(jì)算設(shè)備,包括其它客戶端設(shè)備/過程50和服務(wù)器計(jì)算機(jī)60。通信網(wǎng)絡(luò)70 可以是遠(yuǎn)程訪問網(wǎng)絡(luò)、全球網(wǎng)絡(luò)(例如因特網(wǎng))、4H^界計(jì)算機(jī)城、局域或廣域網(wǎng) 絡(luò)、當(dāng)前使用相應(yīng)協(xié)議(TCP/IP,藍(lán)牙等)相互通信的網(wǎng)關(guān)的一部分。其它電子設(shè)備/計(jì)算機(jī)網(wǎng)絡(luò)結(jié)構(gòu)^Lit用。圖3是圖6計(jì)算機(jī)系統(tǒng)中計(jì)算機(jī)(例如客戶端處理器/設(shè)備50或服務(wù)器計(jì)算機(jī) 60)內(nèi)部結(jié)構(gòu)的圖。每個(gè)計(jì)算機(jī)50、 60包括系統(tǒng)總線79,其中總線是用于在計(jì)算機(jī) 或處理系統(tǒng)的組件之中的數(shù)據(jù)傳送的一組硬件線路。總線79從根本上iJL^連接計(jì)算 機(jī)系統(tǒng)中的不同元件(例如,處理器、磁盤^#器、^^諸器、輸入/輸出端口、網(wǎng)絡(luò) 端口等)的公用線管(conduit),其使能在元件之間的信息傳送。附屬于系統(tǒng)總線79 上的是I/0設(shè)備接口 82,用于將各種輸入和輸出設(shè)備(例如,^it、鼠標(biāo)、顯示器、 打印機(jī)、揚(yáng)聲器等)連接到計(jì)算機(jī)50、 60。網(wǎng)^l妄口 86允許該計(jì)算才;i^接到附屬于 網(wǎng)絡(luò)(例如,圖2中的網(wǎng)絡(luò)70)的各種其它設(shè)備。^#器90為用于實(shí)現(xiàn)本發(fā)明的實(shí)施 例(例如,以上詳細(xì)描述的團(tuán)隊(duì)庫(kù)IOO、工作空間注冊(cè)表25、工作空間23、文件區(qū) 27和文件引用45)的計(jì)算才M欠件指令92和數(shù)據(jù)94提供易失'^M諸器。磁盤##器 95為用于實(shí)現(xiàn)本發(fā)明的實(shí)施例的計(jì)算才M欠件指令92和數(shù)據(jù)94提供非易失性##。 中央處理器單元84也附屬于系統(tǒng)總線79并提供計(jì)算才;W旨令的^M亍。在另 一個(gè)實(shí)施例中,處理器進(jìn)程92和數(shù)據(jù)94是計(jì)算才財(cái)呈序產(chǎn)品(一般? 1用為 92),包4封十算機(jī)可讀介質(zhì)(例如,諸如一個(gè)或多個(gè)DVD-ROM、 CD-ROM、磁盤、磁帶 之類的可移動(dòng)^^諸介質(zhì)),所述計(jì)算機(jī)可讀介質(zhì)至少為本發(fā)明的系統(tǒng)提^""^分軟件 指令。計(jì)算才財(cái)呈序產(chǎn)品92可以由本領(lǐng)&議所周知的^^可合適的軟件安裝程序安裝。 在另一個(gè)實(shí)施例中,至少部分軟件指令也可以通過電纜、通信和/或無(wú)線連接下載。 在其它實(shí)施例中,本發(fā)明的程序是一種計(jì)算4A4呈序傳纟射言號(hào)產(chǎn)品107,其具體化為位 于傳#^質(zhì)中的傳#[言號(hào)(例如,無(wú)線電波、紅外波、-絲波、聲波或傳播于像因特 網(wǎng)的全球網(wǎng)絡(luò)或其它網(wǎng)絡(luò)的電必。這些載體介質(zhì)或信號(hào)至少為本發(fā)明進(jìn)程/程序92 提供"P分軟件指令。在可替換的實(shí)施例中,傳#制言號(hào)是模擬載波或傳#^質(zhì)所攜帶的數(shù)字信號(hào)。例 如,傳#^言號(hào)可以是在全球網(wǎng)絡(luò)(例如,因特網(wǎng))、電信網(wǎng)絡(luò)或其它網(wǎng)絡(luò)上傳播的數(shù) 字化的信號(hào)。在一個(gè)實(shí)施例中,傳^j言號(hào)是一段時(shí)間內(nèi)通過傳^^質(zhì)傳輸?shù)男盘?hào), 如在毫秒、秒、^^中或^A時(shí)間內(nèi)通過網(wǎng)絡(luò)以^^且方M送的用于軟件應(yīng)用的指令。 在另外的實(shí)施例中,計(jì)算才財(cái)呈序產(chǎn)品92的計(jì)算機(jī)可讀介質(zhì)是如上所述用于計(jì)算才財(cái)呈 序傳4釗言號(hào)產(chǎn)品的計(jì)算機(jī)系統(tǒng)50可以接收g (如通過接收傳^/h質(zhì)^H只別包含于 傳#^質(zhì)中的傳椒言號(hào))的傳#^質(zhì),。一4tt說(shuō),術(shù)語(yǔ)"載體介質(zhì)"或瞬態(tài)載體包含前述的瞬態(tài)信號(hào)、傳^f言號(hào)、傳 脅質(zhì)、賴介質(zhì)等。本發(fā)明可以采用完全硬件實(shí)施例的形式、完全軟件實(shí)施例的形式或包括硬件和13軟件元素兩者的實(shí)施例的形式。在優(yōu)選實(shí)施例中,本發(fā)明以軟件實(shí)現(xiàn),其包括但不 限于固件、常駐軟件、微碼等。此外,本發(fā)明還可以采用從提供被計(jì)算才A^任意指令^Vf亍系統(tǒng)^^或與W目關(guān) 的程序代碼的計(jì)算機(jī)可用介質(zhì)或計(jì)算機(jī)可讀介質(zhì)可存取的計(jì)算才財(cái)呈序產(chǎn)品的形式。 為了進(jìn)4刊苗述,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是4封可可以包含、保存、通信、 傳播或輸送被指令^f亍系統(tǒng)、裝置或設(shè)^i吏用或與^目關(guān)的程序的裝置。介質(zhì)可以是電子的、磁的、光學(xué)的、電磁的、紅外線的或半導(dǎo)體系統(tǒng)(或裝置或 設(shè)備)或傳^/h質(zhì)。計(jì)算機(jī)可讀介質(zhì)的示例包括半導(dǎo)體或固^^j諸器、磁帶、可移去計(jì)算才;W茲盤、隨機(jī)訪問^f諸器(RAM)、只讀^i諸器(R0M)、剛'fW茲盤和光盤。當(dāng)前光 盤的示例包括壓縮盤-只讀務(wù)賭器(CD-ROM)、壓縮盤-讀/寫(CD-R/W)和DVD。適于保存和/或扭^f呈序代碼的數(shù)據(jù)處理系統(tǒng)至少包括一個(gè)通過系統(tǒng)總線直才妄 或間^^^到^^諸器元件的處理器。^^渚器元件可以包括在程序代碼實(shí)際#1^亍期間 所采用的本;Nk^^渚器、大容量^^諸器和為減少在^Vf亍期間/人大容量^J諸器獲i^^/馬 的時(shí)間而提供至少部^^呈序代碼的臨時(shí)#^渚的高速緩存。輸入/輸出或I/0設(shè)備(包括但不限于MJ:、顯示器、指向設(shè)備等)可以直接或通 過插入I/O控制器耦合于系統(tǒng)。網(wǎng)絡(luò)適配器也可以耦合于系統(tǒng),以使數(shù)據(jù)處理系統(tǒng)能夠通過插入專用或公有網(wǎng) 絡(luò)耦合于其它數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印初威^^i殳備。調(diào)制解調(diào)器、電纜調(diào)制解調(diào) 器和以太網(wǎng)卡只是一些當(dāng)前可用的網(wǎng)絡(luò)適配器類型。盡管參照實(shí)施例脅示出和描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員將理解,在 不脫離所附權(quán)利要求限定的范圍的情況下,可以在其中做出形式和細(xì)節(jié)的各種改變。
權(quán)利要求
1、一種軟件配置管理系統(tǒng),包括每個(gè)開發(fā)人員的相應(yīng)工作空間,每個(gè)工作空間(i)將主體軟件配置限定為像是由相應(yīng)開發(fā)人員開發(fā)的,并且(ii)具有至少保存與主體軟件配置相對(duì)應(yīng)的公用文件的相應(yīng)文件區(qū);以及團(tuán)隊(duì)庫(kù),保存從開發(fā)人員的相應(yīng)工作空間中產(chǎn)生的、并且已被登記的公用文件的不變版本。
2、 如權(quán)利要求l所述的系統(tǒng),其中團(tuán)隊(duì)庫(kù)進(jìn)一步提供開發(fā)人員工作空間的已登 記文件的狀態(tài)。
3、 如權(quán)利要求l所述的系統(tǒng),進(jìn)一步包括用于指示與開發(fā)人員工作空間的文件 區(qū)和團(tuán)隊(duì)庫(kù).都有關(guān)的i^牛。 '
4、 如權(quán)利要求3所述的系統(tǒng),其中引用^^1標(biāo)志以使能在至少文件區(qū)命名空間 和團(tuán)隊(duì)庫(kù)命名空間之間的消除4對(duì)菱兩可情況轉(zhuǎn)3譯。
5、 如權(quán)利要求l所述的系統(tǒng),其中開發(fā)人員工作空間的文件區(qū)進(jìn)一步保存專用 文件。
6、 如權(quán)利要求l所述的系統(tǒng),其中開發(fā)人員工作空間的文件區(qū)進(jìn)一步包括^4 文件區(qū)的相應(yīng)文件的至少一個(gè)文件夾,每個(gè)文件夾包含ID文件,所述ID文件指示已 經(jīng)被射^'j團(tuán)隊(duì)庫(kù)中的文件夾的至少每個(gè)文件的全局唯一標(biāo)iW尋。
7、 如權(quán)利要求l所述的系統(tǒng),其中團(tuán)隊(duì)庫(kù)位于服務(wù)器上,而開發(fā)人員工作空間 位于相應(yīng)客戶端;以及每個(gè)客戶端具有使用所il^戶端上的文件區(qū)指示工作空間的工作空間注冊(cè)表。
8、 一種用于管理軟件配置的計(jì)算機(jī)方法,包括步驟擬目應(yīng)客戶端計(jì)算機(jī)中,為每個(gè)開發(fā)人員提供相應(yīng)工作空間,每個(gè)工作空間(i) 將主^^欠件配置限定為像是由相應(yīng)開發(fā)人員開發(fā)的,并且(ii)具有至少4絲與主體 軟件配置相對(duì)應(yīng)的公用文件的相應(yīng)文件區(qū);以及在服務(wù)器端計(jì)算機(jī)中,4絲從開發(fā)人員的相應(yīng)工作空間中產(chǎn)生、并且已被射己 的7>用文件的不變纟^。
9、 如權(quán)利要求8所述的方法,進(jìn)一步包括在服務(wù)器端計(jì)算機(jī),提供開發(fā)人員工 作空間的已躬己文件的狀態(tài)。
10、 如權(quán)利要求8所述的方法,進(jìn)一步包括^^]指示與開發(fā)人員工作空間的文件區(qū)和服務(wù)器計(jì)算才M晴關(guān)的文件的文件引用。
11、 如權(quán)利要求10所述的方法,其中每個(gè)文件引用^^]標(biāo)志來(lái)使能在不同的命 名空間之間的消除才莫棱兩可情況和翻譯。
12、 如權(quán)利要求8所述的方法,其中開發(fā)人員工作空間的文件區(qū)進(jìn)一步保存專用文件。
13、 如權(quán)利要求8所述的方法,進(jìn)一步包括為每個(gè)客戶端計(jì)算才;14錢該客戶端計(jì) 算機(jī)上的文件區(qū)^f示識(shí)工作空間。
14、 如權(quán)利要求8所述的方法,進(jìn)一步包括為每個(gè)文件區(qū)指示在服務(wù)器計(jì)算機(jī)上 已經(jīng)被射己的文件區(qū)的至少^"個(gè)文件的標(biāo)識(shí)全局唯一標(biāo)識(shí)符。
15、 一種用于管理軟件配置的計(jì)算機(jī)設(shè)備,包括工作空間裝置,為每個(gè)開發(fā)人員將主^^欠件配置限定為像是由相應(yīng)開發(fā)人員開發(fā)的;文件區(qū)裝置,為每個(gè)開發(fā)人員軟件配置提供至少保存與主^4欠件配置相對(duì)應(yīng)的 公用文件的相應(yīng)文件區(qū);團(tuán)隊(duì)庫(kù)裝置,用于^4從開發(fā)人員相應(yīng)工作空間產(chǎn)生的、已被躬己的公用文件 的不變;&^。
16、 如權(quán)利要求15所述的設(shè)備,其中團(tuán)隊(duì)庫(kù)裝置進(jìn)一步提供開發(fā)人員工作空間 的已射己文件的狀態(tài)。
17、 如權(quán)利要求15所述的設(shè)備,進(jìn)一步包括文件引用裝置,用于指示至少與文件區(qū)命名空間和團(tuán)隊(duì)庫(kù)裝置的4^名空間者睹關(guān)的文件。
18、 如權(quán)利要求17所述的設(shè)備,其中文件引用裝置^JI]標(biāo)志來(lái)使能文件區(qū)命名 空間和團(tuán)隊(duì)庫(kù)命名空間之間的消除才對(duì)菱兩可情^W^譯。
19、 如權(quán)利要求15所述的設(shè)備,進(jìn)一步包括標(biāo)識(shí)符裝置,用于為每個(gè)被射己到 團(tuán)隊(duì)庫(kù)裝置的文件區(qū)中至少每個(gè)文件標(biāo)識(shí)全局唯一標(biāo)識(shí)符。
全文摘要
軟件配置管理方法和設(shè)備為每個(gè)開發(fā)人員提供相應(yīng)工作空間。每個(gè)工作空間(i)將主體軟件配置限定為像是由相應(yīng)開發(fā)人員開發(fā)的,并且(ii)具有保存與項(xiàng)目軟件配置對(duì)應(yīng)的公用文件和專用文件的相應(yīng)文件區(qū)。團(tuán)隊(duì)庫(kù)保存從開發(fā)人員的相應(yīng)工作空間產(chǎn)生的、被登記到團(tuán)隊(duì)庫(kù)的公用文件的不變版本。團(tuán)隊(duì)庫(kù)還提供開發(fā)人員工作空間的已登記文件的狀態(tài)。與開發(fā)人員工作空間的文件區(qū)命名空間和團(tuán)隊(duì)庫(kù)的命名空間都相關(guān)地引用文件。在每個(gè)文件區(qū)使用的是已經(jīng)被登記到團(tuán)隊(duì)庫(kù)的文件區(qū)的至少每個(gè)文件的全局唯一標(biāo)識(shí)符。
文檔編號(hào)G06F9/44GK101251808SQ20071030628
公開日2008年8月27日 申請(qǐng)日期2007年11月16日 優(yōu)先權(quán)日2006年12月13日
發(fā)明者戴爾·M·拉博西爾, 托德·W·萊恩哈特, 杰弗里·M·克萊姆 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司