« Bug triage | トップページ | 広告 »

2007年6月10日 (日)

*.vcprojファイル

VC++では、*.vcprojという名前の「プロジェクト定義」ファイルを使います。これはXMLなのだから、テキスト形式になっていますが、CVSでうまく扱えていませんでした。Subversionは、バイナリも (単なる格納と上書きではなくて) 差分として扱えると聞いたので、だったら本来テキストの*.vcprojが扱えないはずがないだろうと思ったのですが、やはりうまくいきませんでした。

そうこうしていたら、ちょうど今週、sldevリストで"Compiling under VS2005"という投稿があり、*.vcprojのことが話題になりました。で、これを機会に真剣に調べてみました。

そうしたら、今までうまく扱えなかった原因は、二つあったことがわかりました。

  • 改行コードの問題。VC++のエディタは、CRLF形式でもLF形式でも、どちらでも扱え、編集後にsaveしても元の形式が維持されるのですが、*.vcprojはCRLFでなければならないらしい。と、いうか、LF形式でも読めるのだが、勝手にCRLFに変換してしまうようです。
  • XMLのpretty printの問題。VC++ Express 2005をつかっているのですが、プロジェクトエディタが、VS2003形式(?)のpretty printがお気に召さないらしく、改行位置を変更してしまう。

そういうわけで、CVSにせよSubversionにせよ、差分抽出が機能していなかったのでした。

原因がわかれば、対策もかんがえられるよなー、ということで現在検討中。

しかし、どう考えても、

<Tool
Name="VCPreBuildEventTool"/>

<Tool
Name="VCPreBuildEventTool"
/>

に強制的に書き換える理由がわからない…。

« Bug triage | トップページ | 広告 »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/285638/6733374

この記事へのトラックバック一覧です: *.vcprojファイル:

« Bug triage | トップページ | 広告 »