101

1つの特定のタグのみを削除することを意図していたSubversionリポジトリから誤って「tags」フォルダを削除しました。'tags'フォルダを元に戻す最も簡単な方法は何ですか?

私たちはクライアントとしてTortoiseSVNを使用しており、リポジトリブラウザに移動してログを表示すると、作業コピーの同様のダイアログに表示されるのと同様に、「このリビジョンからの変更を元に戻す」のようなものになると思いました。しかし、そこにはそのようなコマンドはありません...

4

6 に答える 6

120

削除したフォルダを以前のリビジョンからコピーして戻すだけです。

リポジトリブラウザで、(右上隅にある)HEADというラベルの付いたボタンをクリックして、フォルダがまだ存在するリビジョンを表示し、そのフォルダを右クリックして[コピー先...]を選択し、そこにパスを入力します。フォルダを再作成する必要があります(おそらく、テキストボックスにすでにあるのと同じパス)。

于 2010-02-15T11:04:45.893 に答える
79

コマンドライン愛好家のために:

  • まず、削除が行われたリビジョン番号を見つけます。

    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"
于 2011-05-12T08:15:55.030 に答える
11

これらの答えのほとんどはある程度機能しますが、正しい答えはダニエルのものです。逆マージを実行します。そうすれば、バージョン履歴を保持できます。

svn merge -r R1:R2

ここで、R1は現在のリビジョンであり、R2は削除されたファイル/フォルダーを含むリビジョンです。

于 2012-08-13T01:23:00.090 に答える
7

逆マージを行う必要があります。

それを行う方法の詳細(およびSVNでやりたい、または行う必要のある他のほとんどすべて)については、公式の本がオンラインで入手できます。

于 2010-02-15T11:12:00.127 に答える
3

この改訂後に私のために働いたラウディの答えに続いて。

一部のsvnクライアントでは、次のように、フォルダーの後に@を使用する代わりに、-rリビジョンパラメーターを使用して指定されたリビジョン番号が必要になる場合があります。

svn copy svn://svnserver/project/tags svn://svnserver/project/tags **-r 998** -m "undeleted folder"
于 2011-08-04T10:10:20.060 に答える
2

のに移動し、削除したフォルダが存在していた親フォルダRepository Browserrepository右クリックします。次に、親フォルダーの、削除操作をコミットした前のリビジョンを選択します。リストが表示されたら、リビジョン情報からフォルダを右クリックして、を選択します。Show LogUpdate to this Revision

完了です

于 2010-02-15T10:57:22.500 に答える