3

Windows で Subversion を使用しているときに問題が発生しました。ある開発者がファイルfoo.Data.sqlをコミットし、その後別の開発者が というファイルをコミットしましたfoo.data.sql。当然のことながら、これは Windows クライアント (私たちの環境ではすべてのクライアントが Windows) で問題を引き起こしました。Subversion ではファイルの大文字と小文字が区別されますが、Windows では区別されないためです。

リポジトリ内のファイルの 1 つを直接削除することで、この問題を解決できましたが、まだ 2 つの質問があります。

  1. 開発者が Windows クライアントを使用してこれを行うにはどうすればよいですか? 彼は無効な作業コピーを持っていますか、それともクライアント (TortoiseSVN) にバグがありますか?
  2. このような変更がリポジトリに入らないようにするにはどうすればよいでしょうか (つまり、ファイルの大文字と小文字の問題についてサニティ チェックを実行するフック スクリプトを作成した人がいますか?)。
4

3 に答える 3

4

大文字と小文字の区別をチェックするフック スクリプトが確実に存在します。Sourceforge では、オプションの 1 つとしてそれを使用しています。簡単な Google が表示されます: http://www.subversionary.org/howto/using-check-case-insensitive-py-on-windowsおよびhttp://svn.apache.org/repos/asf/subversion/trunk/ contrib/hook-scripts/case-insensitive.py

ユーザー 1 が foo.data.sql を追加し、ユーザー 2 が foo.Data.sql をユーザー 1 から更新を取得する前に追加した場合、Windows プラットフォームで問題が発生します。

それが役立つことを願っています:)

于 2008-09-11T08:38:12.017 に答える
2

Windows では、ファイルの大文字と小文字は区別されませんが、大文字と小文字は保持されます。大文字と小文字を変更してファイルの名前を変更すると、Windows は変更を保持します。この問題は、Subversion が 2 番目のファイルを作成しようとしたときに発生します。Windows は、ファイルが既に存在することを報告します。

2 つのファイルを 1 つのコピーにマージする場合は、リポジトリ内のファイルを削除する代わりに、リポジトリ内の不良ファイルの名前を変更し (つまり、'.temp' などのサフィックスを追加)、クライアントを更新して、良いファイルを削除してから、悪いファイルを削除します。

于 2008-09-11T08:44:32.173 に答える
0

1; 2 つのファイルは 2 人の開発者から提供されたものであるため、可能です。1 つは、さまざまなケースでファイルの名前を変更または作成していて、コミット中に、それがコミットの変更ではなく追加になることに気付かない場合です。

2; TortoiseSVN FAQ を確認する

于 2008-09-11T08:32:54.853 に答える