打開(kāi)的文件的歷史視圖的制作方法
【專利摘要】管理包括許多被獨(dú)立管理但相互依賴的子部件的電子實(shí)體的版本會(huì)是有挑戰(zhàn)性的。提供了與集成開(kāi)發(fā)環(huán)境一起使用的文件管理功能性,以便產(chǎn)生子部件之間關(guān)系的可視指示。就還原一個(gè)或多個(gè)文件的狀態(tài)就像文件內(nèi)容在歷史時(shí)間點(diǎn)時(shí)存在的那樣的能力而言,本文所述的方法提供了優(yōu)于源代碼控制系統(tǒng)和備份系統(tǒng)的改進(jìn)。該技術(shù)不需要用戶為了將來(lái)使用而事先預(yù)測(cè)在哪些時(shí)間點(diǎn)一個(gè)或多個(gè)文件的內(nèi)容狀態(tài)將是作為歷史時(shí)間點(diǎn)令人關(guān)注的。
【專利說(shuō)明】打開(kāi)的文件的歷史視圖
【背景技術(shù)】
[0001]本文所述的方法一般而言針對(duì)計(jì)算機(jī)文件的內(nèi)容的版本管理。電子實(shí)體可以包括彼此單獨(dú)地存儲(chǔ)和維護(hù)的文件內(nèi)容的聚集,并且這些文件中有一些可能是相互依賴的。這種實(shí)體的例子可以是用于軟件應(yīng)用的源代碼,其中源代碼跨多個(gè)源文件分布。另一個(gè)例子可以是跨包含用于多個(gè)團(tuán)隊(duì)或個(gè)人的任務(wù)列表和截止日期的文件分布的主計(jì)劃。另一個(gè)例子可以是章節(jié)在不同文件中單獨(dú)維護(hù)但是章節(jié)包含對(duì)其它章節(jié)中位置的交叉引用的書。對(duì)實(shí)體的改變可能需要對(duì)多個(gè)文件的修改,并且在所有這些修改完成之前實(shí)體可能處于不一致的狀態(tài)。
[0002]當(dāng)開(kāi)發(fā)或維護(hù)由存儲(chǔ)在獨(dú)立更新的部件,諸如文件,中的內(nèi)容組成的電子實(shí)體時(shí),一個(gè)常見(jiàn)的問(wèn)題是獲得該實(shí)體在時(shí)間上的歷史點(diǎn)的一致快照。雖然每個(gè)部件可以前進(jìn)通過(guò)一系列的狀態(tài),但是能夠可視化實(shí)體跨所有部件的整體狀態(tài)會(huì)是有價(jià)值的。例如,軟件開(kāi)發(fā)項(xiàng)目可以包括被編譯并鏈接到一起以便形成可執(zhí)行文件的多個(gè)源文件。一個(gè)源文件可以定義被駐留在不同源文件中的代碼調(diào)用的函數(shù)。如果這一個(gè)源文件被改變,以重定義該函數(shù),則調(diào)用所述函數(shù)的不同源文件中的代碼可能需要對(duì)應(yīng)的改變。因而,包含調(diào)用代碼的文件對(duì)定義函數(shù)的文件具有依賴性,盡管這些文件可以獨(dú)立地被更新。
[0003]許多部件文件可以隨著時(shí)間被打開(kāi)、編輯和關(guān)閉。用戶常常對(duì)文件工作并且決定他們想把他們的修改還原到較早的狀態(tài)-例如,他們對(duì)最后幾個(gè)小時(shí)的工作不滿意并且想從較早的點(diǎn)重新開(kāi)始。但是,把一組相關(guān)文件還原到歷史時(shí)間點(diǎn)會(huì)是耗時(shí)的并且容易出錯(cuò)。之前對(duì)這種過(guò)程提供工具支持的嘗試只允許一次查看對(duì)一個(gè)文件的改變并且一次還原對(duì)一個(gè)文件的改變。而且,還沒(méi)有容易的方式看到顯示單獨(dú)但相關(guān)的文件中的變化的時(shí)間線。
[0004]源代碼控制系統(tǒng)可以對(duì)跟蹤個(gè)別文件的版本提供支持,從而允許用戶把文件恢復(fù)到任何被跟蹤的版本。文件的新版本可以根據(jù)用戶的請(qǐng)求而創(chuàng)建,并且該版本被指定名字。有些此類系統(tǒng)還允許創(chuàng)建一組相關(guān)文件的命名快照,使得這組文件中的每個(gè)文件都能回滾到該命名快照版本。但是,為了回滾到快照版本,用戶在需要使用之前請(qǐng)求創(chuàng)建快照,并且用戶事先可能不知道他們將想要回滾到哪個(gè)狀態(tài)。
[0005]備份系統(tǒng)存儲(chǔ)文件,通過(guò)是以周期性的間隔或者根據(jù)請(qǐng)求,使得系統(tǒng)可以使用所存儲(chǔ)的文件把整個(gè)系統(tǒng)狀態(tài)還原到在執(zhí)行備份時(shí)的狀態(tài)。備份的文件可以包括系統(tǒng)中的全部文件,并且這些文件可能彼此不相關(guān)。已經(jīng)嘗試支持可視地確定應(yīng)當(dāng)使用哪個(gè)備份來(lái)恢復(fù)整個(gè)系統(tǒng),或者特定的文件或文件組應(yīng)當(dāng)從哪個(gè)備份來(lái)恢復(fù)。Apple的Time MachineBackup (時(shí)間機(jī)器備份)系統(tǒng)提供了允許查看文件夾的用戶接口,就好像穿越時(shí)間機(jī)器一樣。文件夾在任何時(shí)間點(diǎn)的外觀提供關(guān)于哪個(gè)備份包含哪些文件的線索。但是,雖然這種方法幫助用戶標(biāo)識(shí)特定文件的所需版本,但它不提供對(duì)理解相互依賴的文件之間關(guān)系的支持,無(wú)論它們存在于一個(gè)文件系統(tǒng)中還是分布式文件系統(tǒng)中。
[0006]所需要的是一種容易使用的直觀方式,來(lái)查看一組相關(guān)文件以確定該組相關(guān)文件應(yīng)當(dāng)在時(shí)間上在哪個(gè)快照恢復(fù),而無(wú)需依賴于用戶事先創(chuàng)建并命名的一致快照。
【發(fā)明內(nèi)容】
[0007]通過(guò)提供允許用戶查看并還原文件內(nèi)容的狀態(tài)就像文件內(nèi)容在任意時(shí)間點(diǎn)存在的那樣的用戶接口而無(wú)需事先為集合中的所有文件創(chuàng)建檢查點(diǎn),根據(jù)本發(fā)明各種實(shí)施例的系統(tǒng)和方法可以解決執(zhí)行文件管理的現(xiàn)有應(yīng)用中的缺陷。該用戶接口還可以提供包括更大實(shí)體的狀態(tài)的文件狀態(tài)之間關(guān)系的可視指示。例如,在實(shí)施例中,一組相關(guān)文件的圖可以由處理器顯示在計(jì)算機(jī)顯示器上,該圖為這組相關(guān)文件的每個(gè)文件繪出起始點(diǎn)、結(jié)束點(diǎn)以及一個(gè)或多個(gè)中間檢查點(diǎn)。起始點(diǎn)、結(jié)束點(diǎn)以及一個(gè)或多個(gè)中間檢查點(diǎn)中每個(gè)代表一個(gè)時(shí)間點(diǎn)。每個(gè)時(shí)間點(diǎn)與用于文件的文件內(nèi)容的狀態(tài)關(guān)聯(lián)。例如,當(dāng)前時(shí)間“現(xiàn)在”可以與文件的當(dāng)前狀態(tài)關(guān)聯(lián)。處理器可以接收指示比當(dāng)前時(shí)間早的特定時(shí)間點(diǎn)的輸入。處理器可以創(chuàng)建包括在接收到的特定時(shí)間點(diǎn)時(shí)這組相關(guān)文件的歷史文件內(nèi)容的環(huán)境。
【專利附圖】
【附圖說(shuō)明】
[0008]圖1根據(jù)本發(fā)明的實(shí)施例說(shuō)明了示出隨時(shí)間的文件狀態(tài)的條形圖。
[0009]圖2根據(jù)本發(fā)明的實(shí)施例說(shuō)明了用于指示每個(gè)文件的狀態(tài)要恢復(fù)的時(shí)間的快照線。
[0010]圖3a、3b和3c根據(jù)本發(fā)明的實(shí)施例說(shuō)明了歷史時(shí)間線上的時(shí)間點(diǎn)標(biāo)簽。
[0011]圖4根據(jù)本發(fā)明的實(shí)施例說(shuō)明了選擇歷史時(shí)間點(diǎn)。
[0012]圖5根據(jù)本發(fā)明的實(shí)施例說(shuō)明了查看處于特定時(shí)間點(diǎn)的文件的狀態(tài)。
[0013]圖6根據(jù)實(shí)施例說(shuō)明了與本文所述的技術(shù)關(guān)聯(lián)的高級(jí)步驟。
[0014]圖7根據(jù)本發(fā)明的實(shí)施例說(shuō)明了用來(lái)重新創(chuàng)建文件狀態(tài)的數(shù)據(jù)存儲(chǔ)。
[0015]圖8是根據(jù)本發(fā)明的實(shí)施例的產(chǎn)生文件狀態(tài)圖的流程圖。
[0016]圖9是根據(jù)本發(fā)明的實(shí)施例的重新創(chuàng)建在特定時(shí)間點(diǎn)被打開(kāi)的文件的環(huán)境的流程圖。
[0017]圖10是實(shí)施例可以在其上實(shí)現(xiàn)的計(jì)算機(jī)系統(tǒng)的框圖。
【具體實(shí)施方式】
[0018]許多軟件應(yīng)用包括執(zhí)行自定義文件管理的部件。一種此類軟件應(yīng)用的例子是集成開(kāi)發(fā)環(huán)境(IDE)。IDE為計(jì)算機(jī)編程人員提供支持軟件開(kāi)發(fā)的許多方面的工具,可以包括創(chuàng)作、修改、編譯、部署和調(diào)試軟件。作為例子,本文所公開(kāi)的發(fā)明的實(shí)施例被描述為由IDE執(zhí)行,但是這些方法可以讓任何軟件應(yīng)用用于執(zhí)行多個(gè)相互依賴的電子部件的內(nèi)容的版本控制。
[0019]項(xiàng)目有時(shí)候跨多個(gè)計(jì)算機(jī)文件存儲(chǔ)。對(duì)這些項(xiàng)目工作的用戶對(duì)這些可能相互依賴的文件進(jìn)行改變。對(duì)一個(gè)文件進(jìn)行改變可能需要對(duì)另一個(gè)文件的改變。用戶可以依賴于IDE來(lái)管理項(xiàng)目文件,并且IDE可以已經(jīng)被用來(lái)隨時(shí)間推移打開(kāi)、編輯和關(guān)閉許多文件。用戶常常對(duì)文件進(jìn)行改變,然后決定把他們的改變還原到較早的狀態(tài)-例如,他們對(duì)最后幾小時(shí)的工作不滿意并且想從較早的點(diǎn)重新開(kāi)始?;謴?fù)一個(gè)項(xiàng)目文件的狀態(tài)可能需要恢復(fù)其它相互依賴的文件的狀態(tài)。
[0020]本文所述的方法提供一種新的圖,該圖示出隨時(shí)間推移被打開(kāi)、編輯和關(guān)閉的文件的歷史。在一種實(shí)施例中,生成沿圖形的底部顯示時(shí)間線的圖形,該時(shí)間線在時(shí)間上從“現(xiàn)在”向后伸展。已經(jīng)被打開(kāi)的每個(gè)文件由在時(shí)間上在其被打開(kāi)的時(shí)間(起始點(diǎn))和被關(guān)閉的時(shí)間(結(jié)束時(shí)間)之間向后伸展的水平條表示,并且起始點(diǎn)和結(jié)束點(diǎn)在時(shí)間線上具有對(duì)應(yīng)的標(biāo)注的時(shí)間點(diǎn)。在其它實(shí)施例中,其它種類的圖可以被使用,其中圖中的每個(gè)對(duì)象代表一個(gè)文件并且指示其打開(kāi)、關(guān)閉和中間保存的時(shí)間。
[0021]圖1根據(jù)本發(fā)明的實(shí)施例說(shuō)明了示出隨時(shí)間推移的文件狀態(tài)的條形圖。該圖繪制為Y軸部分代表不同文件并且X軸代表時(shí)間線。條形圖的條可以與時(shí)間線平行地繪制。圖中每個(gè)條對(duì)應(yīng)于單個(gè)文件,并且占據(jù)Y軸相同部分的多個(gè)條可以代表被打開(kāi)和關(guān)閉多次的相同文件。更具體而言,在Y軸上處于相同高度的條可以代表相同文件,而處于不同高度的條可以代表不同文件。該圖可以顯示在特定時(shí)間段內(nèi)被使用的所有文件。在由示例圖100表示的時(shí)間段內(nèi),五個(gè)文件被打開(kāi)和關(guān)閉。文件通過(guò)名字來(lái)標(biāo)注并且它們的寬度指示它們被打開(kāi)的時(shí)間長(zhǎng)度。例如,條I1代表名為“File-A.txt”的文件。當(dāng)前時(shí)間(現(xiàn)在)是原點(diǎn),并且歷史時(shí)間向原點(diǎn)的左邊表示(較舊)。條內(nèi)的點(diǎn)線標(biāo)記指示何時(shí)對(duì)應(yīng)的文件被保存(即,點(diǎn)線相對(duì)于X軸定位,對(duì)應(yīng)于檢查點(diǎn)發(fā)生的時(shí)間)。用戶可以在任何時(shí)間點(diǎn)把鼠標(biāo)懸浮在任何條之上并且可以查看顯示在那個(gè)時(shí)間點(diǎn)的對(duì)應(yīng)文件狀態(tài)的附加Π。
[0022]圖2根據(jù)本發(fā)明的實(shí)施例說(shuō)明了用于指定每個(gè)文件的狀態(tài)要被檢查的時(shí)間的快照線。圖200把快照線210繪制為與時(shí)間線垂直的垂直短劃線,該垂直短劃線在相同的特定時(shí)間點(diǎn)與所有條相交。為了選擇所有文件的狀態(tài)要被檢查并且有可能恢復(fù)的時(shí)間,該垂直線可以沿著時(shí)間線向左或向右拖。在實(shí)施例中,用戶可以通過(guò)鍵盤或者通過(guò)用于選擇時(shí)間的任何其它機(jī)制輸入時(shí)間,并且IDE可以更新快照線的位置,以便在選定的時(shí)間點(diǎn)與文件相交。
[0023]圖3a、3b和3c根據(jù)本發(fā)明的實(shí)施例說(shuō)明了歷史時(shí)間線上的時(shí)間點(diǎn)標(biāo)簽。圖3a在歷史時(shí)間線上示出了利用時(shí)間戳標(biāo)注的特定點(diǎn)。在該例中,文件打開(kāi)、保存和關(guān)閉事件發(fā)生的時(shí)間被選作標(biāo)注的時(shí)間點(diǎn)。這些時(shí)間戳可以與文件事件關(guān)聯(lián)地存儲(chǔ)。在該圖中,最舊的時(shí)間點(diǎn)表示2012年4月21日并且最近的時(shí)間點(diǎn)表示2012年5月31日下午7:57。時(shí)間線可以按等比例,或者如該例中所示的,時(shí)間點(diǎn)可以不按等比例。在該例中,較近的時(shí)間點(diǎn)利用包括日期、小時(shí)和分鐘的時(shí)間標(biāo)注,而較舊的時(shí)間點(diǎn)可以只利用天和小時(shí)或者只用天來(lái)標(biāo)注。這種非線性時(shí)間標(biāo)度背后的構(gòu)思是最舊的時(shí)間點(diǎn)有可能是最不令人關(guān)注的,因此可以顯示較少的較舊檢查點(diǎn)。非線性標(biāo)度還允許顯示比利用線性標(biāo)度可能的更寬的時(shí)間段。
[0024]圖3b說(shuō)明了對(duì)用戶有意義的文字標(biāo)簽的使用。例如,如果文件是軟件開(kāi)發(fā)項(xiàng)目的部分并且項(xiàng)目生命周期在特定的生命周期里程碑要求對(duì)所有文件設(shè)置檢查點(diǎn)(保存狀態(tài)),則該里程碑的名字可能比檢查點(diǎn)發(fā)生的日期和時(shí)間更有意義。圖3b中所顯示的示例標(biāo)簽包括版本A、審查檢查點(diǎn)、單元測(cè)試檢查點(diǎn)、版本系統(tǒng)測(cè)試以及版本beta測(cè)試。當(dāng)事件發(fā)生時(shí),用戶可以被提示輸入或選擇標(biāo)簽以關(guān)聯(lián)事件。時(shí)間點(diǎn)標(biāo)簽還可以通過(guò)在時(shí)間線上選擇標(biāo)簽并且用新文字標(biāo)簽重新命名它來(lái)改變。
[0025]圖3c說(shuō)明了基于改變隨時(shí)間推移的數(shù)目和分布來(lái)選擇的相對(duì)時(shí)間標(biāo)簽的使用。例如,最右邊的時(shí)間點(diǎn)“-1小時(shí)”表示當(dāng)前時(shí)間之前一小時(shí)。雖然文件打開(kāi)、保存和關(guān)閉事件的實(shí)際時(shí)間可以被用來(lái)確定顯示哪些相對(duì)時(shí)間點(diǎn),但是標(biāo)注的時(shí)間點(diǎn)不需要與文件事件發(fā)生的時(shí)間一致。在實(shí)施例中,在圖中由垂直線表示的起始點(diǎn)、結(jié)束點(diǎn)和中間保存點(diǎn)可以每個(gè)都利用對(duì)應(yīng)事件發(fā)生的時(shí)間附加地標(biāo)注。在另一種實(shí)施例中,文件事件發(fā)生的實(shí)際時(shí)間可以在光標(biāo)指向或者選擇條內(nèi)的垂直線時(shí)顯示。
[0026]用戶可以選擇任意的歷史時(shí)間點(diǎn)并且檢查在選定的時(shí)間點(diǎn)時(shí)存儲(chǔ)在個(gè)別文件中的內(nèi)容的狀態(tài)。圖4根據(jù)本發(fā)明的實(shí)施例說(shuō)明了選擇歷史時(shí)間點(diǎn)。用戶可以跨該圖滑動(dòng)垂直線,以指示文件狀態(tài)是期望的時(shí)間。
[0027]圖5根據(jù)本發(fā)明的實(shí)施例說(shuō)明了查看文件在特定時(shí)間點(diǎn)的狀態(tài)。在實(shí)施例中,文件和期望的時(shí)間點(diǎn)可以基于光標(biāo)500的位置來(lái)選擇。例如,文件可以通過(guò)在表示該文件的條上定位光標(biāo)來(lái)選擇。類似地,期望的時(shí)間點(diǎn)可以基于光標(biāo)相對(duì)于時(shí)間線的位置來(lái)選擇。光標(biāo)位置可以通過(guò)懸浮光標(biāo)或通過(guò)點(diǎn)擊鼠標(biāo)按鈕來(lái)確定。在備選實(shí)施例中,快照線的位置可以為被檢查的任何文件確定時(shí)間點(diǎn)。在實(shí)施例中,文件可以通過(guò)把文件名輸入文字框或者從下拉或彈出菜單選擇文件名來(lái)選擇。
[0028]一旦期望的時(shí)間點(diǎn)和文件被選擇,在選定的時(shí)間點(diǎn)被選文件中的內(nèi)容的狀態(tài)就可以顯示。圖5中的例子顯示鼠標(biāo)懸浮在表示感興趣的文件File-C.txt的條上。選定時(shí)間點(diǎn)時(shí)的文件內(nèi)容可以在彈出窗口 510中給出。在實(shí)施例中,該文件在該時(shí)間點(diǎn)的整個(gè)內(nèi)容可以獨(dú)立于文件的當(dāng)前狀態(tài)而顯示。在另一種實(shí)施例中,文件內(nèi)容的顯示可以包括歷史版本和當(dāng)前版本之間的內(nèi)容的聯(lián)合并且指示內(nèi)容在歷史版本和當(dāng)前版本之間如何變化。標(biāo)識(shí)文件版本之間的差別的方式可以包括,例如,使用顏色、下劃線和/或刪除線記號(hào)來(lái)標(biāo)識(shí)改變的元素。在圖5中,陰影區(qū)域可以指示從選定的歷史時(shí)間點(diǎn)起改變的內(nèi)容。在還有另一種實(shí)施例中,只有歷史狀態(tài)和當(dāng)前狀態(tài)之間的差別被顯示,并且歷史版本和當(dāng)前版本共同的內(nèi)容可以不顯示。
[0029]用戶可以在時(shí)間點(diǎn)審查某些文件的狀態(tài),以驗(yàn)證已經(jīng)選擇了正確的時(shí)間點(diǎn)。一旦經(jīng)過(guò)驗(yàn)證,用戶就可以請(qǐng)求創(chuàng)建其中所有文件都還原到它們?cè)谠撨x定時(shí)間點(diǎn)所具有的狀態(tài)的環(huán)境。例如,參考圖4,如果用戶請(qǐng)求基于通過(guò)快照線的位置選擇的時(shí)間點(diǎn)創(chuàng)建環(huán)境,則該環(huán)境將包括File-A.txt被打開(kāi)的版本、在其第一次保存之后的File-B.txt和剛要關(guān)閉之前的File-C.txt ο文件File-D.txt和File-E.txt在該環(huán)境中將不存在,因?yàn)樗鼈冊(cè)?/29/1213:00 和 5/30/1210:17 之間沒(méi)有打開(kāi)。
[0030]在實(shí)施例中,在檢查點(diǎn)之間,例如在打開(kāi)和保存之間或者在保存之間,對(duì)文件進(jìn)行的改變將不在狀態(tài)中反映。每個(gè)文件的狀態(tài)將是在它最后打開(kāi)或保存時(shí)的狀態(tài)。保存一個(gè)或多個(gè)文件的內(nèi)容可以由用戶觸發(fā)(用戶啟動(dòng)的)或者可以由IDE中的定時(shí)器觸發(fā)。在實(shí)施例中,每個(gè)條中點(diǎn)狀保存線可以表示用戶啟動(dòng)的保存。用戶啟動(dòng)的保存可以保存?zhèn)€別文件或者可以在相同的時(shí)間點(diǎn)保存所有文件。雖然IDE可以順序地迭代通過(guò)文件,以保存多個(gè)文件,并且因此,跨文件的實(shí)際保存時(shí)間可以不同,但是IDE可以指定共同的時(shí)間點(diǎn)作為用于集合中每個(gè)文件的保存點(diǎn)。此外,IDE可以在用戶啟動(dòng)的保存之間自動(dòng)地保存文件的快照。自動(dòng)快照可以在條內(nèi)利用相同的點(diǎn)線、利用某種其它標(biāo)記指示,或者根本不指示。于是,文件在特定時(shí)間點(diǎn)的狀態(tài)可以是從上個(gè)檢查點(diǎn)起的文件的狀態(tài),不管是用戶還是IDE啟動(dòng)了保存。
[0031]圖6根據(jù)實(shí)施例說(shuō)明了與本文所述的技術(shù)關(guān)聯(lián)的高級(jí)步驟。在步驟610中,與特定時(shí)間段關(guān)聯(lián)的文件狀態(tài)的圖被生成并顯示。在步驟620中,IDE接收指示期望時(shí)間點(diǎn)的用戶輸入。響應(yīng)于接收期望的時(shí)間點(diǎn),快照線被重畫,以便在期望的時(shí)間點(diǎn)與時(shí)間線相交。在步驟630中,可以創(chuàng)建包括處于期望時(shí)間點(diǎn)時(shí)的狀態(tài)的文件的新環(huán)境。
[0032]為了實(shí)現(xiàn)這些高級(jí)步驟,可以使用繪圖環(huán)境和歷史數(shù)據(jù)的存儲(chǔ)。繪圖環(huán)境最基本的是具有在其上繪制任意線條和文字的圖形計(jì)算機(jī)用戶接口。數(shù)據(jù)存儲(chǔ)可以包含由IDE打開(kāi)的所有文件的列表、每個(gè)文件打開(kāi)和關(guān)閉的時(shí)間,以及當(dāng)文件打開(kāi)時(shí)在時(shí)間上各個(gè)點(diǎn)的狀態(tài)。IDE可以包括截獲文件的打開(kāi)、關(guān)閉和保存的控制機(jī)制。當(dāng)這些事件之一發(fā)生時(shí),與事件關(guān)聯(lián)的數(shù)據(jù)可以放到用于那個(gè)文件的數(shù)據(jù)存儲(chǔ)中。
[0033]圖7根據(jù)本發(fā)明的實(shí)施例示出了為重新創(chuàng)建文件狀態(tài)而存儲(chǔ)的示例數(shù)據(jù)。事件日志700是文件打開(kāi)和文件關(guān)閉事件的時(shí)間排序列表。事件日志700可以用于確定在時(shí)間上任何點(diǎn)哪些文件打開(kāi)以及用于確定如何在時(shí)間線上繪圖每個(gè)文件。在本發(fā)明的實(shí)施例中,與事件日志700分離且不同的保存事件列表710可以用于記錄每個(gè)文件的內(nèi)容被保存時(shí)的時(shí)間。在以上給出的給所有文件一起設(shè)置檢查點(diǎn)的例子中,選擇具有代表性的時(shí)間點(diǎn),并且所有文件都將在保存事件列表中以這個(gè)相同的具有代表性的時(shí)間記錄。
[0034]在實(shí)施例中,事件日志700和事件保存列表710可以包括用于存儲(chǔ)與事件關(guān)聯(lián)的文字標(biāo)簽的附加列。
[0035]每個(gè)文件保存時(shí)的狀態(tài)可以存儲(chǔ)在本文中被稱為文件狀態(tài)數(shù)據(jù)存儲(chǔ)720的還有另一個(gè)數(shù)據(jù)存儲(chǔ)中。當(dāng)對(duì)文件的修改被保存時(shí),重構(gòu)那個(gè)時(shí)間點(diǎn)時(shí)的文件狀態(tài)所需的信息保存在文件狀態(tài)數(shù)據(jù)存儲(chǔ)720中。在實(shí)施例中,文件內(nèi)容的整個(gè)拷貝可以被存儲(chǔ)。在備選實(shí)施例中,從上個(gè)檢查點(diǎn)起所進(jìn)行的改變可以寫入文件狀態(tài)數(shù)據(jù)存儲(chǔ)720。在實(shí)施例中,事件日志700和保存事件列表710可以合并到單個(gè)時(shí)間排序列表中。
[0036]當(dāng)用戶請(qǐng)求查看相關(guān)文件的圖時(shí),確定文件狀態(tài)將在其上顯示的歷史時(shí)間段。該歷史時(shí)間段是將由圖的時(shí)間線表示的從當(dāng)前時(shí)間向后的時(shí)間量。歷史時(shí)間段可以作為輸入從用戶接收、可以在IDE中配置,或者可以基于考慮至少存儲(chǔ)在事件日志中的事件數(shù)目和包括這些事件的時(shí)間段的規(guī)則動(dòng)態(tài)確定。圖8是根據(jù)本發(fā)明的實(shí)施例說(shuō)明文件狀態(tài)圖產(chǎn)生的流程圖。事件日志可以按時(shí)間順序讀取,從該圖表示的時(shí)間段開(kāi)始之后的第一個(gè)時(shí)間條目開(kāi)始。例如,基于圖7中所示的示例數(shù)據(jù),如果當(dāng)前時(shí)間是下午3:30并且圖要表示在同一天更早的上午10:00開(kāi)始的文件狀態(tài),則從事件日志讀取的第一個(gè)條目將是在上午10:01發(fā)生的事件。在步驟810中,下一個(gè)事件日志條目被讀取,包括時(shí)間、事件類型和文件名。在步驟820中,如果事件的類型是打開(kāi)文件事件,則在步驟830中,創(chuàng)建表示這個(gè)文件的新的條,該條的左側(cè)相對(duì)于X軸繪制,對(duì)應(yīng)于文件被打開(kāi)的時(shí)間。如果事件不是打開(kāi)文件事件,則在步驟840中,事件被測(cè)試,以驗(yàn)證它是否是關(guān)閉文件事件。如果事件是關(guān)閉文件事件,則在步驟850中,用于這個(gè)文件的條通過(guò)在從該關(guān)閉事件讀取的時(shí)間點(diǎn)繪制條的右側(cè)而完成,并且該條的左側(cè)和右側(cè)被連接,以形成矩形條的頂部和底部。在由圖表示的時(shí)間段內(nèi)發(fā)生的保存文件事件被讀取,并且可以在條中在與保存發(fā)生的時(shí)間點(diǎn)成一直線的位置畫線。
[0037]快照線可以最初在配置的位置繪制,諸如在時(shí)間線的中間、在快照線被用來(lái)請(qǐng)求檢查歷史文件內(nèi)容或創(chuàng)建歷史環(huán)境的最后一個(gè)時(shí)間點(diǎn),或者在表示從當(dāng)前時(shí)間開(kāi)始過(guò)去某個(gè)時(shí)間量的時(shí)間點(diǎn)。
[0038]—旦用戶肯定地選擇了感興趣的時(shí)間點(diǎn),例如通過(guò)把快照線滑動(dòng)到感興趣的時(shí)間點(diǎn),用戶就可以指示要審查的文件。被選文件的狀態(tài)的指示可以通過(guò)在保存事件列表中查找感興趣的時(shí)間點(diǎn)來(lái)檢索和顯示。保存事件列表可以通過(guò)時(shí)間加索引。對(duì)應(yīng)于用于期望文件的感興趣時(shí)間點(diǎn)的保存列表?xiàng)l目可以被找出,并且文件參考可以被用來(lái)檢索所保存的文件狀態(tài)。基于所保存的文件狀態(tài),文件的狀態(tài)可以重新創(chuàng)建。在實(shí)施例中,代替通過(guò)時(shí)間加索引或者除此之外,保存事件列表可以通過(guò)文字標(biāo)簽加索引。
[0039]圖9是根據(jù)本發(fā)明的實(shí)施例的重新創(chuàng)建在特定時(shí)間點(diǎn)被打開(kāi)的文件的環(huán)境的流程圖。在步驟910中,IDE確定哪些文件在特定的時(shí)間點(diǎn)打開(kāi)。事件日志中的對(duì)應(yīng)于該特定時(shí)間點(diǎn)的條目的位置被用作起始位置。對(duì)于相關(guān)文件組中的每個(gè)文件,日志條目可以在時(shí)間上向后搜索,以找出對(duì)該文件最后發(fā)生的事件。如果最后的事件是打開(kāi)事件,則文件被打開(kāi),而如果最后的事件是關(guān)閉事件,則文件被關(guān)閉。在步驟920中,對(duì)于每個(gè)打開(kāi)的文件,在保存事件列表中標(biāo)識(shí)特定時(shí)間點(diǎn)之前的最后的保存事件條目。在步驟930中,利用保存事件條目中的參考,文件狀態(tài)可以利用來(lái)自文件狀態(tài)數(shù)據(jù)存儲(chǔ)的保存的文件狀態(tài)信息來(lái)確定。
[0040]圖10說(shuō)明了可以用來(lái)實(shí)現(xiàn)本文所述方法的計(jì)算機(jī)系統(tǒng)的實(shí)施例。如圖10中所說(shuō)明的計(jì)算機(jī)系統(tǒng)可以作為之前描述的系統(tǒng)的部分結(jié)合并且可以用來(lái)執(zhí)行之前所述的方法。例如,計(jì)算機(jī)系統(tǒng)1000可以執(zhí)行執(zhí)行文件管理的應(yīng)用、圖形用戶接口、軟件開(kāi)發(fā)環(huán)境。計(jì)算機(jī)系統(tǒng)1000可以訪問(wèn)存儲(chǔ)結(jié)構(gòu),諸如存儲(chǔ)結(jié)構(gòu)700、710和720。如本文所述,圖10提供了可以執(zhí)行由各種實(shí)施例所提供方法的計(jì)算機(jī)系統(tǒng)1000的一種實(shí)施例的示意性說(shuō)明。應(yīng)當(dāng)指出,圖10僅僅是要提供各種部件的一般化說(shuō)明,這些部件中任何一個(gè)或全部可以適當(dāng)?shù)乇焕谩R虼?,圖10廣義地說(shuō)明了個(gè)別系統(tǒng)元件可以如何以相對(duì)獨(dú)立或相對(duì)更集成的方式實(shí)現(xiàn)。
[0041]計(jì)算機(jī)系統(tǒng)1000示為包括可以經(jīng)總線1005電耦合(或者可以適當(dāng)?shù)匾詣e的方式通信)的硬件元件。硬件元件可以包括一個(gè)或多個(gè)處理器1010,包括但不限于一個(gè)或多個(gè)通用處理器和/或一個(gè)或多個(gè)專用處理器(諸如數(shù)字信號(hào)處理芯片、圖形加速處理器等);一個(gè)或多個(gè)輸入設(shè)備1015,可以包括但不限于鼠標(biāo)、鍵盤等;以及一個(gè)或多個(gè)輸出設(shè)備1020,可以包括但不限于顯示設(shè)備、打印機(jī)等。
[0042]計(jì)算機(jī)系統(tǒng)1000還可以包括一個(gè)或多個(gè)非暫時(shí)性存儲(chǔ)設(shè)備1025 (和/或與之通信),非暫時(shí)性存儲(chǔ)設(shè)備1025可以包括但不限于本地和/或網(wǎng)絡(luò)可訪問(wèn)的儲(chǔ)存器,和/或可以包括但不限于盤驅(qū)動(dòng)器、驅(qū)動(dòng)器陣列、光學(xué)存儲(chǔ)設(shè)備、諸如隨機(jī)存取存儲(chǔ)器(“RAM”)和/或只讀存儲(chǔ)器(“ROM”)的固態(tài)存儲(chǔ)設(shè)備,這些存儲(chǔ)設(shè)備可編程、可閃存更新等。這種設(shè)存儲(chǔ)備可以配置為實(shí)現(xiàn)任何適當(dāng)?shù)臄?shù)據(jù)存儲(chǔ),包括但不限于各種文件系統(tǒng)、數(shù)據(jù)庫(kù)結(jié)構(gòu)等。
[0043]計(jì)算機(jī)系統(tǒng)1000還可以包括通信子系統(tǒng)1030,這可以包括但不限于調(diào)制解調(diào)器、網(wǎng)卡(無(wú)線或有線)、紅外線通信設(shè)備、無(wú)線通信設(shè)備和/或芯片集(諸如Bluetooth?設(shè)備、802.11設(shè)備、WiFi設(shè)備、WiMax設(shè)備、蜂窩通信設(shè)施等),等等。通信子系統(tǒng)1030可以允許數(shù)據(jù)與網(wǎng)絡(luò)(僅舉一個(gè)例子,諸如以下所述的網(wǎng)絡(luò))、其它計(jì)算機(jī)系統(tǒng)和/或本文所述的任何其它設(shè)備交換。在許多實(shí)施例中,計(jì)算機(jī)系統(tǒng)1000還將包括工作存儲(chǔ)器1035,如上所述,這可以包括RAM或ROM設(shè)備。
[0044]計(jì)算機(jī)系統(tǒng)1000還可以包括軟件元件,當(dāng)前示為位于工作存儲(chǔ)器1035中,包括操作系統(tǒng)1040、設(shè)備驅(qū)動(dòng)器、可執(zhí)行庫(kù)和/或其它代碼,諸如一個(gè)或多個(gè)應(yīng)用程序1045,其中應(yīng)用程序可以包括由各種實(shí)施例提供的計(jì)算機(jī)程序,和/或可以設(shè)計(jì)成實(shí)現(xiàn)由其它實(shí)施例提供的方法和/或配置由其它實(shí)施例提供的系統(tǒng),如本文所述。僅僅作為例子,關(guān)于以上討論的方法所描述的一個(gè)或多個(gè)過(guò)程可以實(shí)現(xiàn)為可由計(jì)算機(jī)(和/或計(jì)算機(jī)內(nèi)的處理器)執(zhí)行的代碼和/或指令;于是,在一方面,這種代碼和/或指令可以被用來(lái)配置和/或修改通用計(jì)算機(jī)(或其它設(shè)備),以執(zhí)行根據(jù)所述方法的一個(gè)或多個(gè)操作。
[0045]這些指令和/或代碼的集合可以存儲(chǔ)在非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上,諸如上述存儲(chǔ)設(shè)備1025。在有些情況下,存儲(chǔ)介質(zhì)可以結(jié)合在計(jì)算機(jī)系統(tǒng),諸如計(jì)算機(jī)系統(tǒng)1000,之中。在其它實(shí)施例中,存儲(chǔ)介質(zhì)可以與計(jì)算機(jī)系統(tǒng)分離(例如,可拆卸介質(zhì),諸如光盤),和/或在安裝包中提供,使得存儲(chǔ)介質(zhì)可以被用來(lái)利用存儲(chǔ)在其上的指令/代碼編程、配置和/或修改通用計(jì)算機(jī)。這些指令可以采取由計(jì)算機(jī)系統(tǒng)1000可執(zhí)行的可執(zhí)行代碼的形式,和/或可以采取源和/或可安裝代碼的形式,當(dāng)在計(jì)算機(jī)系統(tǒng)1000上編譯和/或安裝時(shí)(例如,利用任意各種一般可獲得的編譯器、安裝程序、壓縮/解壓縮實(shí)用程序等),則采用可執(zhí)行代碼的形式。
[0046]對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō)將很顯然,可以根據(jù)具體需求進(jìn)行實(shí)質(zhì)性的變化。例如,定制的硬件也可以使用,和/或特定的元件可以在硬件、軟件(包括可移植軟件,諸如applet等),或者二者都使用。另外,可以采用到諸如網(wǎng)絡(luò)輸入/輸出設(shè)備的其它計(jì)算設(shè)備的連接。
[0047]如以上所提到的,在一方面,有些實(shí)施例可以采用計(jì)算機(jī)系統(tǒng)(諸如計(jì)算機(jī)系統(tǒng)1000)來(lái)執(zhí)行根據(jù)本發(fā)明各種實(shí)施例的方法。根據(jù)一組實(shí)施例,此類方法的一些或全部過(guò)程由計(jì)算機(jī)系統(tǒng)1000響應(yīng)于處理器1010執(zhí)行包含在工作存儲(chǔ)器1035中的一條或多條指令的一個(gè)或多個(gè)序列(這些指令可以結(jié)合到操作系統(tǒng)1040和/或其它代碼中,諸如應(yīng)用程序1045)而執(zhí)行。這種指令可以從另一計(jì)算機(jī)可讀介質(zhì),諸如一個(gè)或多個(gè)存儲(chǔ)設(shè)備1025,讀到工作存儲(chǔ)器1035中。僅僅作為例子,包含在工作存儲(chǔ)器1035中的指令序列的執(zhí)行可能造成處理器1010執(zhí)行本文所述方法的一個(gè)或多個(gè)過(guò)程。
[0048]如在本文所使用的,術(shù)語(yǔ)“機(jī)器可讀介質(zhì)”和“計(jì)算機(jī)可讀介質(zhì)”指參與提供使機(jī)器以特殊方式操作的數(shù)據(jù)的任何介質(zhì)。在利用計(jì)算機(jī)系統(tǒng)1000實(shí)現(xiàn)的實(shí)施例中,各種計(jì)算機(jī)可讀介質(zhì)可以參與向處理器1010提供指令/代碼用于執(zhí)行和/或可以用來(lái)存儲(chǔ)和/或攜帶此類指令代碼。在許多實(shí)現(xiàn)中,計(jì)算機(jī)可讀介質(zhì)是物理的和/或有形的存儲(chǔ)介質(zhì)。這種介質(zhì)可以采取非易失性介質(zhì)或易失性介質(zhì)的形式。非易失性介質(zhì)包括例如光和/或磁盤,諸如存儲(chǔ)設(shè)備1025。易失性介質(zhì)包括但不限于動(dòng)態(tài)存儲(chǔ)器,諸如工作存儲(chǔ)器1035。
[0049]物理的和/或有形的計(jì)算機(jī)可讀介質(zhì)的常見(jiàn)形式包括例如軟盤、柔性盤、硬盤、磁帶或者任何其它磁性介質(zhì),CD-ROM、任何其它光學(xué)介質(zhì),穿孔卡片、紙帶、任何其它具有孔模式的物理介質(zhì),RAM、PROM、EPROM、FLASH-EPROM、任何其它存儲(chǔ)器芯片或盒式磁帶,或者計(jì)算機(jī)可以從其讀取指令和/或代碼的任何其它介質(zhì)。
[0050]各種形式的計(jì)算機(jī)可讀介質(zhì)可以參與把一條或多條指令的一個(gè)或多個(gè)序列運(yùn)送到處理器1010供執(zhí)行。僅僅作為例子,指令可以最初在遠(yuǎn)程計(jì)算機(jī)的磁盤和/或光盤上攜帶。遠(yuǎn)程計(jì)算機(jī)可以把指令加載到其動(dòng)態(tài)存儲(chǔ)器中并且把指令作為信號(hào)經(jīng)傳輸介質(zhì)發(fā)送,以便由計(jì)算機(jī)系統(tǒng)1000接收和/或執(zhí)行。
[0051]通信子系統(tǒng)1030(和/或其部件)一般將接收信號(hào),并且然后總線1005可以把信號(hào)(和/或由這些信號(hào)攜帶的數(shù)據(jù)、指令等)運(yùn)送到工作存儲(chǔ)器1035,處理器1010從工作存儲(chǔ)器1035檢索并執(zhí)行指令。由工作存儲(chǔ)器1035接收的指令可以可選地在被處理器1010執(zhí)行之前或之后存儲(chǔ)在非暫時(shí)性存儲(chǔ)設(shè)備1025上。
[0052]以上所討論的方法、系統(tǒng)和設(shè)備是例子。各種配置可以適當(dāng)?shù)芈匀?、代替或添加各種過(guò)程或部件。例如,在備選配置中,方法可以按與所述不同的次序執(zhí)行,和/或各個(gè)階段可以被添加、略去和/或組合。而且,關(guān)于某些配置所述的特征可以在各種其它配置中組合。配置的不同方面和元件可以以類似的方式組合。而且,技術(shù)在發(fā)展并且,因此,許多元件是例子并且不限制本公開(kāi)內(nèi)容或權(quán)利要求的范圍。
[0053]在描述中給出了具體的細(xì)節(jié),以提供對(duì)示例配置(包括實(shí)現(xiàn))的透徹理解。但是,配置沒(méi)有這些具體細(xì)節(jié)也可以實(shí)踐。例如,眾所周知的電路、過(guò)程、算法、結(jié)構(gòu)和技術(shù)沒(méi)有示出不必要的細(xì)節(jié),以避免模糊配置。這種描述僅僅提供示例配置,而不限制權(quán)利要求的范圍、適用性或配置。更確切地說(shuō),之前對(duì)配置的描述將為本領(lǐng)域技術(shù)人員提供用于實(shí)現(xiàn)所述技術(shù)的能夠操作的描述(enabling descript1n)。在不背離本公開(kāi)內(nèi)容主旨或范圍的情況下,可以對(duì)元件的功能和布置進(jìn)行各種變化。
[0054]而且,配置可以描述為被繪制為流程圖或框圖的過(guò)程。雖然每個(gè)配置都把操作描述為順序過(guò)程,但是許多操作可以并行地或者同時(shí)執(zhí)行。此外,操作的次序可以重新布置。過(guò)程可以具有圖中不包括的附加步驟。此外,方法的例子可以由硬件、軟件、固件、中間件、微代碼、硬件描述語(yǔ)言或者其任意組合來(lái)實(shí)現(xiàn)。當(dāng)在軟件、固件、中間件或微代碼中實(shí)現(xiàn)時(shí),執(zhí)行必要任務(wù)的程序代碼或代碼片段可以存儲(chǔ)在諸如存儲(chǔ)介質(zhì)的非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)中。過(guò)程可以執(zhí)行所述任務(wù)。
[0055]根據(jù)一種實(shí)施例,提供了一種裝置,包括:用于在計(jì)算機(jī)顯示器上顯示一組相關(guān)文件的圖的單元,該圖為這組相關(guān)文件的每個(gè)文件繪出起始點(diǎn)、結(jié)束點(diǎn)以及一個(gè)或多個(gè)中間檢查點(diǎn),其中起始點(diǎn)、結(jié)束點(diǎn)以及一個(gè)或多個(gè)中間檢查點(diǎn)中每個(gè)代表一個(gè)時(shí)間點(diǎn),其中每個(gè)時(shí)間點(diǎn)與用于所述每個(gè)文件的文件內(nèi)容的狀態(tài)關(guān)聯(lián),其中所述每個(gè)文件具有在第一時(shí)間點(diǎn)處于當(dāng)前狀態(tài)的內(nèi)容;用于接收指示比第一時(shí)間點(diǎn)早的特定時(shí)間點(diǎn)的輸入的單元;以及用于再現(xiàn)包括這組相關(guān)文件的文件內(nèi)容的環(huán)境的單元,其中該環(huán)境中的文件內(nèi)容具有與特定時(shí)間點(diǎn)關(guān)聯(lián)的歷史狀態(tài)。
[0056]在一個(gè)例子中,該裝置還包括用于顯示環(huán)境的單元,其中顯示環(huán)境包括顯示在特定時(shí)間點(diǎn)被打開(kāi)的文件內(nèi)容的狀態(tài)的指示。
[0057]在一個(gè)例子中,該裝置還包括用于顯示包括歷史時(shí)間點(diǎn)的時(shí)間線的單元,其中歷史時(shí)間點(diǎn)包括對(duì)應(yīng)于用于所述每個(gè)文件的起始點(diǎn)、結(jié)束點(diǎn)以及一個(gè)或多個(gè)中間檢查點(diǎn)的時(shí)間點(diǎn)。
[0058]在一個(gè)例子中,這組相關(guān)文件的圖是具有一個(gè)或多個(gè)條的條形圖,這些條代表這組相關(guān)文件當(dāng)中的所述每個(gè)文件,其中一個(gè)或多個(gè)條中條的一側(cè)相對(duì)于所述時(shí)間線上對(duì)應(yīng)于所述每個(gè)文件的起始點(diǎn)的時(shí)間點(diǎn)定位;該條的另一側(cè)相對(duì)于與時(shí)間線上對(duì)應(yīng)于所述文件結(jié)束點(diǎn)的時(shí)間點(diǎn)定位;并且在條內(nèi)顯示一個(gè)或多個(gè)標(biāo)記,每個(gè)標(biāo)記相對(duì)于所述時(shí)間線上對(duì)應(yīng)于所述每個(gè)文件的中間檢查點(diǎn)的時(shí)間點(diǎn)定位。
[0059]在一個(gè)例子中,時(shí)間線顯示為水平線;并且每個(gè)都代表文件的一個(gè)或多個(gè)條與時(shí)間線平行地顯示,使得在歷史時(shí)間點(diǎn)與時(shí)間線相交的垂直線還在對(duì)應(yīng)于該歷史時(shí)間點(diǎn)的一側(cè)或標(biāo)記處與每個(gè)條相交。
[0060]在一個(gè)例子中,用于接收指示時(shí)間線上的特定時(shí)間點(diǎn)的輸入的單元還包括用于顯示與時(shí)間線垂直的線的單元,該垂直線表示在時(shí)間上的歷史快照;用于響應(yīng)于接收到輸入而顯示所述垂直線移動(dòng)到在特定時(shí)間點(diǎn)與時(shí)間線相交的單元。
[0061]在一個(gè)例子中,用于文件的起始點(diǎn)表示這組相關(guān)文件中所述每個(gè)文件被打開(kāi)的時(shí)間;用于該文件的結(jié)束點(diǎn)表示所述每個(gè)文件被關(guān)閉的時(shí)間;并且用作所述每個(gè)文件的中間檢查點(diǎn)的每個(gè)中間檢查點(diǎn)表示所述每個(gè)文件被保存的時(shí)間。
[0062]在一個(gè)例子中,用于顯示圖的單元還包括:用于檢索在特定時(shí)間段內(nèi)被打開(kāi)的第一文件列表的單元;對(duì)于這組相關(guān)文件中在該特定時(shí)間段內(nèi)任何時(shí)間被打開(kāi)的每個(gè)文件:用于檢索該特定時(shí)間段內(nèi)所述每個(gè)文件被打開(kāi)的時(shí)間作為第一文件打開(kāi)時(shí)間點(diǎn)的單元,及用于檢索所述每個(gè)文件被關(guān)閉的對(duì)應(yīng)時(shí)間作為第一文件關(guān)閉時(shí)間點(diǎn)的單元;用于顯示其一側(cè)根據(jù)第一文件打開(kāi)時(shí)間點(diǎn)定位并且另一側(cè)根據(jù)第一文件關(guān)閉時(shí)間點(diǎn)定位的第一條的單元;用于檢索所述每個(gè)文件被保存的一個(gè)或多個(gè)時(shí)間作為第一文件保存時(shí)間點(diǎn)的單元,其中第一文件保存時(shí)間點(diǎn)位于第一文件打開(kāi)時(shí)間點(diǎn)與第一文件關(guān)閉時(shí)間點(diǎn)之間;用于在第一條上顯示一個(gè)或多個(gè)標(biāo)記的單元,每個(gè)標(biāo)記對(duì)應(yīng)于一個(gè)或多個(gè)第一文件保存時(shí)間點(diǎn)之一。
[0063]在一個(gè)例子中,用于顯示圖的單元還包括,對(duì)于第一文件列表中的每個(gè)文件:用于檢索特定時(shí)間段內(nèi)所述每個(gè)文件被打開(kāi)的時(shí)間作為第二文件打開(kāi)時(shí)間點(diǎn)的單元,及用于檢索所述每個(gè)文件被關(guān)閉的對(duì)應(yīng)時(shí)間作為第二文件關(guān)閉時(shí)間點(diǎn)的單元;其中第二文件打開(kāi)時(shí)間點(diǎn)在第一文件關(guān)閉時(shí)間點(diǎn)之后;用于顯示其一側(cè)根據(jù)第二文件打開(kāi)時(shí)間點(diǎn)定位并且另一側(cè)根據(jù)第二文件關(guān)閉時(shí)間點(diǎn)定位的第二條的單元;用于檢索所述每個(gè)文件被保存的一個(gè)或多個(gè)時(shí)間作為第二文件保存時(shí)間點(diǎn)的單元,其中第二文件保存時(shí)間點(diǎn)位于第二文件打開(kāi)時(shí)間點(diǎn)與第二文件關(guān)閉時(shí)間點(diǎn)之間;用于在第二條上顯示一個(gè)或多個(gè)標(biāo)記的單元,每個(gè)標(biāo)記對(duì)應(yīng)于一個(gè)或多個(gè)第二文件保存時(shí)間點(diǎn)之一。
[0064]在一個(gè)例子中,用于檢索第一文件列表的單元基于基于時(shí)間的索引。
[0065]在一個(gè)例子中,用于檢索第一文件保存時(shí)間點(diǎn)的單元還包括從基于時(shí)間的索引之外的表檢索第一文件保存時(shí)間點(diǎn)。
[0066]在一個(gè)例子中,這組相關(guān)文件屬于共同的項(xiàng)目;其中這組相關(guān)文件中的多個(gè)文件駐留在共同的目錄中;并且其中這組相關(guān)文件的至少一個(gè)文件駐留在該共同的目錄之外。
[0067]在一個(gè)例子中,這組相關(guān)文件包括在集成開(kāi)發(fā)環(huán)境中管理的源文件,每個(gè)源文件包含符合計(jì)算機(jī)編程語(yǔ)言的文字。
[0068]在一個(gè)例子中,該裝置還包括所述集成開(kāi)發(fā)環(huán)境:用于在文件保存時(shí)間點(diǎn)接收觸發(fā)器以便在集成開(kāi)發(fā)環(huán)境中保存一個(gè)或多個(gè)打開(kāi)的文件的單元;用于接收用于在圖中標(biāo)識(shí)文件保存時(shí)間點(diǎn)的標(biāo)簽的單元;用于創(chuàng)建索引條目以便基于該標(biāo)簽給保存的一個(gè)或多個(gè)打開(kāi)的文件加索引的單元。
[0069]在一個(gè)例子中,標(biāo)簽是指示觸發(fā)器何時(shí)被接收的時(shí)間戳。
[0070]在一個(gè)例子中,標(biāo)簽是非時(shí)間戳的里程碑的名字。
[0071]在一個(gè)例子中,觸發(fā)器是響應(yīng)于保存一個(gè)或多個(gè)打開(kāi)的文件的用戶請(qǐng)求而生成的。
[0072]在一個(gè)例子中,觸發(fā)器是基于定時(shí)器生成的。
[0073]在描述了幾種示例配置之后,在不背離本公開(kāi)內(nèi)容主旨的情況下,可以使用各種修改、備選構(gòu)造和等效方式。例如,以上元件可以是更大系統(tǒng)的部件,其中其它規(guī)則可以優(yōu)先或者以別的方式修改本發(fā)明的應(yīng)用。而且,多個(gè)步驟可以在考慮以上元件之前、期間或之后采取。相應(yīng)地,以上描述不限定權(quán)利要求的范圍。
【權(quán)利要求】
1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括: 由處理器在計(jì)算機(jī)顯示器上顯示一組相關(guān)文件的圖,所述圖為這組相關(guān)文件的每個(gè)文件繪出起始點(diǎn)、結(jié)束點(diǎn)以及一個(gè)或多個(gè)中間檢查點(diǎn); 其中所述起始點(diǎn)、結(jié)束點(diǎn)以及一個(gè)或多個(gè)中間檢查點(diǎn)中每個(gè)代表一個(gè)時(shí)間點(diǎn); 其中每個(gè)時(shí)間點(diǎn)與用于所述每個(gè)文件的文件內(nèi)容的狀態(tài)關(guān)聯(lián); 其中所述每個(gè)文件在第一時(shí)間點(diǎn)具有處于當(dāng)前狀態(tài)的內(nèi)容; 由所述處理器接收指示比所述第一時(shí)間點(diǎn)早的特定時(shí)間點(diǎn)的輸入;及 由所述處理器重新創(chuàng)建包括這組相關(guān)文件的文件內(nèi)容的環(huán)境; 其中所述環(huán)境中的文件內(nèi)容具有與所述特定時(shí)間點(diǎn)關(guān)聯(lián)的歷史狀態(tài)。
2.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括顯示所述環(huán)境,其中顯示所述環(huán)境包括顯示在所述特定時(shí)間點(diǎn)被打開(kāi)的文件內(nèi)容狀態(tài)的指示。
3.如權(quán)利要求1或2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法還包括顯示包括歷史時(shí)間點(diǎn)的時(shí)間線,其中所述歷史時(shí)間點(diǎn)包括對(duì)應(yīng)于用于所述每個(gè)文件的起始點(diǎn)、結(jié)束點(diǎn)以及一個(gè)或多個(gè)中間檢查點(diǎn)的時(shí)間點(diǎn)。
4.如權(quán)利要求3所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中: 這組相關(guān)文件的圖是具有一個(gè)或多個(gè)條的條形圖,這些條代表這組相關(guān)文件當(dāng)中的所述每個(gè)文件,其中所述一個(gè)或多個(gè)條中條的一側(cè)相對(duì)于所述時(shí)間線上對(duì)應(yīng)于所述每個(gè)文件的起始點(diǎn)的時(shí)間點(diǎn)定位; 所述條的另一側(cè)相對(duì)于所述時(shí)間線上對(duì)應(yīng)于所述每個(gè)文件的結(jié)束點(diǎn)的時(shí)間點(diǎn)定位;及在所述條內(nèi)顯示一個(gè)或多個(gè)標(biāo)記,每個(gè)標(biāo)記相對(duì)于所述時(shí)間線上對(duì)應(yīng)于所述每個(gè)文件的中間檢查點(diǎn)的時(shí)間點(diǎn)定位。
5.如權(quán)利要求3所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中: 所述時(shí)間線顯示為水平線;及 每個(gè)都代表文件的一個(gè)或多個(gè)條與所述時(shí)間線平行地顯示,使得在歷史時(shí)間點(diǎn)與所述時(shí)間線相交的垂直線還在對(duì)應(yīng)于所述歷史時(shí)間點(diǎn)的一側(cè)或標(biāo)記處與每個(gè)條相交。
6.如權(quán)利要求3所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中接收指示所述時(shí)間線上特定時(shí)間點(diǎn)的輸入還包括: 顯示與所述時(shí)間線垂直的線,所述垂直線表示時(shí)間上的歷史快照; 響應(yīng)于接收到輸入,顯示所述垂直線移動(dòng)到在所述特定時(shí)間點(diǎn)與所述時(shí)間線相交。
7.如權(quán)利要求1至6中任何一項(xiàng)所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中: 用于文件的起始點(diǎn)表示這組相關(guān)文件中所述每個(gè)文件被打開(kāi)的時(shí)間; 用于所述文件的結(jié)束點(diǎn)表示所述每個(gè)文件被關(guān)閉的時(shí)間;及 用作所述每個(gè)文件的中間檢查點(diǎn)的每個(gè)中間檢查點(diǎn)表示所述每個(gè)文件被保存的時(shí)間。
8.如權(quán)利要求7所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中顯示所述圖還包括: 檢索在特定時(shí)間段內(nèi)被打開(kāi)的第一文件列表; 對(duì)于這組相關(guān)文件中在所述特定時(shí)間段內(nèi)的任何時(shí)間被打開(kāi)的每個(gè)文件: 檢索所述特定時(shí)間段內(nèi)所述每個(gè)文件被打開(kāi)的時(shí)間作為第一文件打開(kāi)時(shí)間點(diǎn),并且檢索所述每個(gè)文件被關(guān)閉的對(duì)應(yīng)時(shí)間作為第一文件關(guān)閉時(shí)間點(diǎn); 顯示其一側(cè)根據(jù)所述第一文件打開(kāi)時(shí)間點(diǎn)定位并且另一側(cè)根據(jù)所述第一文件關(guān)閉時(shí)間點(diǎn)定位的第一條; 檢索所述每個(gè)文件被保存的一個(gè)或多個(gè)時(shí)間作為第一文件保存時(shí)間點(diǎn),其中所述第一文件保存時(shí)間點(diǎn)位于所述第一文件打開(kāi)時(shí)間點(diǎn)與所述第一文件關(guān)閉時(shí)間點(diǎn)之間; 在所述第一條上顯示一個(gè)或多個(gè)標(biāo)記,每個(gè)標(biāo)記對(duì)應(yīng)于所述一個(gè)或多個(gè)第一文件保存時(shí)間點(diǎn)之一。
9.如權(quán)利要求8所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中顯示所述圖還包括,對(duì)于第一文件列表中的每個(gè)文件: 檢索所述特定時(shí)間段內(nèi)所述每個(gè)文件被打開(kāi)的時(shí)間作為第二文件打開(kāi)時(shí)間點(diǎn),并且檢索所述每個(gè)文件被關(guān)閉的對(duì)應(yīng)時(shí)間作為第二文件關(guān)閉時(shí)間點(diǎn); 其中所述第二文件打開(kāi)時(shí)間點(diǎn)在所述第一文件關(guān)閉時(shí)間點(diǎn)之后; 顯示其一側(cè)根據(jù)所述第二文件打開(kāi)時(shí)間點(diǎn)定位并且另一側(cè)根據(jù)所述第二文件關(guān)閉時(shí)間點(diǎn)定位的第二條; 檢索所述每個(gè)文件被保存的一個(gè)或多個(gè)時(shí)間作為第二文件保存時(shí)間點(diǎn),其中所述第二文件保存時(shí)間點(diǎn)位于所述第二文件打開(kāi)時(shí)間點(diǎn)與所述第二文件關(guān)閉時(shí)間點(diǎn)之間; 在所述第二條上顯示一個(gè)或多個(gè)標(biāo)記,每個(gè)標(biāo)記對(duì)應(yīng)于所述一個(gè)或多個(gè)第二文件保存時(shí)間點(diǎn)之一。
10.如權(quán)利要求8所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中檢索所述第一文件列表基于基于時(shí)間的索引。
11.如權(quán)利要求8所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中檢索所述第一文件保存時(shí)間點(diǎn)還包括從基于時(shí)間的索引之外的表檢索第一文件保存時(shí)間點(diǎn)。
12.如權(quán)利要求1至11中任何一項(xiàng)所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中這組相關(guān)文件屬于共同的項(xiàng)目; 其中這組相關(guān)文件中的多個(gè)文件駐留在共同的目錄中;及 其中這組相關(guān)文件的至少一個(gè)文件駐留在所述共同的目錄之外。
13.如權(quán)利要求1至11中任何一項(xiàng)所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中這組相關(guān)文件包括在集成開(kāi)發(fā)環(huán)境中管理的源文件,每個(gè)源文件包含符合計(jì)算機(jī)編程語(yǔ)言的文字。
14.如權(quán)利要求13所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括所述集成開(kāi)發(fā)環(huán)境: 在文件保存時(shí)間點(diǎn)接收觸發(fā)器,以便在集成開(kāi)發(fā)環(huán)境中保存一個(gè)或多個(gè)打開(kāi)的文件; 接收用于在所述圖中標(biāo)識(shí)文件保存時(shí)間點(diǎn)的標(biāo)簽; 創(chuàng)建索引條目,以便基于所述標(biāo)簽給所保存的一個(gè)或多個(gè)打開(kāi)的文件加索引。
15.如權(quán)利要求14所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述標(biāo)簽是指示所述觸發(fā)器何時(shí)被接收的時(shí)間戳。
16.如權(quán)利要求14所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述標(biāo)簽是非時(shí)間戳的里程碑的名字。
17.如權(quán)利要求14所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述觸發(fā)器是響應(yīng)于保存所述一個(gè)或多個(gè)打開(kāi)的文件的用戶請(qǐng)求而生成的。
18.如權(quán)利要求14所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述觸發(fā)器是基于定時(shí)器生成的。
19.一種系統(tǒng),包括: 計(jì)算機(jī),包括計(jì)算機(jī)可讀介質(zhì)和處理器,其中所述計(jì)算機(jī)親合到計(jì)算機(jī)顯示器; 文件管理應(yīng)用,在所述計(jì)算機(jī)上執(zhí)行,其中所述文件管理應(yīng)用配置為: 在所述計(jì)算機(jī)顯示器上顯示一組相關(guān)文件的圖,所述圖為這組相關(guān)文件的每個(gè)文件繪出起始點(diǎn)、結(jié)束點(diǎn)以及一個(gè)或多個(gè)中間檢查點(diǎn); 其中所述起始點(diǎn)、結(jié)束點(diǎn)以及一個(gè)或多個(gè)中間檢查點(diǎn)中每個(gè)代表一個(gè)時(shí)間點(diǎn); 其中每個(gè)時(shí)間點(diǎn)與用于所述每個(gè)文件的文件內(nèi)容的狀態(tài)關(guān)聯(lián); 其中所述每個(gè)文件在第一時(shí)間點(diǎn)具有處于當(dāng)前狀態(tài)的內(nèi)容; 由所述處理器接收指示比所述第一時(shí)間點(diǎn)早的特定時(shí)間點(diǎn)的輸入;及 由所述處理器重新創(chuàng)建包括這組相關(guān)文件的文件內(nèi)容的環(huán)境; 其中所述環(huán)境中的文件內(nèi)容具有與所述特定時(shí)間點(diǎn)關(guān)聯(lián)的歷史狀態(tài)。
20.如權(quán)利要求19所述的系統(tǒng),其中所述文件管理應(yīng)用還配置為顯示包括歷史時(shí)間點(diǎn)的時(shí)間線,其中所述歷史時(shí)間點(diǎn)包括對(duì)應(yīng)于用于所述每個(gè)文件的起始點(diǎn)、結(jié)束點(diǎn)以及一個(gè)或多個(gè)中間檢查點(diǎn)的時(shí)間點(diǎn)。
21.如權(quán)利要求21所述的系統(tǒng),其中: 這組相關(guān)文件的圖是具有一個(gè)或多個(gè)條的條形圖,這些條代表這組相關(guān)文件當(dāng)中的所述每個(gè)文件,其中所述一個(gè)或多個(gè)條中條的一側(cè)相對(duì)于所述時(shí)間線上對(duì)應(yīng)于所述每個(gè)文件的起始點(diǎn)的時(shí)間點(diǎn)定位; 所述條的另一側(cè)相對(duì)于所述時(shí)間線上對(duì)應(yīng)于所述每個(gè)文件的結(jié)束點(diǎn)的時(shí)間點(diǎn)定位;及在所述條內(nèi)顯示一個(gè)或多個(gè)標(biāo)記,每個(gè)標(biāo)記相對(duì)于所述時(shí)間線上對(duì)應(yīng)于所述每個(gè)文件的中間檢查點(diǎn)的時(shí)間點(diǎn)定位。
22.如權(quán)利要求21所述的系統(tǒng),其中: 所述時(shí)間線顯示為水平線;及 每個(gè)都代表文件的所述一個(gè)或多個(gè)條與所述時(shí)間線平行地顯示,使得在歷史時(shí)間點(diǎn)與所述時(shí)間線相交的垂直線還在對(duì)應(yīng)于所述歷史時(shí)間點(diǎn)的一側(cè)或標(biāo)記處與每個(gè)條相交。
23.如權(quán)利要求21所述的系統(tǒng),其中所述文件管理應(yīng)用還配置為: 顯示與所述時(shí)間線垂直的線,所述垂直線表示時(shí)間上的歷史快照; 響應(yīng)于接收到輸入,顯示所述垂直線移動(dòng)到在特定時(shí)間點(diǎn)與時(shí)間線相交。
24.如權(quán)利要求19至23中任何一項(xiàng)所述的系統(tǒng),其中: 用于文件的起始點(diǎn)表示這組相關(guān)文件中所述每個(gè)文件被打開(kāi)的時(shí)間; 用于所述文件的結(jié)束點(diǎn)表示所述每個(gè)文件被關(guān)閉的時(shí)間;及 用作所述每個(gè)文件的中間檢查點(diǎn)的每個(gè)中間檢查點(diǎn)表示所述每個(gè)文件被保存的時(shí)間。
25.如權(quán)利要求25所述的系統(tǒng),其中所述文件管理應(yīng)用還配置為: 檢索在特定時(shí)間段內(nèi)被打開(kāi)的第一文件列表; 對(duì)于這組相關(guān)文件中在所述特定時(shí)間段內(nèi)的任何時(shí)間被打開(kāi)的每個(gè)文件: 檢索所述特定時(shí)間段內(nèi)所述每個(gè)文件被打開(kāi)的時(shí)間作為第一文件打開(kāi)時(shí)間點(diǎn),并且檢索所述每個(gè)文件被關(guān)閉的對(duì)應(yīng)時(shí)間作為第一文件關(guān)閉時(shí)間點(diǎn); 顯示其一側(cè)根據(jù)所述第一文件打開(kāi)時(shí)間點(diǎn)定位并且另一側(cè)根據(jù)所述第一文件關(guān)閉時(shí)間點(diǎn)定位的第一條; 檢索所述每個(gè)文件被保存的一個(gè)或多個(gè)時(shí)間作為第一文件保存時(shí)間點(diǎn),其中所述第一文件保存時(shí)間點(diǎn)位于所述第一文件打開(kāi)時(shí)間點(diǎn)與所述第一文件關(guān)閉時(shí)間點(diǎn)之間;及 在所述第一條上顯示一個(gè)或多個(gè)標(biāo)記,每個(gè)標(biāo)記對(duì)應(yīng)于所述一個(gè)或多個(gè)第一文件保存時(shí)間點(diǎn)之一。
26.如權(quán)利要求26所述的系統(tǒng),其中所述文件管理應(yīng)用還配置為: 檢索所述特定時(shí)間段內(nèi)所述每個(gè)文件被打開(kāi)的時(shí)間作為第二文件打開(kāi)時(shí)間點(diǎn),并且檢索所述每個(gè)文件被關(guān)閉的對(duì)應(yīng)時(shí)間作為第二文件關(guān)閉時(shí)間點(diǎn); 其中所述第二文件打開(kāi)時(shí)間點(diǎn)在所述第一文件關(guān)閉時(shí)間點(diǎn)之后; 顯示其一側(cè)根據(jù)所述第二文件打開(kāi)時(shí)間點(diǎn)定位并且另一側(cè)根據(jù)所述第二文件關(guān)閉時(shí)間點(diǎn)定位的第二條; 檢索所述每個(gè)文件被保存的一個(gè)或多個(gè)時(shí)間作為第二文件保存時(shí)間點(diǎn),其中所述第二文件保存時(shí)間點(diǎn)位于所述第二文件打開(kāi)時(shí)間點(diǎn)與所述第二文件關(guān)閉時(shí)間點(diǎn)之間; 在所述第二條上顯示一個(gè)或多個(gè)標(biāo)記,每個(gè)標(biāo)記對(duì)應(yīng)于所述一個(gè)或多個(gè)第二文件保存時(shí)間點(diǎn)之一。
27.如權(quán)利要求26所述的系統(tǒng),其中所述文件管理應(yīng)用還配置為基于基于時(shí)間的索引檢索第一文件列表。
28.如權(quán)利要求26所述的系統(tǒng),其中檢索所述第一文件保存時(shí)間點(diǎn)還包括從基于時(shí)間的索引之外的表檢索第一文件保存時(shí)間點(diǎn)。
29.如權(quán)利要求19至28中任何一項(xiàng)所述的系統(tǒng),其中所述文件管理應(yīng)用是集成開(kāi)發(fā)環(huán)境,其中這組相關(guān)文件包括在所述集成開(kāi)發(fā)環(huán)境中管理的源文件,每個(gè)源文件包含符合計(jì)算機(jī)編程語(yǔ)言的文字,并且其中所述集成開(kāi)發(fā)環(huán)境配置為: 在文件保存時(shí)間點(diǎn)接收觸發(fā)器,以保存一個(gè)或多個(gè)打開(kāi)的文件; 接收用于在所述圖中標(biāo)識(shí)所述文件保存時(shí)間點(diǎn)的標(biāo)簽; 創(chuàng)建索引條目,以便基于所述標(biāo)簽給所保存的一個(gè)或多個(gè)打開(kāi)的文件加索引。
30.如權(quán)利要求29所述的系統(tǒng),其中: 所述標(biāo)簽是指示觸發(fā)器何時(shí)被接收的時(shí)間戳和非時(shí)間戳的里程碑的名字當(dāng)中一個(gè)或多個(gè);及 所述觸發(fā)器是基于保存所述一個(gè)或多個(gè)打開(kāi)的文件的用戶請(qǐng)求及定時(shí)器當(dāng)中一個(gè)或多個(gè)而生成的。
31.一種程序,用于使一個(gè)或多個(gè)處理器實(shí)現(xiàn)如權(quán)利要求1至18中任何一項(xiàng)所述的計(jì)算機(jī)實(shí)現(xiàn)的方法。
【文檔編號(hào)】G06F11/14GK104471534SQ201380036599
【公開(kāi)日】2015年3月25日 申請(qǐng)日期:2013年7月12日 優(yōu)先權(quán)日:2012年7月12日
【發(fā)明者】N·J·考徹拉內(nèi) 申請(qǐng)人:甲骨文國(guó)際公司