Svn

ファイルの以前のSVNリビジョンに戻すためのより良い方法は?



Better Way Revert Previous Svn Revision File



解決:

svn merge -r 854:853 l3toks.dtx

また

svn merge -c -854 l3toks.dtx

2つのコマンドは同等です。




svnブックの「変更の取り消し」セクションを確認してください


以前に与えられた答えを繰り返すだけでスペースを使い果たして申し訳ありませんが、これは私がいつも問題を抱えていることです。



ローカルファイルを最新のリビジョン(854)に更新したとしましょう。次に、古いリビジョン(いくつかのリビジョンより前のバージョン、たとえばリビジョン851)を取得したいとします。

コピーは機能します:

svn copy -r 851 svn + ssh:///l3toks.dtx ./l3toks.dtx

..しかし、私はリポジトリのURLをgrepすることを気にすることはできません:)



更新はうまくいくようです:

svn up -r 851 ./l3toks.dtx

...ただし、ローカルコピーを「新しくチェックアウトした」、または「オンラインリビジョンと同じ」としてマークします(つまり、Tortoise / RabbitVCSでは緑色のOKチェックマークが表示されます)-これは、実行できないことを意味しますsvn ci -m 'はr851にロールバックされました':単にローカルであるためsubversion実行可能ファイルはローカルの変更に気付かず、オンラインリポジトリに何もアップロードする必要はありません。

そして、すでに回答したように、逆マージは機能しますが、この場合、ショートカット構文に依存するべきではありません。しかし具体的に述べる:

svn merge -r HEAD:851 l3toks.dtx --- r854からr852を「l3toks.dtx」に逆マージします:U l3toks.dtx

私は認めなければならない-私は文を理解することは決してないだろう」 r854からr852をファイルに逆マージする ' 意味する ' ファイルのr851を取得し、以前にローカルで持っていたものをすべて上書きしました。これは、最新のオンラインリビジョンとは異なるものとしてマークされているため、新しい「ロールバック」リビジョンとしてオンラインで確認できます。 '、しかし私は推測します(そして願っています:))それはそれがすることです:)

この後、使用することができますsvn diffを使用して、適切なリビジョンをローカルに戻したかどうかをすばやく確認します。また、Tortoise / RabbitVCSではファイルに赤い感嘆符が付けられます(つまり、最新のコミットされたバージョンとは異なります)。今回は、r851にロールバックされたsvnci -m 'を実行できます。

また、最終的に、逆マージ後に気が変わった場合は注意してください( つまり、ローカルで851にロールバックしたが、まだロールバックをコミットしていない場合は、とにかく最新のHEADリビジョン(ここでは854)で作業を続けたいと考えています。 )、使用しないでくださいsvn up、それは単にそれがすでにあると言うので ' リビジョン854で ';代わりに使用してくださいsvn revert--recursive。または類似...

乾杯!

参照:Subversionを使用して変更をロールバックする方法-Jacob Wright – Flex、AIR、PHPなど。

編集:...そして明らかに、まったく同じ効果svn merge -r HEAD:851 l3toks.dtxは、次の方法で実現できます。

svn export -r 851 l3toks.dtx Al3toks.dtxエクスポートが完了しました。