2010-12-04 10 views
0

私たちのチームの誰かがTortoiseSVNを使用していたので、5分でコミットメントを10分(コメントなし、natuerlich)ソフトウェアが正常に動作しなくなりました。残りの人たちはコマンドラインで約束をしていましたが、問題は起こりませんでした。私は彼が気づいていなかったことをやっていると思うし、解決できないような問題が残っている。それはr29で完全に動作していました。ローカルコピーをr29に戻すと、ソフトウェアは期待どおりに動作します。この問題を解決しようとしたすべての方法を詳しく説明しませんが、これまでのところr29を新しいバージョンにコミットできませんでした。復帰に関するすべてのコマンドは、新しいバージョンの作成では機能しないように見えます。ファイルシステムに大きな変更がある場合、サポートは適切ではないようです。GC/SVNのマスターバージョンを初期バージョンに戻す(悪いバージョンを削除してからやり直す)

古いバージョンをチェックアウトして最新のバージョンとしてコミットする方法を教えてください。

答えて

2

あなたは(どのファイルが変更されていないと)、クリーンな作業ディレクトリにこのmergeコマンドを実行することにより、バックR29に行くことができます:

svn merge -rHEAD:29 . 
svn commit -m'rolling back to -r29.' 

これは、HEAD(最新)と-r29との違いによって形成されたパッチを作成し、そのパッチをここに適用することを意味します。これにより、-r29以降に実行されたすべての変更が効果的に取り消されます。

2

r29をローカルマシンの1つの場所にエクスポートして、ヘッドバージョンを別の場所にチェックアウトし、すべてのファイルをr29で上書きしてからコミットする必要があります。ちょっとハッキリですが、うまくいくはずです。

また、あなたが逆のマージを行うことができるかもしれない...

+2

逆マージは、この状況を正確に処理するためのものです。 – Dialecticus

2

変更30元に戻すには、Subversionの

例えばとブックバージョン管理でchapter on undoing changesを参照してください。これは、基本的に何

svn merge -c -30 http://path/to/your/repo/trunk 

は、新しいことがR30からの変更を逆にコミットを作成することです。 Subversionの厳密な意味での元に戻すことはありません。歴史は常に保存されています(それはIMOの良いことです)。

関連する問題