1. ホーム
  2. svn

[解決済み] SVNから削除されたファイルを復元する正しい方法を教えてください。

2022-08-26 06:59:33

質問

あるレポからファイルを削除してしまい、それを元に戻したいと思っています。私が理解できる最善の方法は、次のとおりです。

  • 削除前のリビジョンに更新する
  • ファイルを別の場所にコピーする
  • head に更新する
  • ファイルをコピーバックする
  • 追加する
  • コミット

これは悪臭を放つだけで、起動時にすべての履歴を失います。これを行うためのより良い方法があるはずです。私はすでに SVN ブック を見ましたが、何も見つからず、今はSVNタグのリストを見ています。

どのように解決するのですか?

svn mergeを使用します。

svn merge -c -[rev num that deleted the file] http://<path to repository>

では、例です。

svn merge -c -12345 https://svn.mysite.com/svn/repo/project/trunk
             ^ The negative is important

TortoiseSVN用(と思うのですが...)。

  • エクスプローラで右クリックし、TortoiseSVN -> Merge...に移動してください。
  • リビジョンの範囲をマージする が選択されていることを確認し、次へ をクリックします。
  • 統合するリビジョンの範囲 テキストボックスで、ファイルを削除したリビジョンを指定します。
  • Reverse merge" チェックボックスをチェックし、Next をクリックします。
  • マージ] をクリックします。

ただし、これは完全に未検証です。


編集者:OP : これは、私のバージョンの TortoiseSVN (次へボタンのない古いタイプ) で動作します。

  • 削除されたフォルダーに移動します。
  • エクスプローラで右クリックし、TortoiseSVN -> Merge...へ移動します。
  • の中にある から セクションに、削除したリビジョンを入力します。
  • には セクションに、削除前のリビジョンを入力します。
  • merge"]をクリックします。
  • コミット

トリックは、マージすることです 後方 . にクドく sean.bright に感謝します。


編集します。 私たちは異なるバージョンを使用しています。 私が説明した方法は、私のバージョンの TortoiseSVN で完全に動作しました。

また、逆マージするコミットに複数の変更があった場合、コミットする前にマージが完了したら、それらの他の変更を元に戻したいと思うことでしょう。 そうしないと、それらの余分な変更も元に戻されてしまいます。