どのバージョンのSubversionクライアントを使用していますか?
サブバージョン1.7より前のクライアントでは、Subversionは.svn
ディレクトリのファイルと格納されたベースの内容を調べることによってファイルの変更を判断します。 Subversionは、ファイル自体のプロパティと内容の両方を比較して変更を判断します。例えば:それはファイルはMakefileのように(変更されているかどうかを判断するためにタイムスタンプを見ていない
.svn/text-base/file1.svn-base
.svn/text-base/file2.svn-base
.svn/text-base/file3.svn-base
.svn/prop-base/file1
.svn/prop-base/file2
.svn/prop-base/file3
:この例では
$ svn up
U file1
U file2
U file3
、あなたは、少なくともこれらの6つのファイルが表示されます持っていただろう)。
svn up
とsvn commit
の両方とも、同じアルゴリズムを使用して、ファイルを変更するとして記録する必要があるかどうかを判断します。
.svn/entries
というファイルもあります。このファイルには、ディレクトリに含まれるエントリのリストが含まれています。これにより、Subversionは追加と削除を追跡できますが、変更の検出には使用されません。
変更されていないファイルがコミットされているマージ中に問題が発生しました。ただし、これは常にsvn status
を実行したときに表示され、ファイルの内容は変更されませんでしたが、プロパティーsvn:merge info
は変更されませんでした。
あなたの問題は非常に異なるようです。まず、svn status
を実行しても変更内容は表示されませんが、コミットされます。ディレクトリにsvn -v log
を実行するとどうなりますか?ファイルが変更されたものとして表示されますか? svn status -v
をお持ちの場合はどうなりますか?無視されたファイルと変更されていないファイルを含むすべてのファイルが表示されます。
これは、どのファイルが変更されたかをサーバに伝えるクライアントであり、サーバがコミットするファイルを決定するものではありません。したがって、問題はあなたのSubversionクライアントにあります:
あなたのSubversionクライアントとは何ですか?私はCgywinが問題になる可能性があることを知っています。特に、あなたの作業ディレクトリとWindows Subversionクライアントを共有している場合です。 2つの異なるタイプのクライアント(GUIクライアントやコマンドラインクライアントなど)間で作業ディレクトリを共有することにはいくつか問題があります。たとえば、VisualStudioのAnkhSvnクライアントは_svn
ディレクトリを作成します。 TortoiseSVNは、標準のSubversionコマンドラインではなく(正しく設定した場合)、それらを使用することができます。
もちろん、1.7のコマンドラインクライアントは、以前のコマンドラインクライアントとは方法が異なります。標準の1.7コマンドラインクライアントでは、.svn
ディレクトリはルートにのみあり、ファイルの内容が変更されているかどうかを判断するためにチェックサムを使用すると考えられます。
申し訳ありません申し訳ありません。多分、私はあなたに何かを贈りましたか?あなたのSubversionクライアントとOSについて教えてください。それが役に立ちます。また、同じディレクトリで複数のSubversionクライアントを使用している場合はお知らせください。それは手掛かりかもしれない。
$HOME/.subversion/conf
に変更を加える可能性のある設定があるかどうか試してみましたが、この現象の原因となるものは何も見つかりませんでした。
とにかく 'file2、file3、file4'が変更されましたか?あるいは、彼らはいつも同じで、それはとにかくコミットしていますか? –
svn commitを試すことができますか? – Johny
'svn commit file1'を試すことができますか?私はこれは、マージと厄介取得し、 – Neil