1つの特定のタグのみを削除することを意図していたSubversionリポジトリから誤って「tags」フォルダを削除しました。'tags'フォルダを元に戻す最も簡単な方法は何ですか?
私たちはクライアントとしてTortoiseSVNを使用しており、リポジトリブラウザに移動してログを表示すると、作業コピーの同様のダイアログに表示されるのと同様に、「このリビジョンからの変更を元に戻す」のようなものになると思いました。しかし、そこにはそのようなコマンドはありません...
1つの特定のタグのみを削除することを意図していたSubversionリポジトリから誤って「tags」フォルダを削除しました。'tags'フォルダを元に戻す最も簡単な方法は何ですか?
私たちはクライアントとしてTortoiseSVNを使用しており、リポジトリブラウザに移動してログを表示すると、作業コピーの同様のダイアログに表示されるのと同様に、「このリビジョンからの変更を元に戻す」のようなものになると思いました。しかし、そこにはそのようなコマンドはありません...
削除したフォルダを以前のリビジョンからコピーして戻すだけです。
リポジトリブラウザで、(右上隅にある)HEADというラベルの付いたボタンをクリックして、フォルダがまだ存在するリビジョンを表示し、そのフォルダを右クリックして[コピー先...]を選択し、そこにパスを入力します。フォルダを再作成する必要があります(おそらく、テキストボックスにすでにあるのと同じパス)。
コマンドライン愛好家のために:
まず、削除が行われたリビジョン番号を見つけます。
svn log -v http://svnserver/path/to/folderContainingDeletedFolder
ディレクトリがリビジョン999で削除されたことがわかったとします(ところで:svnリポジトリブラウザでリビジョン番号を見つける方が簡単な場合があります)
リビジョンから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でやりたい、または行う必要のある他のほとんどすべて)については、公式の本がオンラインで入手できます。
この改訂後に私のために働いたラウディの答えに続いて。
一部のsvnクライアントでは、次のように、フォルダーの後に@を使用する代わりに、-rリビジョンパラメーターを使用して指定されたリビジョン番号が必要になる場合があります。
svn copy svn://svnserver/project/tags svn://svnserver/project/tags **-r 998** -m "undeleted folder"
のに移動し、削除したフォルダが存在していた親フォルダRepository Browser
をrepository
右クリックします。次に、親フォルダーの、削除操作をコミットした前のリビジョンを選択します。リストが表示されたら、リビジョン情報からフォルダを右クリックして、を選択します。Show Log
Update to this Revision
完了です