2012-01-03 5 views
0

svn repoを使用して、自分のローカルマシンと他の人が管理しているサーバーの間で作業ファイルを同期させます。最近、私はサーバーのストレージが壊れていて、破損したファイルのすべてを検出できないことに気付きました。svn更新メカニズム、潜在的に壊れたデータを扱う

私はsvnを更新すると、ファイルが破損して変更されたかどうかをsvnが判断できますか? svnがファイルの変更を判断するために使用するメカニズムは何ですか?私はタイムスタンプを使用していると感じていますが、私はこれを確認できません。

今私が一番安全なのは、サーバー上のレポを再チェックアウトすることです。これは、非常に時間がかかり、避けるのが望ましいことです。

ありがとうございます。 アダム。

+0

タイムスタンプを最初にチェックすることもできますが、比較対象のファイルのローカルの元のコピーがあります。チェックアウトツリー全体に触れてタイムスタンプを変更し、 'svn status'を実行するのはどうですか?それはファイルをスキャンすることになります。 – Rup

答えて

3

SVNはdiffingファイルによってファイルの変更を検出します。ファイルのタイムスタンプは一切考慮されていません。

これで最も安全なのは、サーバーのレポを再チェックアウトすることです。これは、時間がかかり、避けるのが望ましいことです。

あなたが説明しようとしたことを正しく理解していない、本当にsvnサーバーのrepoの破損があるのか​​、作業コピーが壊れていますか?後者のいずれかに該当する場合、あなたは確かに

a)は「きれい」とし、「更新」作業コピーまたは

b)は最初にそれを更新するか、

Cその後、作業コピーを元に戻すに試すことができます)新しい作業コピーをチェックアウトします。

svn repoが壊れている場合は、サーバー上のsvn repoを回復できない場合(少なくともこの場合は作業ディレクトリ新しいSVNリポジトリをセットアップし、この作業ディレクトリの内容をチェックインしようとする可能性があります)。

+0

svn repo自体は破損していませんが、その中のファイルの一部が存在する可能性があります。 – wespiserA

1

あなたはサーバーとリポジトリに不安があるようですか?リポジトリでsvnadmin verifyを実行するか、svnadmin dumpを実行して、リポジトリをダンプファイルにダンプします。ダンプをする場合は、確認してください。これらがOKであれば、リポジトリは正常です。

これらのコマンドは、ファイルシステム上のリポジトリに直接アクセスする必要があるため、サーバからのみ実行できます。

+0

彼は自分のアプリケーションをホストしているサーバー上の作業コピーを持っているので、それを読んでいます。それは破損しているかもしれない作業コピーです。 – Rup

関連する問題