0

そのため、私たちのチームの誰かが TortoiseSVN を使用していて、5 分間で約 10 件のコミットメントを行いました (コメントなしで、natuerlich)。その後、私たちのソフトウェアは適切に動作しなくなりました。残りのメンバーはコマンド ラインでコミットを行っていましたが、問題は発生しませんでした。彼は気づいていないことをしていたと思います。そして今、私たちは解決できないように見える問題のクラスターを抱えています. r29 では完全に機能していましたが、ローカル コピーを r29 に戻すと、ソフトウェアは期待どおりに動作します。この問題を解決するために私たちが試みたすべての方法を今すぐ詳しく説明することはしませんが、これまでのところ、r29 を新しいバージョンにコミットすることはできませんでした。元に戻すに関するすべてのコマンドは、新しいバージョンの作成では機能しないようです。また、ファイルシステムに大きな変更がある場合、サポートは関係ないようです。

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

4

3 に答える 3

2

クリーンな作業ディレクトリ (ファイルは変更されていません) で次のマージ コマンドを実行すると、r29 に戻ることができます。

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

これは「HEAD(最新)と-r29の差分パッチを作成し、そのパッチをここに適用する」という意味です。これにより、-r29 以降に実行されたすべての変更が効果的に元に戻されます。

于 2010-12-04T22:43:11.813 に答える
2

『 Subversion によるバージョン管理』の変更の取り消しに関する章を参照してください。

たとえば、変更を元に戻すには 30:

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

これが本質的に行うことは、r30 からの変更を元に戻す新しいコミットを作成することです。Subversion には厳密な意味での元に戻す機能はありません。履歴は常に保存されます (これは良いことです)。

于 2010-12-04T22:44:57.810 に答える
2

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

また、逆マージを実行できる場合があります...

于 2010-12-04T21:44:07.860 に答える