22

TortoiseSVNを使用して、SVNサーバーにいくつかの悪いコード変更をコミットしました。

現在、ヘッドリビジョンは155ですが、最後の2つのリビジョンを削除して、ヘッドリビジョンが153になるようにします。つまり、最後の2つのコミットを「元に戻す」必要があります。

TortoiseSVNを使用してこれを行うにはどうすればよいですか?TortoiseSVNメニューにオプションがありますか、それともコマンドラインを使用する必要がありますか?

4

5 に答える 5

13

SVN ログを開くと、リビジョンを右クリックして、[このリビジョンに戻す]または[このリビジョンからの変更を元に戻す] オプションを使用できます。これらのオプションはどちらも作業コピーを更新します (後でコミットできます)。

TortoiseSVN 内にリビジョンを削除するオプションはありません。

于 2012-12-05T00:26:32.347 に答える
3

更新された作業コピーのルートで、次のコマンドを使用する必要があります。

svn merge -rHEAD:153 .

これにより、リビジョン 153 からのすべての変更が「元に戻され」、リビジョン 156 がリビジョン 153 のようになります。

後でコミットすることを忘れないでください!

TortoiseSvn からも同じことができます: 「ログの表示」インターフェイスを開き、リビジョン 153 を選択して右クリックし、「このリビジョンからの変更を元に戻す」を選択します。

于 2012-12-05T00:33:31.027 に答える
2

残念ながら、TortoiseSVN (またはその他の SVN クライアント) では、履歴から完全に消えるという意味で、リビジョンを実際に削除する方法はありません。SVN リポジトリの履歴を変更するのは難しく、サーバー上での操作が必要です。次の質問を参照してください

ただし、チェックインを元に戻す新しいチェックインを作成することで、チェックインを「元に戻す」ことができます。これは通常、「逆マージ」と呼ばれる手法で行われます。参照例:偶発的なチェックインの撤回

于 2012-12-05T00:32:38.447 に答える
0

コマンドラインから:

ファイルへの変更を元に戻す:

svn merge -r <newBadRev>:<oldRevToMergeBackTo> <filename>

例えば:

svn merge -r 155:153 myfile.cpp
于 2012-12-05T00:28:58.487 に答える