2009-04-23 7 views
15

私たちがsvnで分岐してマージするとき、私たちは常に同じことが起こります。tortoise svn常に45の余分なファイルをマージする

私たちはトランクの最新のコピーを入手します。

ブランチを作成してスイッチを切り替えます。

ブランチの1つのファイルを少し変更します。

トランクにマージブランチを戻します。

この時点で、私たちは1つのファイルをコミットする必要があります。加えて、同じ45の追加ファイルがあります。これはすべての単一ブランチとマージで起こり、常に同じ45の余分なファイルとなります。私はどのように問題を解決するのか分かりませんが、それは非常に迷惑なものです。

誰もこれまでにこれまで見たことがありますか?

更新:私がコミットすると、実際に変更されたファイルのテキストステータスは変更され、プロパティステータスは空白になります。 "45ファイル"はすべてText Status normalであり、Property Statusが変更されています。

+0

これらの余分なファイルが何であるかを説明すると、本当に役に立ちます。 –

+0

可能な重複:http://stackoverflow.com/questions/391864/svn-mergeinfo-properties-on-paths-other-than-the-working-copy-root – MPelletier

答えて

11

おそらくmergeinfoのプロパティです。バージョン1.5のSVNでは、mergeinfoプロパティを設定することでかなり積極的でした。マージすると、それらのプロパティが更新されます。コミットが必要です。

答えはmergeinfoのプロパティを削除することです。 mergeinfoがサポートされています(つまり、これらのプロパティの書き込み量が少なくなります)。

違いを見ると、これらのファイルには目に見える変更はありません。明らかに、内容が変更された場合、変更点はヒントになります(たとえば、余分なコメントを書いたり、レイアウトを変更したり、行を上または下に追加する自動ツールなど)。


EDIT:SVNのマージの問題、および修正の詳細については、this blog postを参照してください。

+0

これは私が定期的にやっていなければならないことですか? 私はCodi​​ngHorrorからの不吉なTweetの後、1.6へのアップグレードを心配していました。 –

+0

クライアント(亀)をアップグレードしました。キャッシュがエクスプローラを一時停止させる可能性があります。私は1.5.5としばらくの間滞在していましたが、マージにはもっと注意してください。私は「トップレベル」のディレクトリにのみマージする傾向があり、決してサブディレクトリを作成することはなく、この問題は一度もありませんでした。 – gbjbaanb

+0

先日、マージで追加のファイルを検出し、以前にマージされたファイルとして認識しました。あなたのプロジェクトルート以外の全てのsvn:mergeinfo属性の削除が安全な操作であることを確認できますか?考慮すべき悪影響は何ですか?そして...これはバグか期待される行動ですか? –

5

おそらく、前述のようなmergeinfoプロパティです。あなたはおそらくあなたのトランクのファイルとフォルダのmergeinfoプロパティをクリーンアップしたいと思うでしょう。これを行うには、バッチファイルが便利です。

echo Removing Nested Merge Information... 

svn propdel svn:mergeinfo subfolder1 --depth=infinity 

svn propdel svn:mergeinfo subfolder2 --depth=infinity 

svn propget svn:mergeinfo --depth=infinity trunk 

次に、トランクの作業コピー上でバッチファイルを実行した後で、トランクにコミットし直してください。

また、フォルダの名前を変更して移動することは、Subversionリポジトリのフォルダ/ファイルにmergeinfoプロパティを生成する一般的な方法です。 svn1.6は、さまざまなアクションに対してmergeinfoプロパティを追加するほど寛大ではありません。

1

私はmergeinfoが少なくともツールの現在の状態で解決するよりも多くの問題を引き起こすと思います。一度それが透明でのコミットでは、多分それは価値がある使用されます。

mergeinfoのプロパティは安全に削除できます。ただし、再統合のためにマージするリビジョンを手動で追跡する必要があることに注意してください。

3

それは長いが、価値があるhttp://www.collab.net/community/subversion/articles/merge-info.html

で詳細な記事をお読みください。特に、マージインフォノイズを減らすためのヒントを含む最後の「分裂思考」セクションの提案に注意してください。

また、svn propdelを使用して不要なmergeinfoをクリーンアップする代わりに、svn mergeを--record-onlyオプションとともに使用することを検討してください。