(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5665889
(24)【登録日】2014年12月19日
(45)【発行日】2015年2月4日
(54)【発明の名称】サブバージョンリポジトリをバックアップする方法及び装置
(51)【国際特許分類】
G06F 12/00 20060101AFI20150115BHJP
【FI】
G06F12/00 531M
【請求項の数】15
【全頁数】14
(21)【出願番号】特願2012-556053(P2012-556053)
(86)(22)【出願日】2010年11月30日
(65)【公表番号】特表2013-521565(P2013-521565A)
(43)【公表日】2013年6月10日
(86)【国際出願番号】US2010058407
(87)【国際公開番号】WO2011109049
(87)【国際公開日】20110909
【審査請求日】2013年10月31日
(31)【優先権主張番号】201010119877.4
(32)【優先日】2010年3月4日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】510330264
【氏名又は名称】アリババ・グループ・ホールディング・リミテッド
【氏名又は名称原語表記】ALIBABA GROUP HOLDING LIMITED
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(72)【発明者】
【氏名】ツァン ジン
【審査官】
池田 聡史
(56)【参考文献】
【文献】
特開2005−122611(JP,A)
【文献】
特開平10−055298(JP,A)
【文献】
特開2002−182988(JP,A)
【文献】
特開2003−131916(JP,A)
【文献】
特開平11−338754(JP,A)
【文献】
特開平08−212142(JP,A)
【文献】
特開2008−108145(JP,A)
【文献】
米国特許出願公開第2008/0288811(US,A1)
【文献】
米国特許出願公開第2005/0177603(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
バックアップリポジトリのバージョン属性が事前設定され、および、前記バックアップリポジトリの最新バージョンを識別する、サブバージョンリポジトリをバックアップする、コンピュータにより実行される方法であって、
前記バックアップリポジトリの前記バージョン属性に基づいて前記バックアップリポジトリを同期させることと、
同期が無事に行われた場合、前記バックアップリポジトリの前記バージョン属性を、同期されたバージョンのバージョン属性に設定することと、
同期が無事に行われなかった場合、カレントバージョンが同期不可バージョンであると決定し、オリジナルリポジトリのコピーを複製することによって前記オリジナルリポジトリをバックアップし、前記バックアップリポジトリの前記バージョン属性を、前記同期不可バージョンのバージョン属性に設定することと、
を含む方法。
【請求項2】
カレントバージョンが同期不可バージョンであると決定することが、
同期失敗のエラーメッセージを取得することと、
前記エラーメッセージに基づいて前記カレントバージョンが同期不可バージョンであると決定すること、または
前記エラーメッセージに対応するエラー処理後に同期失敗が続く場合に、前記カレントバージョンが同期不可バージョンであると決定することと、
を含む、請求項1に記載の方法。
【請求項3】
前記エラーメッセージに対応するエラー処理が、
前記エラーメッセージが、前記バックアップリポジトリをロックされているとして示す場合に、前記バックアップリポジトリの同期ロック属性を削除することと、
を含む、請求項2に記載の方法。
【請求項4】
前記エラーメッセージに対応するエラー処理が、
前記エラーメッセージが、前記バックアップリポジトリ内のファイルをロックされているとして示す場合に、前記バックアップリポジトリ内の前記ファイルのロック属性を削除することと、
を含む、請求項2に記載の方法。
【請求項5】
前記エラーメッセージに対応するエラー処理が、
前記エラーメッセージが前記バックアップリポジトリの最新バージョンのエラーを示す場合に、前記バックアップリポジトリの前記最新バージョンを削除し、前記バックアップリポジトリのバージョン属性を最後から2番目のバージョンのバージョン属性に修正することと、
を含む、請求項2に記載の方法。
【請求項6】
サブバージョンリポジトリをバックアップする装置であって、
バージョン属性に基づいて前記サブバージョンリポジトリの同期動作を実現する同期部と、
前記同期部による前記同期動作が無事に行われた場合に、バックアップリポジトリのバージョン属性を最新版の値に設定する同期成功処理部と、
前記同期部による前記同期動作が無事に行われなった場合に、前記サブバージョンリポジトリのコピーを複製することによって前記サブバージョンリポジトリをバックアップし、前記バックアップリポジトリの前記バージョン属性を前回の同期不可バージョンの値に設定する同期失敗処理装置と、
を備える装置。
【請求項7】
前記同期動作失敗時にエラーメッセージを取得するエラーメッセージ取得サブユニットと、
前記エラーメッセージに基づいてカレントバージョンを同期不可バージョンとして決定する第1決定サブユニットと、
前記エラーメッセージに基づいて1つまたは複数のエラーを処理するエラー処理サブユニットと、
前記1つまたは複数のエラーが処理された後も同期が失敗するときに、前記カレントバージョンを同期不可バージョンとして決定する第2の決定サブユニットと、
を含む、同期不可バージョン決定部と、
をさらに備える、請求項6に記載の装置。
【請求項8】
前記エラーメッセージが、前記バックアップリポジトリをロックされているとして示す場合、前記エラー処理サブユニットが前記バックアップリポジトリの同期ロック属性を削除する、請求項7に記載の装置。
【請求項9】
前記エラーメッセージが、前記バックアップリポジトリ内のファイルをロックされているとして示す場合、前記エラー処理サブユニットが前記バックアップリポジトリ内の前記ファイルのロック属性を削除する、請求項7に記載の装置。
【請求項10】
前記エラーメッセージが、前記バックアップリポジトリの最新バージョンのエラーを示す場合、前記エラー処理サブユニットが、前記バックアップリポジトリの前記最新バージョンを削除し、前記バックアップリポジトリのバージョン属性を最後から2番目のバージョンのバージョン属性に修正する、請求項7に記載の装置。
【請求項11】
実行時、多数のアクションを実行するコンピュータ実行可能命令を含む1つまたは複数のコンピュータ可読記憶媒体であって、
バックアップリポジトリのバージョン属性に基づいて前記バックアップリポジトリを同期させることと、
同期が無事に行われた場合、前記バックアップリポジトリの前記バージョン属性を、同期されたバージョンのバージョン属性に設定することと、
同期が無事に行われなかった場合、カレントバージョンが同期不可バージョンであると決定し、オリジナルリポジトリのコピーを複製することによって前記オリジナルリポジトリをバックアップし、前記バックアップリポジトリの前記バージョン属性を、前記同期不可バージョンのバージョン属性に設定することと、
を含む1つまたは複数のコンピュータ可読記憶媒体。
【請求項12】
カレントバージョンが同期不可バージョンであると決定することが、
同期失敗のエラーメッセージを取得することと、
前記エラーメッセージに基づいて前記カレントバージョンが同期不可バージョンであると決定すること、または
前記エラーメッセージに対応するエラー処理後に同期失敗が続く場合に、前記カレントバージョンが同期不可バージョンであると決定することと、
を含む、請求項11に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項13】
前記エラーメッセージに対応するエラー処理が、
前記エラーメッセージが、前記バックアップリポジトリをロックされているとして示す場合に、前記バックアップリポジトリの同期ロック属性を削除することと、
を含む、請求項12に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項14】
前記エラーメッセージに対応するエラー処理が、
前記エラーメッセージが、前記バックアップリポジトリ内のファイルをロックされているとして示す場合に、前記バックアップリポジトリ内の前記ファイルのロック属性を削除することと、
を含む、請求項12に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項15】
前記エラーメッセージに対応するエラー処理が、
前記エラーメッセージが前記バックアップリポジトリの最新バージョンのエラーを示す場合に、前記バックアップリポジトリの前記最新バージョンを削除し、前記バックアップリポジトリのバージョン属性を最後から2番目のバージョンのバージョン属性に修正することと、
を含む、請求項12に記載の1つまたは複数のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
「関連出願の相互参照」
本願は、参照することにより全体として本明細書に組み込まれる、「Method and Apparatus of Backing-Up Subversion Repository」と題する2010年3月4日に出願された中国特許出願201010119877.4号に基づく優先権を主張する。
【0002】
本開示はコンピュータの分野に関し、特にサブバージョンリポジトリをバックアップする方法および装置に関する。
【背景技術】
【0003】
SVNと呼ばれるサブバージョンは、最近開発されたコードバージョン管理ソフトウェアの一種である。SVNは、従来のバージョン管理ソフトウェアよりも多くの優位点をもっている。現在では、ますます多くのユーザが、コードを管理し、制御するためにSVNを活用している。
【発明の概要】
【0004】
現在のコード管理ソフトウェアは、バックアップリポジトリを必要とする。最も単純且つ頻繁に使用されるバックアップ方法は、リポジトリが所与のコンテンツのコピーを保持し、そのコンテンツをバックアップする直接複製コマンドである。ただし、リポジトリ内のデータの量は通常非常に多く、各フルバックアップのたびに完了するために非常に長い時間を要する。
【0005】
現在使用されている技術で別の方法は、リポジトリが同期される同期コマンドである。バックアップリポジトリは同期動作のたびにバックアップを必要とする最後のコンテンツを更新するだけである。したがって、バックアップ速度は加速する。ただし、この手法の問題点は、同期プロセス中にエラーが発生すると、以後のバージョンが同期されず、適切にバックアップされるカレントデータももはや使用されなくなるという点である。さらに、新しいバックアップが配備されても、同期動作エラーが出現しないという保証は依然としてない。言い換えると、リポジトリ同期動作が継続できないことがある。
【0006】
前述された技術的な問題を解決するために、本開示は、サブバージョンリポジトリをバックアップする方法および装置に関する例示的な実現例を提供する。これは、リポジトリの同期エラーを処理し、同期動作が続行できることを保証することを目的としている。
【0007】
1つの態様では、バックアップリポジトリのバージョン属性が事前設定され、バックアップリポジトリの最新バージョンを特定するサブバージョンリポジトリをバックアップする方法は、バックアップリポジトリのバージョン属性に基づいてバックアップリポジトリを同期することと、同期が無事に行われた場合には、バックアップリポジトリのバージョン属性を同期されたバージョンの識別で更新することと、同期が無事に行われなかった場合には、カレントバージョンが同期不可バージョンであると決定し、オリジナルリポジトリのコピーを複製することによってオリジナルリポジトリをバックアップし、バックアップリポジトリのバージョン属性を同期不可バージョンの識別子で更新することを含むことがある。
【0008】
カレントバージョンが同期不可バージョンであると決定することは、同期失敗のエラーメッセージを取得し、エラーメッセージに基づいてカレントバージョンが同期不可バージョンであると決定すること、またはエラーメッセージに対応するエラー処理後も同期失敗が継続する場合にカレントバージョンが同期不可バージョンであると決定することを含んでよい。
【0009】
エラーメッセージに対応するエラー処理は、エラーメッセージが、バックアップリポジトリをロックされているとして示す場合にバックアップリポジトリの同期ロック属性を削除することを含んでよい。
【0010】
エラーメッセージに対応するエラー処理は、エラーメッセージが、バックアップリポジトリ内のファイルをロックされているとして示す場合にバックアップリポジトリ内のファイルのロック属性を削除することを含んでよい。
【0011】
エラーメッセージに対応するエラー処理は、エラーメッセージがバックアップリポジトリの最新バージョンのエラーを示す場合に、バックアップリポジトリの最新バージョンを削除し、バックアップリポジトリのバージョン属性を最後から2番目のバージョンのバージョン属性に修正することを含んでよい。
【0012】
別の態様では、サブバージョンリポジトリをバックアップするための装置は、バージョン属性に基づいてサブバージョンリポジトリの同期動作を実現する同期部と、同期部による同期動作が成功した場合、バックアップリポジトリのバージョン属性を最新バージョンの値に設定する同期成功処理部と、同期部による同期動作が不成功である場合、サブバージョンリポジトリのコピーを複製することによってサブバージョンリポジトリをバックアップし、バックアップリポジトリのバージョン属性を最後の同期可能なバージョンの値に設定する同期失敗処理部とを含んでよい。
【0013】
装置は、同期動作失敗時にエラーメッセージを取得するエラーメッセージ取得サブユニットと、エラーメッセージに基づいて同期不可バージョンとしてカレントバージョンを決定する第1の決定サブユニットと、エラーメッセージに基づいて1つまたは複数のエラーを処理するエラー処理サブユニットと、1つまたは複数のエラーが処理された後にも同期が失敗するときにカレントバージョンを同期不可バージョンと決定する第2の決定サブユニットとを含む、同期不可バージョン決定部をさらに含んでよい。
【0014】
エラーメッセージがバックアップリポジトリをロックされているとして示す場合、エラー処理サブユニットはバックアップリポジトリの同期ロック属性を削除してよい。
【0015】
エラーメッセージがバックアップリポジトリ内のファイルをロックされているとして示す場合、エラー処理サブユニットはバックアップリポジトリ内のロック属性を削除してよい。
【0016】
エラーメッセージがバックアップリポジトリの最新バージョンのエラーを示す場合、エラー処理サブユニットは、バックアップリポジトリの最新バージョンを削除し、バックアップリポジトリのバージョン属性を最後から2番目のバージョンのバージョン属性に修正してよい。
【0017】
現在存在している技術では、空のバックアップリポジトリが確立され、同期前に初期化されなければならない。エラー発生時、以後のバージョンは同期されず、正しくバックアップされたカレントデータはもはやアクセスされないだろう。対照的に、本開示の実施形態は、バージョン属性を直接的に設定することによってバックアップリポジトリを初期化する必要はない。同期失敗時、この技法はオリジナルバックアップリポジトリをコピーし、バージョン属性を修正し、これによって、同期を続行することが可能になる。
【0018】
さらに、本開示は、同期失敗のいくつかの特定の原因に注目する。対応する自動処理方法が提供される。これらの方法はオリジナルリポジトリ全体を複製する必要なく同期を続行できるので、バックアッププロセスは最適化される。
【0019】
現在存在する技術の例示的な実施形態および技術的な計画を明確に示すために、以下に簡単な説明を付けた図を示す。明らかに、以下の図は単にいくつかの例示的な実現例にすぎず、当業者はこれらを他の図の基本として使用できるだろう。
【図面の簡単な説明】
【0020】
【
図1】本開示の実施形態に係るサブバージョンリポジトリをバックアップする方法のフローチャートを示す図である。
【
図2】本開示の実施形態に係るサブバージョンリポジトリをバックアップする装置の構造図を示す図である。
【
図3】本開示の別の実施形態に係るサブバージョンリポジトリをバックアップする装置の構造図を示す図である。
【発明を実施するための形態】
【0021】
現在のリポジトリ同期方法では、空のバックアップリポジトリが確立される必要があり、それはリポジトリの最初の同期以前にSVN同期初期化コマンドを使用して初期化される必要がある。エラー発生時、以後のバージョンは同期されず、適切にバックアップされたカレントデータはもはやアクセスされないだろう。新しいバックアップが配備されても、同期動作エラーが出現しないという保証は依然としてない。
【0022】
上述の技術的な問題に対処するために、本開示の提案されている技術的な計画は以下のように要約できる。つまり、バックアップリポジトリの事前設定されたバージョン属性が、バックアップリポジトリの最新バージョンを記録するために使用される。通常の状況では、「最新のバージョン」は、前回同期が成功したバージョンのはずである。同期失敗時には、同期が依然として維持できるように属性値を修正できる。
【0023】
一実施形態では、サブバージョンリポジトリをバックアップする方法は、バージョン属性に従ってリポジトリを同期することを含み、同期が無事に行われた場合には、バックアップリポジトリバージョン属性値が最も最新の同期バージョンであると見なされ、同期が失敗した場合、オリジナルリポジトリ全体がバックアップされ、その最後の同期不可バージョンの識別(ID)が最も最新のバージョン属性値と見なされる。
【0024】
この方法を適用する際には、バックアップリポジトリを初期化する必要性がない。方法は、バックアップリポジトリのバージョン属性を直接的にセットアップできる。正確に同期させる方法がないとき、方法はオリジナルリポジトリのコピーをバックアップし、同期がカレントコピーでも続行できるようにバックアップリポジトリバージョン属性を修正できる。
【0025】
当業者が技術的な方式をよりよく理解するために、本書には本開示の例示的な実現例が添付されている。本開示の技術的な計画は、明確かつ完全な説明とともに提示される。当業者によって得られる他の実現例が本開示の範囲内にあることが理解される。
【0026】
図1は本開示の実施形態に係るサブバージョンリポジトリをバックアップする方法のフローチャートを示す図である。例えば、repo1はオリジナルリポジトリであり、repo2はバックアップリポジトリである。方法は、後述される手順を含む。
【0027】
S101で、方法はバックアップリポジトリのバージョン属性に基づいてバックアップリポジトリを同期させる。
【0028】
リポジトリの同期前、方法はバックアップリポジトリをセットアップする。必要なセットアップ属性は、以下の通りバックアップリポジトリのバージョン属性を含む。svn: sync-last-merged-rev
【0029】
この属性は、バックアップリポジトリの最新バージョン、すなわちバージョン番号repo2/db/currentを記録する。カレントリポジトリが空である場合、バージョン番号は0になると仮定できる。以後のどのような同期にも、方法は属性を単に読み取ることだけで以後のバージョンを同期させ続けることができる。
【0030】
さらに、バックアップリポジトリ属性の必要とされるセットアップは、以下のオリジナルリポジトリのIDをさらに含む。svn: sync-from-uuid
【0031】
同期中、記録される属性はuuidとラベルが付けられたリポジトリIDである。本開示の例示的な実現例では、バージョン属性値セットアップはrepo1のuuidである。
【0032】
オリジナルリポジトリのアドレスは以下のとおりである。svn: sync-from-url
【0033】
属性レコードは、オリジナルリポジトリのメモリパスを含む必要がある。本開示の多様な実施形態では、属性値のセットアップは,repo1のメモリパスとして見なすことができる。
【0034】
上述された属性は、repo2の総合的な属性に同等である。バージョン属性のセットアップ完了後、オリジナルリポジトリ及びバックアップリポジトリは、同期リンクを確立する。方法は、リポジトリを同期させるためにコマンドsvnsync sync http://localhost/repo2を実行できる。repo2バージョン属性sync-last-merged-revに基づき、オリジナルリポジトリバージョンは置換され、バックアップバージョンrepo2に入れられる。
【0035】
さらに構成するために、repo1の新規に改訂されたバージョンが報告されるとき、自動同期が活性化できる。したがって、方法はrepo1およびrepo2のリアルタイム同期を確立する。例えば、repo1の新規に改訂されたバージョンがシステムによって報告されるとき、同期動作はrepo1スクリプト定義のポストコミットファイルを通して自動的にトリガできる。
【0036】
S102で、 同期が無事に行われた場合、方法は、バックアップリポジトリのバージョン属性を、同期されたバージョンのバージョン属性に設定する。
【0037】
通常の状況では、同期動作のたびに、バージョンrepo2の属性が、無事にバックアップされたバージョンの識別に自動的に更新される。以後のどのような同期でも、更新は直接的にバージョンのコンテンツに基づく。
【0038】
S103で、 同期が無事に行われなかった場合、方法は、カレントバージョンが同期不可バージョンであると決定し、オリジナルリポジトリのコピーを複製することによってオリジナルリポジトリをバックアップし、バックアップリポジトリのバージョン属性を同期不可バージョンのバージョン属性に設定する。
【0039】
同期が不成功である場合、カレントバージョンを同期不可バージョンとして直接的に決定できる。「同期不可バージョン」は、ここでは、コードで依然として問題なく適切に動作するが、何らかの理由でバックアップリポジトリでそれを正しく同期することができないバージョンを指す。この点で、(バックアップできないそれらのバージョンを含む)オリジナルリポジトリ全体は、バックアップリポジトリまでバックアップできる。
【0040】
現在既存の技術では、同期は空のバックアップリポジトリが初期化された後にだけ開始できる。以前のバージョンがコピーを複製することによってバックアップされていた場合、同期は可能ではないだろう。他方、本開示の実施形態では、バックアップされたリポジトリのバージョン属性は、バックアップがコピーを複製することによって行われるときに、同期不可動作のバージョン番号に修正されるべきである。言い換えると、システムはバージョン属性を修正することによって、同期バックアップバージョンから複製のバックアップバージョンを区別する。したがって、同期不可バージョンは、妨げられることがない同期を保証するために省略されるだろう。
【0041】
実際的な用途では、いくつかの特定の理由のための同期の特定の失敗は、特定の方法によって迅速に処理できる。特に、本開示は、同期が失敗した場合の自動的な処理方法を提供する。
【0042】
同期が失敗すると、エラーメッセージが取得される。一般的にみられるエラーメッセージは、バックアップリポジトリがロック、バックアップリポジトリのファイルがロック、バックアップリポジトリの最新バージョンのエラー等を含む。これらのエラーは以下に区別される。
【0043】
a.バックアップリポジトリがロック
かかるエラーメッセージは、「現在『alicode: 1b27a4fd-fb0e-42a0-a13f-9091cc87b9ac』によって保持されている目的地repoに対するロックを得ることができなかった」に類似している。この場合「alicode」は機械名である。
【0044】
同期中、インターネット切断または他の要因が同期手順の打ち切りにつながることがあり、次の同期が失敗する。この問題に対処するため、バックアップリポジトリのロック保護がクリアされる必要がある。以下のコマンドはバックアップリポジトリの同期ロック属性を削除する。svn propdel svn:sync-lock --revprop -r 0 http://localhost/repo2
【0045】
b.バックアップリポジトリのファイルがロック
対応するエラーメッセージは以下のとおりである場合がある。svnsync:サーバが予想していない戻り値を送信した。(423ロック)
【0046】
サブバージョンクライアントは、ユーザだけがファイルまたはディレクトリを修正できる、ディレクトリまたはファイルをロックするロック機能を使用できる。バックアップリポジトリが同期中にこのバージョンに遭遇すると、同期は通常失敗する。アクセスを取得し、ロックされたファイルを用いても続行するためには、方法は、以下のコマンドsvnadmin rmlocks repo2/xxxxを実行できる。ここでは、「xxxx」はロックされたファイルパスおよびファイル名である。
【0047】
c.バックアップリポジトリの最終バージョンのエラー
対応するエラーメッセージは以下のとおりであってよい。svnsync: node-revで欠落しているノードid
【0048】
同期プロセス中、このエラーは、欠陥のあるインターネットネットワーク、またはバックアップリポジトリに最新バージョンについて不完全な情報を提出させるリポジトリの低応答速度による場合がある。不安全な同期のため、バックアップリポジトリを使用することはできず、同期は続行されないだろう。一実施形態では、方法は、バックアップリポジトリの最新バージョンを削除できる。つまり、方法は、経路repo2/db/revsおよびrepo2/db/repropsの下の最新バージョンを削除してよい。同時に、repo2/db/currentに記録されるバージョン番号は1、減分されてよい。さらに、方法は、バージョン属性値をリポジトリの最後から2番目のバージョンの識別に修正してよく、したがって以後の同期の前に、オリジナルバージョンの問題のある部分はバックアップされないだろう。
【0049】
同期失敗および対応するエラー訂正の3つの共通した理由が上記に示されている。問題が上述されるように処理される場合、同期プロセスを続行し、リポジトリ全体の複製を回避することができる。有利なことに、これによってリポジトリのバックアップ効率は上昇する。対応するエラー訂正が処理された後も同期が失敗する場合、カレントバージョンが同期不可バージョンではあること、および次いで上述されたアクションS103が実現されることが決定できる。
【0050】
同期の失敗の理由は変わることがある。一方では、エラーの高速処理は上述された3つのタイプに制限されていない。当業者は、実際の状況に基づいて、追加の高速エラー処理手段を追加できる。他方、エラーの理由を明らかに決定できないとき、またはエラーを迅速に処理できないとき、エラーメッセージ基づきカレントバージョンが同期不可バージョンであること、および上述されたアクションS103が次いで実現されることを決定できる。
【0051】
本開示は、サブバージョンリポジトリをバックアップする装置を提供する。
図2に示されるように、装置は、同期部210、同期成功処理部220、および同期失敗処理部230を含む。
【0052】
同期部210は、バージョン属性に基づいてサブバージョンリポジトリの同期動作を実現する。
【0053】
同期成功処理部220は、同期部210による同期動作が無事に行われるときに使用される。同期成功処理部220は、バックアップリポジトリのバージョン属性を最新バージョンの値に設定する。同期失敗処理部230は、同期部210による同期動作が無事に行われなかったときに使用される。同期失敗処理部230は、サブバージョンリポジトリのコピーを複製することによってサブバージョンリポジトリをバックアップし、バックアップリポジトリのバージョン属性を前回の同期不可バージョンの値に設定する。
【0054】
上述されたサブバージョンリポジトリをバックアップする装置を用いると、バックアップリポジトリを初期化する必要はない。バックアップリポジトリの属性値を直接的に設定することによって、バックアップは、同期が実行可能ではないときにコピーを複製することによって達成できる。その後、バックアップリポジトリのバージョン属性は、コピーされたバックアップに基づき同期を許すように修正できる。
図3は、
図2に示されるものに類似するサブバージョンリポジトリをバックアップするための装置を示すが、さらに同期不可バージョン決定部240を含む。同期不可バージョン決定部240は、後述される多くのサブユニットを含む。
【0055】
エラー取得サブユニットは、同期動作失敗時にエラーメッセージを取得する。
【0056】
第1決定サブユニットは、エラーメッセージに基づいて同期不可バージョンとしてカレントバージョンを決定する。
【0057】
エラー処理サブユニットは、エラーメッセージに基づいて1つまたは複数のエラーを処理する。
【0058】
第2の決定サブユニットは、1つまたは複数のエラーが処理された後も同期が失敗するときに、カレントバージョンを同期不可バージョンとして決定する。
【0059】
エラーメッセージが、バックアップリポジトリがロックされていることを示す場合、エラー処理サブユニットはバックアップリポジトリの同期ロック属性を削除する。
【0060】
エラーメッセージがバックアップリポジトリ内のファイルがロックされていることを示す場合、エラー処理サブユニットはかかるファイルのロックされた属性を取り消す。
【0061】
エラーメッセージがバックアップリポジトリの最新バージョンのエラーを示すとき、エラー処理サブユニットは、バックアップリポジトリの最新バージョンを削除し、バックアップリポジトリのバージョン属性を最後から2番目のバージョンのバージョン属性に修正する
【0062】
同期不可決定部240は、同期失敗の特定の明確な原因のために対応する自動処理を提供できる。コピーを複製することによるバックアップは、上述された自動処理後に同期が進行できる場合回避することができ、これによってバックアップ効率はさらに上昇する。
【0063】
説明の便宜上、上述された装置は機能モジュールに分けられる。実施形態の実現時、1つまたは複数の部の機能をソフトウェアおよび/またはハードウェアの1つまたは複数のインスタンスに入れることができる。
【0064】
上述により、当業者は、この用途がソフトウェアおよび任意の必要なハードウェアを利用して、開示された技法を実現できることを明確に理解できる。この理解に基づき、実施形態は、コンピュータ実行可能ソフトウェア製品の形で実現できる。このコンピュータ実行可能ソフトウェア製品は、ROM/RAM、コンピュータディスク等の形をとるコンピュータ可読記憶媒体、または実行時に上述された方法のアクションを実施するコンピュータ実行可能命令の形をとるCD ROMに記憶できる。それは、技法の多様な実施形態または方法のいくつかの部分を実現するために、実行可能なコンピュータプラットホーム(つまり、パーソナルコンピュータ、サーバ、またはネットワーク装置)を作成するための多くの命令を含む。
【0065】
多様な実施形態に関する開示は、漸次的に説明されてきた。類似する実現例のあるいくつかの部分は互いに参照されている。それにも関わらず、各部分は実施形態の異なる実現例を説明するために強調される。特に装置実施形態に関して、それらは実現例に関して基本的に類似しているので、説明は方法の説明に相互に関連付けられている。上述された装置の説明は、部が、物理的に分離されてよい、または分離されなくてもよい論理的に別々の構成要素であることを示しているにすぎない。表示構成部品の部は物理装置である場合もあれば、ない場合もあり、1つまたは複数のネットワーク部内に設置できる。実際のニーズに基づき、実施形態の実現の目的を達成するために構成要素またはモジュール全体の間で選択できる。
【0066】
実施形態は、パーソナルコンピュータ、サーバ、ハンドヘルドデバイスまたは携帯機器、タブレットモデル装置、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラマブル家庭用電化製品、ネットワークPC、マイクロコンピュータ、メインフレームコンピュータ、または他の分散型コンピュータ環境等の共通のまたは特別なコンピュータシステム環境または構成で使用できる。
【0067】
コンピュータ実装例は、コンテキスト説明に類似するコンピュータ実行可能コマンドを通して実行できる。一般に、これらのコンピュータプログラムモジュールは、ルーチン、プロシージャ、ターゲット、コンポーネントおよびデータ構造等の特別なタスクまたは抽象データタイプ、および他の分散アプリケーションを実装することを含む。この分散コンピューティング環境の中では、遠隔処理装置によってリンクされるコンピュータネットワークは、タスクを実装するために使用できる。そして、それはローカル記憶媒体およびリモート記憶媒体に記憶することもできる。
【0068】
上述された実施形態は、本開示のいくつかの特定の実現例に過ぎない。当業者は、本開示がその精神から逸脱しない多くの変形および変型を有することがあることを知っている。どのような変形および変型も本開示の範囲内にあると見なされる。