SVNリポジトリブラウザでファイルを右クリックすると、完全に削除されますか?それは回復できますか?
6 に答える
HEADリビジョンを表示している場合にのみ、リポジトリブラウザから削除できることがわかります。これは、作業コピーからファイルを削除してから、削除をチェックインするのと同じです。どちらの場合も、以前のリビジョンから復元できます。
SVN FAQからのこの質問/回答はあなたに興味があるかもしれません:
リポジトリの履歴からファイルを完全に削除するにはどうすればよいですか?
ファイルまたはコミットのすべての証拠を破棄したい場合がある特別な場合があります。(おそらく誰かが誤って機密文書をコミットしました。) Subversionは情報を決して失わないように意図的に設計されているため、これはそれほど簡単ではありません。リビジョンは、相互に構築される不変のツリーです。履歴からリビジョンを削除すると、ドミノ効果が発生し、後続のすべてのリビジョンで混乱が生じ、すべての作業コピーが無効になる可能性があります。
svnadmin obliterate
ただし、このプロジェクトでは、情報を完全に削除するタスクを実行するコマンドをいつか実装する予定です。(問題516を参照してください。)それまでの間、唯一の手段は
svnadmin dump
リポジトリにアクセスし、ダンプファイルをsvndumpfilter
(不正なパスを除いて)svnadmin load
コマンドにパイプすることです。
それが難しい場合は、Tortoise SVNから簡単に実行できる可能性はほとんどありません...
(そして、ソース管理の目標ではありません...)
リポジトリブラウザのコンテキストメニューからファイルを削除すると、基本的にそのファイルだけが削除された新しいグローバルリビジョンが作成されるため、ログにそのように表示されます。いつでもそのリビジョンに戻ってファイルを元に戻すことができます。または、単にプルすることもできます。リポジトリから作業コピーに直接送信します。
いいえ...ファイルを削除すると(リポジトリブラウザを使用している場合でも)、作業コピーにのみ影響します。過去からファイルを復元できなかった場合、それはかなりお粗末なリビジョン管理システムになります。サーバーへのrootアクセス権がある場合でも、コミットされたリビジョンでファイルを変更することは実際にはかなり困難です。
右クリックすると、ある種のメニューが表示されませんか?そしてSVNを使用すると、とにかくいつでも元に戻すことができます。
誤ってリポジトリブラウザからトップレベルのディレクトリを削除しましたが、それを元に戻す唯一の方法は次のとおりです。
- 以前のバージョン履歴から最上位フォルダをエクスポートします
- リポジトリに新しいフォルダを作成して、削除したフォルダを置き換えます。
- エクスポートしたファイルを新しいディレクトリに追加し直します(以前と同じ名前)
- 作業コピーを更新すると、同じファイルが削除されてから再度追加されます。
その迷惑ですが、少なくとも作業とリポジトリは同期に戻ります。「このリビジョンからの変更を元に戻す」は、リポジトリの削除を元に戻すには機能しませんでした。リポジトリへの削除を「元に戻す」ではなく、作業ディレクトリでのみ元に戻ります。