「アップグレードされた」Subversion 作業ディレクトリを修復するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/135543

  •  02-07-2019
  •  | 
  •  

質問

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

現時点で考えられる唯一の解決策は、変更したファイルをどこかにコピーし、チェックアウトを削除し、完全に新しいチェックアウトを実行して、ファイルをコピーし直すことです。

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

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

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

役に立ちましたか?

解決

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

他のヒント

あなたの問題を正しく理解したかどうかはわかりませんが、いくつかのヒントを次に示します。

最初の 1 つのヒント -- SVN は試しましたか? クリーン 指示?

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

Windows を使用している場合と、 Tortoise SVN クライアント 選んでいいですよ ログを表示 コンテキスト メニュー (マウスの右ボタン) からコマンドを実行します。チェックインのリストが表示されたら、最後に良好なチェックインを選択し、コンテキスト メニュー コマンドから選択します。 このリビジョンに戻す.

他のケース (Windows や Tortoise SVN ではない) の場合は、調査してください。 ドキュメンテーション 上記のコマンドのコマンドライン バージョンの場合。

次のヒントは、貝殻の混合を避けるのに役立ちます。

SSH シェルを使用していると書きましたが、シェル セッションの混合による問題を避けるために、私はログインするサーバー (およびアカウント) ごとに常に異なる背景色を使用しています (つまり、開発用は黒に白、テストサーバーでは紺に黄色、運用サーバーでは緑に黄色)。

これで何度も救われました:)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top