2012-01-11 21 views
1

コミット時にsvnを実行すると、更新されていないファイルが追加される問題があります。コミット時にsvnを実行するとファイルが追加される

例:

svn st 

これはこれはfile1の変化をアップロードし、よく

file2, file3, file4これは常に同じファイルに何が起こる

svn commit 

変更されるようfile1を示し

file2, file3, file4 

どうすればいいですか?

SVNバージョン:

Subversionのコマンドラインクライアント、バージョン1.6.6

+0

とにかく 'file2、file3、file4'が変更されましたか?あるいは、彼らはいつも同じで、それはとにかくコミットしていますか? –

+0

svn commitを試すことができますか? – Johny

+0

'svn commit file1'を試すことができますか?私はこれは、マージと厄介取得し、 – Neil

答えて

1

どのバージョンの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 upsvn 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に変更を加える可能性のある設定があるかどうか試してみましたが、この現象の原因となるものは何も見つかりませんでした。

+0

私は朝、これを試してみる –

0

さてあなたは、常にファイルを無視したい場合は、svn:ignoreを使用することができますが、彼らはあなたがファイルである場合時々変更し、あなたがソースコントロールの下にそれらを持っている必要があります私はsvn diff file1を行い、そこから行く。どのような種類のファイルで、diffの結果は何ですか?

+0

をコミットすることができ可能性が@Neil –

+0

ファイルと変わっていません彼らはいくつかのsvnのdiff出力がある必要があります変更したと言いますか? –

+0

@PhillPaffordを変更する場合があります.PDFファイルである – Grammin

関連する問題