(57)【要約】  多くの独立して管理されるが相互に依存しているサブコンポーネントを備える電子エンティティのバージョンを管理することは、やりがいのあるものであり得る。サブコンポーネント間の関係の視覚的表示を生成するために統合開発環境とともに用いられるファイル管理機能が提供される。本明細書に記載されているアプローチは、履歴上のある時点において存在していた内容の通りに１つ以上のファイルの状態を戻すことができるという点で、ソースコード制御システムおよびバックアップシステムに対して改良をもたらす。当該技術では、１つ以上のファイルの内容状態が将来的な使用に備えてどの時点で履歴上の時点として関心を引くことになるかを事前にユーザが予測する必要がない。
2015525930.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実現される方法であって、
プロセッサが、一組の関連するファイルのグラフをコンピュータディスプレイ上に表示するステップを備え、前記グラフは、前記一組の関連するファイルの各ファイルごとに、開始ポイントおよび終了ポイントおよび１つ以上の中間チェックポイントを示し、
前記開始ポイント、前記終了ポイントおよび前記１つ以上の中間チェックポイントは各々、ある時点を表し、
各時点は、前記各ファイルのファイル内容の状態に関連付けられ、
前記各ファイルは、第１の時点において現在の状態の内容を有し、前記方法はさらに、
プロセッサが、前記第１の時点より前の特定の時点を示す入力を受取るステップと、
プロセッサが、前記一組の関連するファイルのファイル内容を備える環境を再作成するステップとを備え、
前記環境における前記ファイル内容は、前記特定の時点に関連付けられた履歴状態を有する、方法。
【請求項２】
前記環境を表示するステップをさらに備え、前記環境を表示するステップは、前記特定の時点において開いていたファイル内容の状態の印を表示するステップを含む、請求項１に記載のコンピュータによって実現される方法。
【請求項３】
前記方法は、前記各ファイルの前記開始ポイント、前記終了ポイントおよび前記１つ以上の中間チェックポイントに対応する時点を含む履歴上の時点を含むタイムラインを表示するステップをさらに備える、請求項１または２に記載の方法。
【請求項４】
前記一組の関連するファイルの前記グラフは、前記一組の関連するファイルにおける前記各ファイルを表す１つ以上のバーを有する棒グラフであり、前記１つ以上のバーのうちの１つのバーの一方の側は、前記各ファイルの前記開始ポイントに対応する前記タイムライン上のある時点に対して位置決めされ、
前記バーのもう一方の側は、前記各ファイルの前記終了ポイントに対応する前記タイムライン上のある時点に対して位置決めされ、
前記バー内に１つ以上の印を表示するステップを備え、各印は、前記各ファイルの中間チェックポイントに対応する前記タイムライン上のある時点に対して位置決めされる、請求項３に記載のコンピュータによって実現される方法。
【請求項５】
前記タイムラインは、水平な線として表示され、
各々がファイルを表す前記１つ以上のバーは、履歴上のある時点において前記タイムラインと交差する垂直な線が、前記履歴上のある時点に対応する側における各バーまたは印とも交差するように、前記タイムラインに平行に表示される、請求項３に記載のコンピュータによって実現される方法。
【請求項６】
前記タイムライン上の特定の時点を示す入力を受取るステップは、
前記タイムラインに直交する線を表示するステップをさらに備え、前記直交する線は、履歴スナップショットを時間で表し、前記タイムライン上の特定の時点を示す入力を受取るステップはさらに、
入力の受取りに応答して、前記直交する線が前記特定の時点において前記タイムラインと交差するように移動することを表示するステップを備える、請求項３に記載のコンピュータによって実現される方法。
【請求項７】
ファイルの前記開始ポイントは、前記一組の関連するファイルにおける前記各ファイルが開かれる時刻を表し、
前記ファイルの前記終了ポイントは、前記各ファイルが閉じられる時刻を表し、
前記各ファイルの前記中間チェックポイントの各中間チェックポイントは、前記各ファイルが保存された時刻を表す、請求項１から６のいずれか１項に記載のコンピュータによって実現される方法。
【請求項８】
前記グラフを表示するステップは、
特定の期間中に開いていたファイルの第１のリストを検索するステップと、
前記特定の期間内の任意の時刻において開いていた前記一組の関連するファイルにおける各ファイルごとに、
第１のファイルオープン時点として、前記各ファイルが開かれた前記特定の期間内の時刻を検索し、第１のファイルクローズ時点として、前記各ファイルが閉じられた対応する時刻を検索するステップと、
前記第１のファイルオープン時点に従って一方の側が位置決めされ、前記第１のファイルクローズ時点に従ってもう一方の側が位置決めされた第１のバーを表示するステップと、
第１のファイルセーブ時点として、前記各ファイルが保存された１つ以上の時刻を検索するステップとをさらに備え、第１のファイルセーブ時点は、前記第１のファイルオープン時点と前記第１のファイルクローズ時点との間にあり、前記グラフを表示するステップはさらに、
前記第１のバー上に１つ以上の印を表示するステップを備え、各印は、前記１つ以上の第１のファイルセーブ時点のうちの１つに対応する、請求項７に記載のコンピュータによって実現される方法。
【請求項９】
前記グラフを表示するステップは、前記ファイルの第１のリストにおける各ファイルごとに、
第２のファイルオープン時点として、前記各ファイルが開かれた前記特定の期間内の時刻を検索し、第２のファイルクローズ時点として、前記各ファイルが閉じられた対応する時刻を検索するステップをさらに備え、
前記第２のファイルオープン時点は、前記第１のファイルクローズ時点の後であり、前記グラフを表示するステップはさらに、
前記第２のファイルオープン時点に従って一方の側が位置決めされ、前記第２のファイルクローズ時点に従ってもう一方の側が位置決めされた第２のバーを表示するステップと、
第２のファイルセーブ時点として、前記各ファイルが保存された１つ以上の時刻を検索するステップとをさらに備え、第２のファイルセーブ時点は、前記第２のファイルオープン時点と前記第２のファイルクローズ時点との間にあり、前記グラフを表示するステップはさらに、
前記第２のバー上に１つ以上の印を表示するステップを備え、各印は、前記１つ以上の第２のファイルセーブ時点のうちの１つに対応する、請求項８に記載のコンピュータによって実現される方法。
【請求項１０】
前記ファイルの第１のリストを検索するステップは、時間ベースの索引に基づく、請求項８に記載のコンピュータによって実現される方法。
【請求項１１】
前記第１のファイルセーブ時点を検索するステップは、時間ベースの索引以外の表から前記第１のファイルセーブ時点を検索するステップをさらに備える、請求項８に記載のコンピュータによって実現される方法。
【請求項１２】
前記一組の関連するファイルは、共通のプロジェクトに属しており、
前記一組の関連するファイルにおける複数の前記ファイルは、共通のディレクトリ内にあり、
前記一組の関連するファイルの少なくとも１つのファイルは、前記共通のディレクトリの外側にある、請求項１から１１のいずれか１項に記載のコンピュータによって実現される方法。
【請求項１３】
前記一組の関連するファイルは、統合開発環境内で管理されるソースファイルを備え、各ソースファイルは、コンピュータプログラミング言語に準拠するテキストを含む、請求項１から１１のいずれか１項に記載のコンピュータによって実現される方法。
【請求項１４】
前記統合開発環境をさらに備え、
前記統合開発環境において１つ以上の開いているファイルを保存するためにファイルセーブ時点においてトリガを受取るステップと、
前記グラフにおいて前記ファイルセーブ時点を特定するためのラベルを受取るステップと、
前記保存された１つ以上の開いているファイルを前記ラベルに基づいて索引付けするために索引項目を作成するステップとをさらに備える、請求項１３に記載のコンピュータによって実現される方法。
【請求項１５】
前記ラベルは、前記トリガが受取られた時を示すタイムスタンプである、請求項１４に記載のコンピュータによって実現される方法。
【請求項１６】
前記ラベルは、タイムスタンプではないマイルストンの名前である、請求項１４に記載のコンピュータによって実現される方法。
【請求項１７】
前記トリガは、前記１つ以上の開いているファイルの保存を求めるユーザ要求に応答して生成される、請求項１４に記載のコンピュータによって実現される方法。
【請求項１８】
前記トリガは、タイマに基づいて生成される、請求項１４に記載のコンピュータによって実現される方法。
【請求項１９】
システムであって、
コンピュータ読取可能な媒体とプロセッサとを含むコンピュータを備え、前記コンピュータは、コンピュータディスプレイに結合され、前記システムはさらに、
前記コンピュータ上で実行されるファイル管理アプリケーションを備え、前記ファイル管理アプリケーションは、
一組の関連するファイルのグラフを前記コンピュータディスプレイ上に表示するように構成され、前記グラフは、前記一組の関連するファイルの各ファイルごとに、開始ポイントおよび終了ポイントおよび１つ以上の中間チェックポイントを示し、
前記開始ポイント、前記終了ポイントおよび前記１つ以上の中間チェックポイントは各々、ある時点を表し、
各時点は、前記各ファイルのファイル内容の状態に関連付けられ、
前記各ファイルは、第１の時点において現在の状態の内容を有し、前記ファイル管理アプリケーションはさらに、
前記第１の時点より前の特定の時点を示す入力を受取るように構成され、
前記一組の関連するファイルのファイル内容を備える環境を再生するように構成され、
前記環境における前記ファイル内容は、前記特定の時点に関連付けられた履歴状態を有する、システム。
【請求項２０】
前記ファイル管理アプリケーションは、前記各ファイルの前記開始ポイント、前記終了ポイントおよび前記１つ以上の中間チェックポイントに対応する時点を含む履歴上の時点を含むタイムラインを表示するようにさらに構成される、請求項１９に記載のシステム。
【請求項２１】
前記一組の関連するファイルの前記グラフは、前記一組の関連するファイルにおける前記各ファイルを表す１つ以上のバーを有する棒グラフであり、前記１つ以上のバーのうちの１つのバーの一方の側は、前記各ファイルの前記開始ポイントに対応する前記タイムライン上のある時点に対して位置決めされ、
前記バーのもう一方の側は、前記各ファイルの前記終了ポイントに対応する前記タイムライン上のある時点に対して位置決めされ、
前記バー内に１つ以上の印を表示するように構成され、各印は、前記各ファイルの中間チェックポイントに対応する前記タイムライン上のある時点に対して位置決めされる、請求項２１に記載のシステム。
【請求項２２】
前記タイムラインは、水平な線として表示され、
各々がファイルを表す前記１つ以上のバーは、履歴上のある時点において前記タイムラインと交差する垂直な線が、前記履歴上のある時点に対応する側における各バーまたは印とも交差するように、前記タイムラインに平行に表示される、請求項２１に記載のシステム。
【請求項２３】
前記ファイル管理アプリケーションは、
前記タイムラインに直交する線を表示するようにさらに構成され、前記直交する線は、履歴スナップショットを時間で表し、前記ファイル管理アプリケーションはさらに、
入力の受取りに応答して、前記直交する線が前記特定の時点において前記タイムラインと交差するように移動することを表示するように構成される、請求項２１に記載のシステム。
【請求項２４】
ファイルの前記開始ポイントは、前記一組の関連するファイルにおける前記各ファイルが開かれる時刻を表し、
前記ファイルの前記終了ポイントは、前記各ファイルが閉じられる時刻を表し、
前記各ファイルの前記中間チェックポイントの各中間チェックポイントは、前記各ファイルが保存された時刻を表す、請求項１９から２３のいずれか１項に記載のシステム。
【請求項２５】
前記ファイル管理アプリケーションは、
特定の期間中に開いていたファイルの第１のリストを検索するようにさらに構成され、
前記特定の期間内の任意の時刻において開いていた前記一組の関連するファイルにおける各ファイルごとに、
第１のファイルオープン時点として、前記各ファイルが開かれた前記特定の期間内の時刻を検索し、第１のファイルクローズ時点として、前記各ファイルが閉じられた対応する時刻を検索するようにさらに構成され、
前記第１のファイルオープン時点に従って一方の側が位置決めされ、前記第１のファイルクローズ時点に従ってもう一方の側が位置決めされた第１のバーを表示するようにさらに構成され、
第１のファイルセーブ時点として、前記各ファイルが保存された１つ以上の時刻を検索するようにさらに構成され、第１のファイルセーブ時点は、前記第１のファイルオープン時点と前記第１のファイルクローズ時点との間にあり、前記ファイル管理アプリケーションはさらに、
前記第１のバー上に１つ以上の印を表示するように構成され、各印は、前記１つ以上の第１のファイルセーブ時点のうちの１つに対応する、請求項２５に記載のシステム。
【請求項２６】
前記ファイル管理アプリケーションは、
第２のファイルオープン時点として、前記各ファイルが開かれた前記特定の期間内の時刻を検索し、第２のファイルクローズ時点として、前記各ファイルが閉じられた対応する時刻を検索するようにさらに構成され、
前記第２のファイルオープン時点は、前記第１のファイルクローズ時点の後であり、前記ファイル管理アプリケーションはさらに、
前記第２のファイルオープン時点に従って一方の側が位置決めされ、前記第２のファイルクローズ時点に従ってもう一方の側が位置決めされた第２のバーを表示するように構成され、
第２のファイルセーブ時点として、前記各ファイルが保存された１つ以上の時刻を検索するように構成され、第２のファイルセーブ時点は、前記第２のファイルオープン時点と前記第２のファイルクローズ時点との間にあり、前記ファイル管理アプリケーションはさらに、
前記第２のバー上に１つ以上の印を表示するように構成され、各印は、前記１つ以上の第２のファイルセーブ時点のうちの１つに対応する、請求項２６に記載のシステム。
【請求項２７】
前記ファイル管理アプリケーションは、時間ベースの索引に基づく前記ファイルの第１のリストを検索するようにさらに構成される、請求項２６に記載のシステム。
【請求項２８】
前記第１のファイルセーブ時点を検索することは、時間ベースの索引以外の表から前記第１のファイルセーブ時点を検索することをさらに備える、請求項２６に記載のシステム。
【請求項２９】
前記ファイル管理アプリケーションは、統合開発環境であり、前記一組の関連するファイルは、前記統合開発環境内で管理されるソースファイルを備え、各ソースファイルは、コンピュータプログラミング言語に準拠するテキストを含み、前記統合開発環境は、
１つ以上の開いているファイルを保存するためにファイルセーブ時点においてトリガを受取るように構成され、
前記グラフにおいて前記ファイルセーブ時点を特定するためのラベルを受取るように構成され、
前記保存された１つ以上の開いているファイルを前記ラベルに基づいて索引付けするために索引項目を作成するように構成される、請求項１９から２８のいずれか１項に記載のシステム。
【請求項３０】
前記ラベルは、前記トリガが受取られた時を示すタイムスタンプ、およびタイムスタンプではないマイルストンの名前のうちの１つ以上であり、
前記トリガは、前記１つ以上の開いているファイルの保存を求めるユーザ要求およびタイマのうちの１つ以上に基づいて生成される、請求項２９に記載のシステム。
【請求項３１】
請求項１から１８のいずれか１項に記載のコンピュータによって実現される方法を１つ以上のプロセッサに実現させるためのプログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
発明の背景
本明細書に記載されているアプローチは、一般に、コンピュータファイルの内容のバージョン管理に向けられる。電子エンティティは、互いに別々に格納および維持されるファイルの内容の集合体を備えてもよく、これらのファイルのうちのいくつかは、相互に依存し得る。このようなエンティティの一例は、ソフトウェアアプリケーションのためのソースコードであり得て、当該ソースコードは、複数のソースファイルに分散されている。別の例は、複数のチームまたは個人のためのタスクリストおよび期限を含むファイルに分散されたマスタスケジュールであってもよい。別の例は、本であってもよく、そこでは章は、異なるファイルに別々に維持されるが他の章内の場所との相互参照を含む。エンティティの変更は、複数のファイルの修正を必要としてもよく、全ての修正が完了するまでエンティティは一貫した状態であることができない。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
ファイルなどの独立して更新されるコンポーネントに格納された内容からなる電子エンティティを開発または維持する際の一般的な問題は、履歴上のある時点におけるエンティティの一貫したスナップショットを取得することである。たとえ各コンポーネントが一連の状態を経て進展し得るとしても、全てのコンポーネントにわたるエンティティの全体的な状態を視覚化できることは有用であろう。例えば、ソフトウェア開発プロジェクトは、コンパイルおよび連結されて実行可能なファイルを形成する複数のソースファイルを備え得る。１つのソースファイルが、異なるソースファイルに存在するコードによって呼び出される機能を定義し得る。当該機能を再定義するために当該１つのソースファイルを変更すると、当該機能を呼び出す異なるソースファイルにおけるコードは、対応する変更を必要とし得る。したがって、たとえこれらのファイルが独立して更新され得るものであっても、呼び出しコードを含むファイルは、機能を定義するファイルに対する依存性を有する。
【０００３】
時間とともに、多くのコンポーネントファイルが開かれたり、編集されたり、閉じられたりしたであろう。往々にして、ユーザは、ファイルを取扱って、それらの変更を以前の状態に戻したいと判断することがあった。例えば、ユーザは、ここ数時間の作業に納得できず、以前のポイントからやり直したいと考えるのである。しかし、一組の関連するファイルを履歴上のある時点に戻すことは、時間がかかり、エラーが発生しやすい恐れがある。このプロセスに対してツールサポートを提供しようとする従前の試みは、一度に１つのファイルの変更を閲覧し、一度に１つのファイルの変更を戻すことのみを可能にした。また、別々のファイルであるが関連するファイルの変更を示すタイムラインを見る簡単な方法はなかった。
【０００４】
ソースコード制御システムは、個々のファイルのバージョンの追跡に対してサポートを提供してもよく、これによりユーザはファイルを任意の追跡されたバージョンに回復させることができる。ユーザ要求時、ファイルの新たなバージョンが作成されてもよく、当該バージョンに名前が割り当てられ得る。また、いくつかのこのようなシステムは、関連するファイルの群の命名されたスナップショットを作成して、当該ファイルの群における各ファイルを命名されたスナップショットバージョンに巻き戻すことができるようにすることも可能にする。しかし、スナップショットバージョンに巻き戻すためには、ユーザは、スナップショットを使用する必要が生じるより前にスナップショットを作成するよう要求し、ユーザは、どの状態に巻き戻したいかを推測的に知ることができない。
【０００５】
バックアップシステムは、通常は周期的な間隔でまたは要求時にファイルを格納し、そのため、当該システムは、システム全体の状態をバックアップが実行された時の状態に戻すために、格納されたファイルを用いることができる。バックアップされるファイルは、当該システム内の全てのファイルを含んでもよく、これらのファイルは、互いに関連付けられていないかもしれない。システム全体を回復させるためにどのバックアップを用いるべきであるか、またはどのバックアップから特定のファイルもしくはファイルの群を回復させるべきであるかを視覚的に判断することをサポートしようとする試みがなされてきた。アップル社のタイムマシンバックアップシステムは、まるでタイムマシンで飛行するかのようにフォルダを閲覧することを可能にするユーザインターフェースを提供する。任意の時点においてフォルダが出現することは、どのバックアップがどのファイルを含むかということに関する手がかりを提供する。しかし、このアプローチは、特定のファイルの必要なバージョンをユーザが特定することを助けるが、相互に依存したファイルがファイルシステムまたは分散ファイルシステムの中のどこに存在し得ても、相互に依存したファイル同士の関係の理解に対してはサポートを提供しない。
【０００６】
ユーザが推測的に一貫したスナップショットを作成および命名することに依拠する必要なく、関連するファイルの群に注目して、一組の関連するファイルをどの時点のスナップショットに回復させるべきかを判断するための使いやすい、直感的な方法が必要である。
【課題を解決するための手段】
【０００７】
発明の概要
本発明のさまざまな実施例に係るシステムおよび方法は、コレクション内の全てのファイルについてチェックポイント状態を推測的に作成することなく、ユーザがファイル内容の状態を閲覧して、任意の時点において存在していた通りにファイル内容の状態を戻すことを可能にするユーザインターフェースを提供することによって、ファイル管理を実行する既存のアプリケーションにおける欠陥に対処することができる。また、当該ユーザインターフェースは、より大きなエンティティの状態を備えるファイル状態同士の関係の視覚的表示も提供し得る。例えば、ある実施例では、一組の関連するファイルのグラフがコンピュータディスプレイ上にプロセッサによって表示され得て、当該グラフは、一組の関連するファイルの各ファイルごとに、開始ポイント、終了ポイントおよび１つ以上の中間チェックポイントを示す。開始ポイント、終了ポイントおよび１つ以上の中間チェックポイントは各々、ある時点を表す。各時点は、ファイルのファイル内容の状態に関連付けられる。例えば、現在の時刻である「現在」は、ファイルの現在の状態に関連付けられ得る。プロセッサは、現在の時刻より前の特定の時点を示す入力を受取り得る。プロセッサは、受取られた特定の時点における一組の関連するファイルの履歴ファイル内容を備える環境を作成し得る。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施例に係る、ファイル状態を経時的に示す棒グラフである。
【図２】本発明の実施例に係る、ファイルの各々の状態を回復させる時刻を示すためのスナップショット線を示す図である。
【図３ａ】本発明の実施例に係る履歴タイムライン上の時点ラベルを示す図である。
【図３ｂ】本発明の実施例に係る履歴タイムライン上の時点ラベルを示す図である。
【図３ｃ】本発明の実施例に係る履歴タイムライン上の時点ラベルを示す図である。
【図４】本発明の実施例に係る履歴上のある時点の選択を示す図である。
【図５】本発明の実施例に係る特定の時点におけるファイルの状態の閲覧を示す図である。
【図６】実施例に係る、本明細書に記載されている技術に関連付けられる高レベルのステップを示す図である。
【図７】本発明の実施例に係るファイル状態を再作成するために用いられるデータストアを示す図である。
【図８】本発明の実施例に係るファイル状態グラフを生成するフロー図である。
【図９】本発明の実施例に係る、特定の時点において開いていたファイルの環境を再作成するフロー図である。
【図１０】実施例が実現され得るコンピュータシステムのブロック図である。
【発明を実施するための形態】
【０００９】
発明の詳細な説明
多くのソフトウェアアプリケーションは、特注のファイル管理を実行するコンポーネントを含んでいる。１つのこのようなソフトウェアアプリケーションの一例は、統合開発環境（integrated development environment：ＩＤＥ）である。ＩＤＥは、承認、修正、コンパイル、導入およびデバッグソフトウェアを含み得るソフトウェア開発の多くの局面をサポートするツールをコンピュータプログラマに提供する。本明細書に開示されている本発明の実施例は、一例としてＩＤＥによって実行されるものとして記載されているが、当該アプローチは、複数の相互に依存している電子部品の内容のバージョン制御を実行するいかなるソフトウェアアプリケーションにも使用可能である。
【００１０】
プロジェクトは、時として、複数のコンピュータファイルにわたって格納される。これらのプロジェクトを取扱うユーザは、相互に依存し得るこれらのファイルに変更を加える。１つのファイルに変更を加えることにより、別のファイルを変更しなければならなくなり得る。ユーザは、プロジェクトファイルを管理するためにＩＤＥに依拠し得て、当該ＩＤＥは、時間とともに多くのファイルを開いたり、編集したり、閉じたりするために用いられてきたであろう。往々にして、ユーザは、ファイルに変更を加えた後で、それらの変更を以前の状態に戻そうと判断することがあった。例えば、ユーザは、ここ数時間の作業に納得できず、以前のポイントからやり直したいと考えるのである。１つのプロジェクトファイルの状態を回復させることにより、他の相互に依存するファイルの状態を回復させなければならなくなり得る。
【００１１】
本明細書に記載されているアプローチは、時間とともに開かれたり、編集されたり、閉じられたりしたファイルの履歴を示す新たな種類のグラフを提供する。一実施例では、グラフが生成され、当該グラフは、「現在」から時間を遡るように延びるグラフの底部に沿ってタイムラインを示す。開かれた各ファイルは、ファイルが開かれた時刻（開始ポイント）とファイルが閉じられた時刻（終了ポイント）との間に時間を遡るように延びる水平なバーによって表され、開始ポイントおよび終了ポイントは、タイムライン上に対応するラベル付きの時点を有している。他の実施例では、他の種類のグラフが用いられてもよく、当該グラフ内の各オブジェクトは、ファイルを表し、そのオープン、クローズおよび中間セーブの時刻を示す。
【００１２】
図１は、本発明の実施例に係る、ファイル状態を経時的に示す棒グラフである。当該グラフは、Ｙ軸の部分が別個のファイルを表し、Ｘ軸がタイムラインを表すように描かれている。棒グラフのバーは、タイムラインに平行に描かれ得る。グラフ内の各バーは、単一のファイルに対応し、Ｙ軸の同一の部分を占める複数のバーは、複数回開かれたり閉じられたりした同一のファイルを表し得る。より具体的には、Ｙ軸上で同一の高さにあるバーは、同一のファイルを表し得て、異なる高さにあるバーは、異なるファイルを表し得る。当該グラフは、特定の期間内に使用された全てのファイルを示し得る。例示的なグラフ１００によって表される期間では、５つのファイルが開かれたり閉じられたりした。当該ファイルは名前を付けられ、それらの幅は、開いていた時間の長さを示す。例えば、バー１１０は、「File-A.txt」と命名されたファイルを表している。現在の時刻（現在）が原点であり、履歴時間は原点の左側に表されている（古）。バー内の点線印は、対応するファイルが保存された時を示している（すなわち、点線は、チェックポイントが生じた時刻に対応してＸ軸に対して位置決めされる）。ユーザは、任意の時点において任意のバーの上にマウスを乗せ得て、その時点における対応するファイルの状態を表示する追加のＵＩを閲覧することができる。
【００１３】
図２は、本発明の実施例に係る、ファイルの各々の状態を調べる時刻を指定するためのスナップショット線を示す。グラフ２００は、スナップショット線２１０を、同一の特定の時点における全てのバーと交差する、タイムラインに直交する垂直な破線として示している。全てのファイルの状態を調べて、恐らくは回復させる時刻を選択するために、垂直な線は、タイムラインに沿って左または右にドラッグされ得る。ある実施例では、ユーザが、キーボードまたは時刻を選択するためのその他の機構を介して時刻を入力し得て、ＩＤＥが、選択された時点におけるファイルと交差するようにスナップショット線の位置を更新し得る。
【００１４】
図３ａ、図３ｂおよび図３ｃは、本発明の実施例に係る履歴タイムライン上の時点ラベルを示す。図３ａは、タイムスタンプでラベル付けされる特定のポイントを履歴タイムライン上に示す。この例では、ファイルオープンイベント、ファイルセーブイベントおよびファイルクローズイベントが起こった時刻が、ラベル付きの時点として選択される。これらのタイムスタンプは、ファイルイベントに関連付けて格納され得る。この図では、最も古い時点は２０１２年４月２１日であり、最も最近の時点は２０１２年５月３１日７：５７ｐｍである。タイムラインは、一定の比率に応じている場合もあれば、この例に示されるように、時点は一定の比率に応じていない場合もある。この例では、最近の時点は、日付、時間および分を含む時間でラベル付けされているが、古い時点は、単に日および時間または日のみを用いてラベル付けされ得る。この非線形のタイムスケーリングの背景にある考え方は、最も古い時点は最も関心を引きにくいため、より古いチェックポイントほど表示され得る数が少ない、というものである。また、当該非線形のスケーリングにより、線形のスケーリングで可能であろう期間よりも広い期間を表示することが可能になる。
【００１５】
図３ｂは、ユーザにとって意味を持つテキストラベルの使用を示す。例えば、ファイルがソフトウェア開発プロジェクトの一部であり、プロジェクトライフサイクルが特定のライフサイクルマイルストンにおいて全てのファイルをチェックポイント化する（状態を保存する）ことを求める場合には、チェックポイントが生じた日付および時刻よりもマイルストンの名前が意味があるであろう。図３ｂに表示されている例示的なラベルとしては、バージョンＡ、点検チェックポイント、ユニットテストチェックポイント、バージョンシステムテストおよびバージョンβテストが挙げられる。イベントが起こると、ユーザは、当該イベントを関連付けるためにラベルを入力または選択するよう促され得る。また、時点ラベルは、タイムライン上のラベルを選択してそれを新たなテキストラベルで改名することによっても変更され得る。
【００１６】
図３ｃは、経時的な変更の数および分布に基づいて選択される相対時刻ラベルの使用を示す。例えば、最も右側の時点「−１時間」は、現在の時刻の１時間前を表す。どの相対時点を表示すべきかを判断するためにファイルオープンイベント、ファイルセーブイベントおよびファイルクローズイベントの実際の時刻が用いられ得るが、ラベル付きの時点は、ファイルイベントが起こった時刻と一致している必要はない。ある実施例では、グラフ内に垂直な線によって表される開始ポイント、終了ポイントおよび中間保存ポイントは、各々、対応するイベントが起こった時刻でさらにラベル付けされてもよい。別の実施例では、ファイルイベントが起こった実際の時刻は、カーソルがバー内の垂直な線を指すかまたは選択した時に表示されてもよい。
【００１７】
ユーザは、履歴上の任意の時点を選択し、選択された時点において個々のファイルに格納されていた内容の状態を調べ得る。図４は、本発明の実施例に係る履歴上のある時点の選択を示す。ユーザは、ファイルの状態が所望である時刻を示すために、グラフを横切るように垂直な線をスライドさせ得る。
【００１８】
図５は、本発明の実施例に係る特定の時点におけるファイルの状態の閲覧を示す。ある実施例では、ファイルおよび所望の時点は、カーソル５００の位置に基づいて選択され得る。例えば、ファイルは、当該ファイルを表すバー上にカーソルを位置決めすることによって選択され得る。同様に、所望の時点は、タイムラインに対するカーソルの位置に基づいて選択され得る。カーソル位置は、カーソルを乗せることによって、またはマウスボタンをクリックすることによって決定され得る。代替的な実施例では、スナップショット線の場所が、調べられる任意のファイルの時点を決定してもよい。ある実施例では、ファイルは、ファイル名をテキストボックスにタイプすることによって、またはドロップダウンもしくはポップアップメニューからファイル名を選択することによって選択され得る。
【００１９】
所望の時点およびファイルが選択されると、選択されたファイルにおける内容の状態が、選択された時点において表示され得る。図５における例は、対象のファイルであるFile_C.txtを表すバーの上にマウスが乗っていることを示している。選択された時点におけるファイル内容は、ポップアップウィンドウ５１０に提示され得る。ある実施例では、ファイルの内容全体が、ファイルの現在の状態から独立して、当該時点において表示され得る。別の実施例では、ファイル内容の表示は、履歴バージョンと現在のバージョンとの内容の結合を含み、履歴バージョンと現在のバージョンとの間で内容がいかに変化したかを示し得る。ファイルのバージョン間の違いを特定する方法は、例えば、変化した要素を特定するための色、下線および／または取消線記号の使用を含み得る。図５では、網掛け領域が、選択された履歴上の時点以降に変更された内容を示し得る。さらに別の実施例では、履歴状態と現在の状態との違いのみが表示され、履歴バージョンと現在のバージョンとの両方のバージョンに共通する内容は表示されなくてもよい。
【００２０】
ユーザは、正確な時点が選択されたことを検証するために、ある時点における特定のファイルの状態を点検し得る。検証されると、ユーザは、全てのファイルが、選択された時点において有していた状態に戻る環境を作成するよう要求し得る。例えば、図４を参照して、ユーザがスナップショット線の位置によって選択された時点に基づいて環境を作成するよう要求した場合、当該環境は、開かれた時のFile-A.txt、初めて保存された後のFile-B.txt、および閉じられる直前のFile-C.txtのバージョンを含むであろう。当該環境には、File-D.txtおよびFile-E.txtのファイルは存在しないであろう。なぜなら、それらのファイルは、５／２９／１２  １３：００から５／２０／１２  １０：１７までの間は開いていなかったからである。
【００２１】
ある実施例では、チェックポイント同士の間、例えばオープンとセーブとの間またはセーブ同士の間にファイルに加えられる変更は、状態に反映されないであろう。各ファイルの状態は、その最後のオープンまたはセーブの時点の状態であろう。１つ以上のファイルの内容の保存は、ユーザによって引起される（ユーザ起動である）場合もあれば、ＩＤＥにおけるタイマによって引起される場合もある。ある実施例では、各バーにおける点線の保存される線が、ユーザ起動の保存を表し得る。ユーザ起動の保存は、個々のファイルを保存する場合もあれば、全てのファイルを同一の時点で保存する場合もある。たとえＩＤＥが複数のファイルを保存するために逐次的にファイルを反復し得て、そのため、ファイル全体にわたる実際の保存時刻が異なり得るとしても、ＩＤＥは、コレクション内の各ファイルについての保存ポイントとして共通の時点を割り当て得る。また、ＩＤＥは、ユーザ起動の保存同士の間にファイルのスナップショットを自動的に保存し得る。自動的なスナップショットは、同一の点線を用いて、何らかの他の記号を用いてバー内に示される場合もあれば、全く示されない場合もある。そして、特定の時点におけるファイルの状態は、ユーザが保存を起動したかＩＤＥが保存を起動したかの最後のチェックポイント以降のファイルの状態であり得る。
【００２２】
図６は、実施例に係る、本明細書に記載されている技術に関連付けられる高レベルのステップを示す。ステップ６１０において、特定の期間に関連付けられるファイル状態のグラフが生成され、表示される。ステップ６２０において、ＩＤＥは、所望の時点を示すユーザ入力を受取る。所望の時点の受取りに応答して、所望の時点におけるタイムラインと交差するようにスナップショット線が再び引かれる。ステップ６３０において、所望の時点における状態のファイルを備える新たな環境が作成され得る。
【００２３】
これらの高レベルのステップを実現するために、グラフィング環境および履歴データのストアが用いられ得る。グラフィング環境は、突き詰めれば、グラフィカルコンピュータユーザインターフェースであり、任意の線およびテキストをその上に描くことができる機能を有している。データストアは、ＩＤＥによって開かれた全てのファイルのリストと、各々が開かれたり閉じられたりした時刻と、ファイルが開いていた間のさまざまな時点におけるファイルの状態とを含み得る。ＩＤＥは、ファイルのオープン、クローズおよびセーブを遮る制御機構を含み得る。これらのイベントのうちの１つが起こると、当該イベントに関連付けられるデータが、当該ファイルのためのデータストアに入れられ得る。
【００２４】
図７は、本発明の実施例に係るファイル状態を再作成するために格納される例示的なデータを示す。イベントログ７００は、ファイルオープンイベントおよびファイルクローズイベントの時間順のリストである。イベントログ７００は、任意の時点においてどのファイルが開いていたかを判断するため、および、タイムライン上でいかに各ファイルをグラフ化するかを判断するために用いられ得る。本発明の実施例では、各ファイルの内容が保存された時刻を記録するために、イベントログ７００から分離した別個のセーブイベントリスト７１０が用いられ得る。全てのファイルを一緒にチェックポイント化する上記の例では、代表的な時点が選択され、この同一の代表的な時刻を有するセーブイベントリストに全てのファイルが記録されるであろう。
【００２５】
ある実施例では、イベントログ７００およびイベントセーブリスト７１０は、イベントに関連付けられるテキストラベルを格納するための追加の列を含み得る。
【００２６】
保存された時の各ファイルの状態は、本明細書ではファイル状態データストア７２０と呼ばれるさらに別のデータストアに格納され得る。ファイルに対する修正が保存されると、当該時点におけるファイル状態を再構築するために必要な情報がファイル状態データストア７２０に保存される。ある実施例では、ファイル内容のコピー全体が格納され得る。代替的な実施例では、最後のチェックポイント以降に加えられた変更がファイル状態データストア７２０に書込まれてもよい。ある実施例では、イベントログ７００およびセーブイベントリスト７１０は、時間でソートされた単一のリストに併合され得る。
【００２７】
ユーザが関連するファイルのグラフの閲覧を要求すると、ファイルの状態を表示することになる履歴上の期間が決定される。履歴上の期間は、グラフのタイムラインによって表される、現在の時刻から遡る時間量である。履歴上の期間は、ユーザからの入力として受取られる場合もあれば、ＩＤＥ内で構成される場合もあれば、少なくともイベントログに格納されるイベントの数および当該イベントを含む期間を考慮する規則に基づいて動的に決定される場合もある。図８は、本発明の実施例に係るファイル状態グラフの生成を示すフロー図である。イベントログは、グラフが表す期間の開始後に、第１の時刻項目から始まって、時系列順に読取られ得る。例えば、図７に示される例示的なデータに基づいて、現在の時刻が３：３０ｐｍであり、グラフが同日早くの１０：００ａｍに開始するファイル状態を表す場合、イベントログから読取られる第１の項目は、１０：０１ａｍに起こったイベントであろう。ステップ８１０において、時刻、イベントのタイプおよびファイル名を含む次のイベントログ項目が読取られる。ステップ８２０において、イベントのタイプがオープンファイルイベントであれば、ステップ８３０において、このファイルを表すように新たなバーが作成され、ファイルが開かれた時に対応してＸ軸に対してバーの左側が描かれる。イベントがオープンファイルイベントでなければ、ステップ８４０において、イベントがクローズファイルイベントであることを検証するためにイベントがテストされる。イベントがクローズファイルイベントであれば、ステップ８５０において、クローズイベントから読取られる時点にバーの右側を描くことによってこのファイルのバーが完成され、バーの左側と右側とは接続されて、長方形のバーの上部および底部を形成する。グラフによって表される期間内に起こったセーブファイルイベントが読取られ、セーブが行われた時点と一致する位置におけるバー内に線が引かれ得る。
【００２８】
スナップショット線は、最初は、タイムラインの中央、履歴ファイル内容の調査または履歴環境の作成を要求するためにスナップショット線が用いられた最後の時点、または現在の時刻から過去の特定の時間量を表す時点などの、構成された場所に引かれ得る。
【００２９】
ユーザが例えばスナップショット線を対象の時点にスライドさせることによって対象の時点を肯定的に選択すると、ユーザは、点検のためのファイルを示し得る。選択されたファイルの状態の印は、セーブイベントリストにおいて対象の時点を探すことによって検索および表示され得る。セーブイベントリストは、時間によって索引付けされ得る。所望のファイルについての対象の時点に対応するセーブリスト項目が見つけられてもよく、ファイルの保存された状態を検索するためにファイル参照が用いられ得る。ファイルの保存された状態に基づいて、ファイルの状態が再作成され得る。ある実施例では、セーブイベントリストは、時間によって索引付けされる代わりに、または時間によって索引付けされることに加えて、テキストラベルによって索引付けされてもよい。
【００３０】
図９は、本発明の実施例に係る、特定の時点において開いていたファイルの環境を再作成するフロー図である。ステップ９１０において、ＩＤＥは、特定の時点においてどのファイルが開いていたかを判断する。特定の時点に対応するイベントログ内の項目の場所が開始場所として用いられる。関連するファイルの群における各ファイルごとに、当該ファイルについて起こった最後のイベントを見つけるために、時間を遡ってログ項目がサーチされ得る。最後のイベントがオープンイベントであれば、ファイルは開かれ、最後のイベントがクローズイベントであれば、ファイルは閉じられた。ステップ９２０において、各々の開いているファイルごとに、特定の時点より前に、セーブイベントリストにおいて最後のセーブイベント項目が特定される。ステップ９３０において、セーブイベント項目において参照を用いて、ファイル状態データストアからの保存されたファイル状態情報を用いて、ファイル状態が判断され得る。
【００３１】
図１０は、本明細書に記載されているアプローチを実現するために用いられ得るコンピュータシステムの実施例を示す。図１０に示されるコンピュータシステムは、前に記載したシステムの一部として組込まれてもよく、前に記載した方法を実行するために用いられ得る。例えば、コンピュータシステム１０００は、ファイル管理、グラフィカルユーザインターフェース、ソフトウェア開発環境を実行するアプリケーションを実行することができる。コンピュータシステム１０００は、記憶構造７００，７１０および７２０などの記憶構造にアクセスし得る。図１０は、本明細書に記載されているさまざまな実施例によって提供される方法を実行することができるコンピュータシステム１０００の一実施例の概略図である。なお、図１０は、単にさまざまな構成要素の一般化された図を提供するよう意図されており、構成要素のうちのいずれかまたは全ては適宜利用可能である。したがって、図１０は、相対的に分離された態様で、または相対的に統合された態様で個々のシステム要素がいかに実現され得るかを大まかに示している。
【００３２】
バス１００５によって電気的に結合され得る（または、そうでなければ適宜通信し得る）ハードウェア要素を備えるコンピュータシステム１０００が示されている。当該ハードウェア要素は、１つ以上の汎用プロセッサおよび／または１つ以上の専用プロセッサ（デジタル信号処理チップ、グラフィックス加速プロセッサなど）を含むがそれらに限定されない１つ以上のプロセッサ１０１０と、マウス、キーボードなどを含み得るがそれらに限定されない１つ以上の入力装置１０１５と、ディスプレイ装置、プリンタなどを含み得るがそれらに限定されない１つ以上の出力装置１０２０とを含み得る。
【００３３】
コンピュータシステム１０００は、１つ以上の非一時的な記憶装置１０２５をさらに含み得て（および／または１つ以上の非一時的な記憶装置１０２５と通信し得て）、当該１つ以上の非一時的な記憶装置１０２５は、ローカルおよび／またはネットワークアクセス可能な記憶装置を備え得るがそれに限定されるものではなく、および／または、ディスクドライブ、ドライブアレイ、光学記憶装置、プログラム可能、フラッシュ更新可能などであり得るランダムアクセスメモリ（「ＲＡＭ」）および／またはリードオンリメモリ（「ＲＯＭ」）などのソリッドステート記憶装置を含み得るがそれらに限定されるものではない。このような記憶装置は、さまざまなファイルシステム、データベース構造などを含むがそれらに限定されない任意の適切なデータストアを実現するように構成され得る。
【００３４】
また、コンピュータシステム１０００は、通信サブシステム１０３０も含んでもよく、当該通信サブシステム１０３０は、モデム、ネットワークカード（無線または有線）、赤外線通信装置、無線通信装置および／またはチップセット（ブルートゥース（登録商標）装置、８０２．１１装置、ＷｉＦｉ装置、ＷｉＭａｘ装置、セルラ通信設備など）などを含み得るがそれらに限定されるものではない。通信サブシステム１０３０は、データをネットワーク（一例を挙げると、以下に記載されるネットワークなど）、他のコンピュータシステム、および／または本明細書に記載されているその他の装置と交換することを可能にし得る。多くの実施例では、コンピュータシステム１０００は、上記のＲＡＭまたはＲＯＭ装置を含み得るワーキングメモリ１０３５をさらに備えている。
【００３５】
また、コンピュータシステム１０００は、現在のところワーキングメモリ１０３５内に位置するように示されているソフトウェア要素も備えてもよく、当該ソフトウェア要素は、オペレーティングシステム１０４０、デバイスドライバ、実行可能なライブラリ、および／または１つ以上のアプリケーションプログラム１０４５などの他のコードを含み、本明細書に記載されているように、さまざまな実施例によって提供されるコンピュータプログラムを備えてもよく、および／または、他の実施例によって提供される方法を実現するようにおよび／またはシステムを構成するように設計され得る。単に一例として、上記の方法に関連して記載される１つ以上の手順は、コンピュータ（および／またはコンピュータ内のプロセッサ）によって実行可能なコードおよび／または命令として実現され得る。そして、ある局面では、このようなコードおよび／または命令は、記載されている方法に従って１つ以上の動作を実行するように汎用コンピュータ（または他の装置）を構成および／または適合させるために用いられ得る。
【００３６】
一組のこれらの命令および／またはコードは、上記の記憶装置１０２５などの非一時的なコンピュータ読取可能な記憶媒体に格納され得る。場合によっては、記憶媒体は、コンピュータシステム１０００などのコンピュータシステム内に組込まれてもよい。他の実施例では、記憶媒体は、コンピュータシステム（例えば、コンパクトディスクなどの取外し可能な媒体）から分離していてもよく、および／または、命令／コードを格納した状態で汎用コンピュータをプログラム、構成および／または適合させるために記憶媒体が使用可能であるようにインストールパッケージに設けられてもよい。これらの命令は、コンピュータシステム１０００によって実行可能な実行可能コードの形態をとってもよく、および／または、（例えば、さまざまな一般に利用可能なコンパイラ、インストールプログラム、圧縮／復元ユーティリティなどのうちのいずれかを用いた）コンピュータシステム１０００上でのコンパイルおよび／またはインストール時に実行可能コードの形態をとるソースおよび／またはインストール可能なコードの形態をとってもよい。
【００３７】
具体的な要求に従って実質的な変形がなされてもよいことは当業者に明らかであろう。例えば、特注のハードウェアも用いられてもよく、および／または、特定の要素がハードウェア、（アプレットなどの高移植性ソフトウェアを含む）ソフトウェアまたはそれら両方で実現されてもよい。さらに、ネットワーク入力／出力装置などの他のコンピューティング装置との接続が利用されてもよい。
【００３８】
上記のように、一局面では、いくつかの実施例は、本発明のさまざまな実施例に係る方法を実行するために（コンピュータシステム１０００などの）コンピュータシステムを利用し得る。一組の実施例によれば、このような方法の手順のうちのいくつかまたは全ては、プロセッサ１０１０がワーキングメモリ１０３５に含まれる（オペレーティングシステム１０４０および／またはアプリケーションプログラム１０４５などの他のコードに組込まれ得る）１つ以上の命令の１つ以上のシーケンスを実行することに応答して、コンピュータシステム１０００によって実行される。このような命令は、記憶装置１０２５のうちの１つ以上などの別のコンピュータ読取可能な媒体からワーキングメモリ１０３５に読取られ得る。単に一例として、ワーキングメモリ１０３５に含まれる命令のシーケンスを実行することにより、本明細書に記載されている方法の１つ以上の手順をプロセッサ１０１０に実行させ得る。
【００３９】
本明細書で用いられる「マシン読取可能な媒体」および「コンピュータ読取可能な媒体」という用語は、特定の態様でマシンを動作させるデータを提供することに関わる任意の媒体を指す。コンピュータシステム１０００を用いて実現される実施例では、さまざまなコンピュータ読取可能な媒体は、命令／コードをプロセッサ１０１０に提供して実行することに関与し得て、および／または、このような命令／コードを格納および／または搬送するために用いられ得る。多くの実現例では、コンピュータ読取可能な媒体は、物理的な記憶媒体および／または有形の記憶媒体である。このような媒体は、不揮発性媒体または揮発性媒体の形態をとり得る。不揮発性媒体としては、例えば記憶装置１０２５などの光学ディスクおよび／または磁気ディスクが挙げられる。揮発性媒体としては、ワーキングメモリ１０３５などのダイナミックメモリが挙げられるがそれに限定されるものではない。
【００４０】
物理的なコンピュータ読取可能な媒体および／または実体のあるコンピュータ読取可能な媒体の一般的な形態としては、例えばフロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、またはその他の磁気媒体、ＣＤ−ＲＯＭ、その他の光学媒体、パンチカード、ペーパーテープ、穴のパターンを有するその他の物理媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、その他のメモリチップもしくはカートリッジ、またはコンピュータが命令および／またはコードを読取ることができるその他の媒体が挙げられる。
【００４１】
コンピュータ読取可能な媒体のさまざまな形態は、１つ以上の命令の１つ以上のシーケンスをプロセッサ１０１０に搬送して実行することに関与し得る。単に一例として、当該命令は、最初は、リモートコンピュータの磁気ディスクおよび／または光学ディスク上で搬送され得る。リモートコンピュータは、当該命令をそのダイナミックメモリにロードして、コンピュータシステム１０００によって受取られるように、および／または、コンピュータシステム１０００によって実行されるように、伝送媒体を介して当該命令を信号として送り得る。
【００４２】
通信サブシステム１０３０（および／またはそのコンポーネント）は一般に信号を受取り、次いでバス１００５が当該信号（および／または信号によって搬送されるデータ、命令など）をワーキングメモリ１０３５に搬送し得て、プロセッサ１０１０がワーキングメモリ１０３５から当該命令を検索および実行する。ワーキングメモリ１０３５によって受取られた命令は、プロセッサ１０１０による実行の前または後に、非一時的な記憶装置１０２５に任意に格納され得る。
【００４３】
上記の方法、システムおよび装置は一例である。さまざまな構成では、さまざまな手順または構成要素を適宜省略、置換または追加することができる。例えば、代替的な構成では、当該方法は、記載されている順序とは異なる順序で実行されてもよく、および／または、さまざまな段階が追加、省略および／または組合わせられてもよい。また、特定の構成に関連して記載されている特徴は、さまざまな他の構成では組合わせられてもよい。当該構成のさまざまな局面および要素は、同様に組合わせられてもよい。また、技術は進化するので、要素のうちの多くは一例であり、本開示の範囲または特許請求の範囲を限定するものではない。
【００４４】
（実現例を含む）例示的な構成を十分に理解してもらうために、本明細書には具体的な詳細が記載されている。しかし、これらの具体的な詳細がなくても構成を実施することができる。例えば、構成を曖昧にすることを回避するために、不必要な詳細なしに、周知の回路、プロセッサ、アルゴリズム、構造および技術が示されてきた。本明細書は、例示的な構成を提供しているに過ぎず、請求項の範囲、適用可能性または構成を限定するものではない。それどころか、構成の上記の説明は、記載されている技術を実現するための実施可能に十分な記載を当業者に提供する。本開示の精神または範囲から逸脱することなく、要素の機能および配置の点でさまざまな変更がなされてもよい。
【００４５】
また、構成は、フロー図またはブロック図として示されるプロセスとして記載されてもよい。各々は動作を逐次的なプロセスとして説明し得るが、動作のうちの多くは並列または同時に実行されてもよい。また、動作の順序は再編成されてもよい。プロセスは、図に含まれていない追加のステップを有していてもよい。さらに、当該方法の例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語またはそれらの任意の組合わせによって実現されてもよい。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実現される場合、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体などの非一時的なコンピュータ読取可能な媒体に格納され得る。プロセッサが、記載されているタスクを実行し得る。
【００４６】
一実施例によれば、装置であって、一組の関連するファイルのグラフをコンピュータディスプレイ上に表示するための手段を備え、上記グラフは、上記一組の関連するファイルの各ファイルごとに、開始ポイントおよび終了ポイントおよび１つ以上の中間チェックポイントを示し、上記開始ポイント、上記終了ポイントおよび上記１つ以上の中間チェックポイントは各々、ある時点を表し、各時点は、上記各ファイルのファイル内容の状態に関連付けられ、上記各ファイルは、第１の時点において現在の状態の内容を有し、上記装置はさらに、上記第１の時点より前の特定の時点を示す入力を受取るための手段と、上記一組の関連するファイルのファイル内容を備える環境を再生するための手段とを備え、上記環境における上記ファイル内容は、上記特定の時点に関連付けられた履歴状態を有する、装置が提供される。
【００４７】
一例では、上記装置は、上記環境を表示するための手段をさらに備え、上記環境を表示することは、上記特定の時点において開いていたファイル内容の状態の印を表示することを含む。
【００４８】
一例では、上記装置は、上記各ファイルの上記開始ポイント、上記終了ポイントおよび上記１つ以上の中間チェックポイントに対応する時点を含む履歴上の時点を含むタイムラインを表示するための手段をさらに備える。
【００４９】
一例では、上記一組の関連するファイルの上記グラフは、上記一組の関連するファイルにおける上記各ファイルを表す１つ以上のバーを有する棒グラフであり、上記１つ以上のバーのうちの１つのバーの一方の側は、上記各ファイルの上記開始ポイントに対応する上記タイムライン上のある時点に対して位置決めされ、上記バーのもう一方の側は、上記各ファイルの上記終了ポイントに対応する上記タイムライン上のある時点に対して位置決めされ、上記バー内に１つ以上の印を表示することを備え、各印は、上記各ファイルの中間チェックポイントに対応する上記タイムライン上のある時点に対して位置決めされる。
【００５０】
一例では、上記タイムラインは、水平な線として表示され、各々がファイルを表す上記１つ以上のバーは、履歴上のある時点において上記タイムラインと交差する垂直な線が、上記履歴上のある時点に対応する側における各バーまたは印とも交差するように、上記タイムラインに平行に表示される。
【００５１】
一例では、上記タイムライン上の特定の時点を示す入力を受取るための手段は、上記タイムラインに直交する線を表示するための手段をさらに備え、上記直交する線は、履歴スナップショットを時間で表し、上記タイムライン上の特定の時点を示す入力を受取るための手段はさらに、入力の受取りに応答して、上記直交する線が上記特定の時点において上記タイムラインと交差するように移動することを表示するための手段を備える。
【００５２】
一例では、ファイルの上記開始ポイントは、上記一組の関連するファイルにおける上記各ファイルが開かれる時刻を表し、上記ファイルの上記終了ポイントは、上記各ファイルが閉じられる時刻を表し、上記各ファイルの上記中間チェックポイントの各中間チェックポイントは、上記各ファイルが保存された時刻を表す。
【００５３】
一例では、上記グラフを表示するための手段は、特定の期間中に開いていたファイルの第１のリストを検索するための手段と、上記特定の期間内の任意の時刻において開いていた上記一組の関連するファイルにおける各ファイルごとに、第１のファイルオープン時点として、上記各ファイルが開かれた上記特定の期間内の時刻を検索するための手段と、第１のファイルクローズ時点として、上記各ファイルが閉じられた対応する時刻を検索するための手段と、上記第１のファイルオープン時点に従って一方の側が位置決めされ、上記第１のファイルクローズ時点に従ってもう一方の側が位置決めされた第１のバーを表示するための手段と、第１のファイルセーブ時点として、上記各ファイルが保存された１つ以上の時刻を検索するための手段とをさらに備え、第１のファイルセーブ時点は、上記第１のファイルオープン時点と上記第１のファイルクローズ時点との間にあり、上記グラフを表示するための手段はさらに、上記第１のバー上に１つ以上の印を表示するための手段を備え、各印は、上記１つ以上の第１のファイルセーブ時点のうちの１つに対応する。
【００５４】
一例では、上記グラフを表示するための手段は、上記ファイルの第１のリストにおける各ファイルごとに、第２のファイルオープン時点として、上記各ファイルが開かれた上記特定の期間内の時刻を検索するための手段と、第２のファイルクローズ時点として、上記各ファイルが閉じられた対応する時刻を検索するための手段とをさらに備え、上記第２のファイルオープン時点は、上記第１のファイルクローズ時点の後であり、上記グラフを表示するための手段はさらに、上記第２のファイルオープン時点に従って一方の側が位置決めされ、上記第２のファイルクローズ時点に従ってもう一方の側が位置決めされた第２のバーを表示するための手段と、第２のファイルセーブ時点として、上記各ファイルが保存された１つ以上の時刻を検索するための手段とをさらに備え、第２のファイルセーブ時点は、上記第２のファイルオープン時点と上記第２のファイルクローズ時点との間にあり、上記グラフを表示するための手段はさらに、上記第２のバー上に１つ以上の印を表示するための手段を備え、各印は、上記１つ以上の第２のファイルセーブ時点のうちの１つに対応する。
【００５５】
一例では、上記ファイルの第１のリストを検索するための手段は、時間ベースの索引に基づく。
【００５６】
一例では、上記第１のファイルセーブ時点を検索するための手段は、時間ベースの索引以外の表から上記第１のファイルセーブ時点を検索することをさらに備える。
【００５７】
一例では、上記一組の関連するファイルは、共通のプロジェクトに属しており、上記一組の関連するファイルにおける複数の上記ファイルは、共通のディレクトリ内にあり、上記一組の関連するファイルの少なくとも１つのファイルは、上記共通のディレクトリの外側にある。
【００５８】
一例では、上記一組の関連するファイルは、統合開発環境内で管理されるソースファイルを備え、各ソースファイルは、コンピュータプログラミング言語に準拠するテキストを含む。
【００５９】
一例では、上記装置は、上記統合開発環境をさらに備え、上記統合開発環境において１つ以上の開いているファイルを保存するためにファイルセーブ時点においてトリガを受取るための手段と、上記グラフにおいて上記ファイルセーブ時点を特定するためのラベルを受取るための手段と、上記保存された１つ以上の開いているファイルを上記ラベルに基づいて索引付けするために索引項目を作成するための手段とをさらに備える。
【００６０】
一例では、上記ラベルは、上記トリガが受取られた時を示すタイムスタンプである。
一例では、上記ラベルは、タイムスタンプではないマイルストンの名前である。
【００６１】
一例では、上記トリガは、上記１つ以上の開いているファイルの保存を求めるユーザ要求に応答して生成される。
【００６２】
一例では、上記トリガは、タイマに基づいて生成される。
いくつかの例示的な構成について説明してきたが、本開示の精神から逸脱することなく、さまざまな修正例、代替的な構造および等価物が用いられてもよい。例えば、上記の要素はより大きなシステムの構成要素であってもよく、そのような場合には他の規則が本発明の適用例に優先してもよく、またはそうでなければ本発明の適用例を修正してもよい。また、上記の要素が検討される前、最中または後にいくつかのステップが着手されてもよい。したがって、上記の説明は特許請求の範囲を制限するものではない。
【図１】
2015525930.tif 000003
【図２】
2015525930.tif 000004
【図３ａ】
2015525930.tif 000005
【図３ｂ】
2015525930.tif 000006
【図３ｃ】
2015525930.tif 000007
【図４】
2015525930.tif 000008
【図５】
2015525930.tif 000009
【図６】
2015525930.tif 000010
【図７】
2015525930.tif 000011
【図８】
2015525930.tif 000012
【図９】
2015525930.tif 000013
【図１０】
2015525930.tif 000014
【国際調査報告】
2015525930.tif 000015
2015525930.tif 000016
2015525930.tif 000017