特定のタグを1つだけ削除することを意図していたSubversionリポジトリから「タグ」フォルダーを誤って削除しました。 「タグ」フォルダを元に戻す最も簡単な方法は何ですか?
TortoiseSVNをクライアントとして使用し、レポジトリブラウザーに移動してログを表示すると、作業コピーの同様のダイアログに表示されるものと同様に、「このリビジョンからの変更を元に戻す」ようなものがあると思いました。しかし、そのようなコマンドはありません...
削除したフォルダーを以前のリビジョンからコピーして戻すだけです。
リポジトリブラウザーで、HEAD(右上隅))というラベルのボタンをクリックして、フォルダーがまだ存在するリビジョンを表示し、そのフォルダーを右クリックして[コピー先]を選択します。 .. "フォルダーを再作成するパスを入力します(おそらく、テキストボックスに既にある同じパス)。
コマンドライン愛好家向け:
まず、削除が行われたリビジョン番号を見つけます。
svn log -v http://svnserver/path/to/folderContainingDeletedFolder
リビジョン999でディレクトリが削除されたことがわかったと言います(ところで:svn repoブラウザでリビジョン番号を見つける方が簡単かもしれません)
リビジョンからフォルダーをコピーしますマイナス1
svn copy http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder@998 http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder -m "undeleted folder"
できあがり!
あなたの場合、これは次のようになります:
svn copy http://svnserver/project/tags@998 http://svnserver/project/tags -m "undeleted folder"
これらの答えのほとんどはある程度機能しますが、正しい答えはダニエルのものです。逆マージを実行します。そのようにして、バージョン履歴を保持します。
svn merge -r R1:R2
ここで、R1は現在のリビジョンで、R2は削除されたファイル/フォルダーを含むリビジョンです。
リバースマージを実行する必要があります。
実行方法の詳細(およびSVNを使用して実行したい、または実行する必要のある他のほとんどすべて)については、公式の本が利用可能です online 。
この改訂後、私のために働いたraudiの回答に続きます。
一部のsvnクライアントでは、フォルダーの後に次のように@を使用する代わりに、-r revisionパラメーターを使用して指定したリビジョン番号が必要になる場合があります。
svn copy svn://svnserver/project/tags svn://svnserver/project/tags **-r 998** -m "undeleted folder"
repository
のRepository Browser
に移動し、削除済みフォルダーが存在する親フォルダーを右クリックします。次に、親フォルダのShow Log
を選択し、削除操作をコミットした前のリビジョンを選択します。リストが表示され、リビジョン情報からフォルダーを右クリックしてUpdate to this Revision
を選択します。
完了