1

ばかげているように聞こえるかもしれませんが、2つのバージョンのsubversion間でバージョンの競合が発生することがあります。sshfsを使用して開発サーバーにディレクトリをマウントしてから、ローカルのVimを使用してコードを編集します。更新、コミットなどのサブバージョンの場合。サーバーでsshを実行し、そこで実行します。ただし、シェルを混同して、マウントされたディレクトリのローカルシェルで誤って更新またはコミットすることがあります。Subversionはエラーで終了しますが、これは問題ありません。ただし、sshセッションで開発サーバーで同じことを実行しようとすると、subversionは、作業ディレクトリ/subversionのバージョンが間違っていることを示します。サーバーのサブバージョンバージョンは私のノートブックのバージョンよりも古いので、私の(新しい)バージョンはどういうわけか作業ディレクトリをアップグレードして、開発サーバーの古いバージョンと互換性がないようにします。.svn / lockファイルを削除すると役立つ場合がありますが、ノートブックでsubversionコマンドを実行した直後に削除した場合に限ります。その後、開発サーバーでコマンドを実行すると、ロックファイルが消え、チェックアウトをレスキューする方法がわかりません。リポジトリがそれほど大きくなければ、これはそれほど悪くはありません。特に私がたくさんの変更を加えて、それらをコミットできないとき。

現在私が目にしている唯一の解決策は、どこかで変更したファイルをコピーし、チェックアウトを削除し、完全に新しいチェックアウトを実行して、ファイルをコピーして戻すことです。

壊れたチェックアウトや私の変更を救済するためのより良い解決策はありますか?

更新 リンクされたFAQMikaelSundbergに回答が含まれていました。彼がそれについて明確に言及していないので、私はそれをここに書き留めます。安全な場合に、アップグレードされたリポジトリをダウングレードできるスクリプトがあります。

http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py

4

2 に答える 2

1

たぶん、このFAQエントリが役立つかもしれません: http ://subversion.tigris.org/faq.html#working-copy-format-change

于 2008-09-25T19:58:33.347 に答える
0

私があなたの問題を正しく理解しているかどうかはわかりませんが、ここにいくつかのヒントがあります:

最初のヒント-SVNCleanコマンドを試しました

次のものはおそらくあなたには役に立たないでしょう:)しかし、CVSを使用していた多くの人々はSVNがそのような機能を持っていることに気づいていないので、私はそれを書き留めます。

WindowsおよびTortoiseSVNクライアントを使用している場合は、コンテキストメニュー(マウスの右ボタン)から[ログの表示]コマンドを選択できます。チェックインのリストが表示されたら、最後の適切なものを選択し、コンテキストメニューコマンドから選択してこのリビジョンに戻します。

その他の場合(WindowsでもTortoise SVNでもない)、上記のコマンドのコマンドラインバージョンのドキュメントを調べてください。

次のヒントは、シェルの混合を回避するのに役立ちます。

SSHシェルを使用することを記述しました-シェルセッションの混合に関する問題を回避するために、ログインするサーバー(およびアカウント)ごとに常に異なる背景色を使用します(つまり、開発では黒に白、テストでは海軍に黄色)サーバーと本番サーバーの緑色の黄色)。

これは私を何度も節約します:)。

于 2008-09-25T20:02:36.113 に答える