ドナドナされるプログラマのメモ

Windows用アプリのプログラミングメモ

SourceTreeでVisualStudioのリソースファイル(.rc)をテキストとして認識・diff表示させる手順

SourceTreeでVisualStudioのリソースファイル(.rc)をテキストファイルとして認識・diff表示させるのに苦労したので、手順をメモ。

最初に試したのはgitattributesに*.rc diff=astextplainを追加すること。でもだめだった。そこで、以下を参照しながらやってみたら成功した。

qiita.com

以下、実際の手順。

1. nkfの入手

diff処理する際にUTF-8へと変換するためにnkfというソフトを使う。最新版のソースはOSDNに、古いWindowsバイナリはVectorにある。

ja.osdn.net

www.vector.co.jp

最新版では色々バグが治ってるようなので、ソースコードを入手しVisualStudio2022環境でビルドした。以下、WindowsバイナリをVectorから入手している人は無視して3.へ行ってOK。

2. nkfのビルド

VisualStudioのツールメニューにあるコマンドラインより、開発用~のいずれかを起動する(多分どちらでも以下手順には変化なし)。

開発用プロンプト等の起動

次に、プロンプト上にて、nkfのソースファイルを展開した場所(正確には、nkf.makというファイルがあるフォルダ)へとCDする。

そして、nmake /f nkf.mak を実行する。

すると、同フォルダにnkf.exeができる。

3. nkfのコピー

入手・生成したnkf.exeを、sourcetree内の所定フォルダなどにコピーする。自分の場合は、下記フォルダにコピーした。

 %appdata%\..\Local\Atlassian\SourceTree\git_local\mingw32\bin

4. gitへ変換フィルタを登録

SourceTreeより「操作」メニューの「ターミナルで開く」をクリックし、sourcetreeインストールフォルダ内のbashを起動する。

bashの起動

その後、以下を実行してgitへ変換フィルタを登録する。

git config --global diff.to_utf8.textconv 'nkf -w'

5. gitattributeに変換ルールを追加

以下にあるgitattributeを開く。

%appdata%\..\Local\Atlassian\SourceTree\git_local\etc

そして、以下を追加し保存する。

*.rc diff=to_utf8

*.RC diff=to_utf8

追加後のgitattributeファイル(一部のみ表示)

6. 完了

SourceTreeを再起動すれば、差分表示に成功するはず。

作業結果:*.rcファイルの差分が表示された