Subversion / TortoiseSVN で削除されたフォルダーを「削除取消し」する方法は?
-
20-09-2019 - |
質問
特定のタグを 1 つ削除するだけのつもりで、Subversion リポジトリから「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で行う必要があるだろう)、公式本は<のhref = "http://svnbook.red-bean.com/可能です毎晩/ EN / svn.branchmerge.basicmerging.html#svn.branchmerge.basicmerging.resurrect」のrel = "nofollowをnoreferrer">オンラインを。
この改正後の私のために働いたraudiの答えに続きます。
次のようにいくつかの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
.
これで完了です