Visual Studio 2010を使用しています。私は、TortoiseHgがバイナリであると考えるresource.hファイルを持っているため、コミットウィンドウにdiffを表示しません。テキストエディタで簡単にファイルを開いて、それがプレーンテキストであることがわかります。なぜTortoiseHgはResource.hがバイナリだと思いますか?
関連する質問(Why does Mercurial think my SQL files are binary?)は、ファイルのエンコードと関連があることがわかりました。実際にNotepad ++でファイルを開くと、そのファイルは "UCS-2 Little Endian"になっています。これをどうすれば解決できますか?私は明らかに、Visual Studioの期待を破りたくはありません。
Visual Studio内から、resource.hファイルを開き、メニューのFile-> Advanced Save Optionsに進み、エンコーディング「Unicode(UTF-8 with signature) - Codepage 65001」を選択しました。 2回のコミットの後、私は今、適切なdiffを見ることができます。 – User
リソースエディタで編集した後、 "Unicode(署名付きUTF-8 - コードページ65001)"を選択すると、Visual StudioファイルではないファイルについてVisual Studioが苦情を受けます。代わりに私は "US-ASCII"を使用しました(この回答のリンクされたスレッドで説明されています)。おそらく問題はUTF-8の署名ですか?署名なしのオプションがありますが、今は問題を解決すると考えています。 – User
署名不要のオプションを常に推奨します。 BOM(問題の署名)は、多くのプログラムで共通する問題の原因です。また、BOMがなくても、UTF-8とISO-8859-1の違いを自動検出するのは比較的簡単です。ASCII範囲外の文字が含まれていても、実際に値を追加するわけではありません。 –