Windowsでソースコードの差分を取得する方法

Windowsでソースコードの差分を取得する方法

Posted at July 22,2011 1:33 AM
Tag:[diff, Windows]

Windowsでソースコードの差分を取得する方法です。

差分を取得する方法は色々あると思いますが、私はLinuxのdiffコマンドをWindows上で実行しているので、その方法を紹介します。

1.UnxUtils.zipのダウンロード

注:ダウンロード先は2011年7月現在で確認できている内容です。

UnxUtilsにある「Download」クリック。次の画面で少し待てばダウンロードが開始します。

UnxUtils

2.UnxUpdates.zipのダウンロード

GNU utilities for Win32にあるUnxUpdates.zipをクリック。

UnxUpdates

3.UnxUtils/UnxUpdatesのインストール

ダウンロードしたUnxUtils.zip/UnxUpdates.zipをそれぞれ展開し、UnxUpdates.zipで展開したファイルを、UnxUtils.zipを展開した中にある、

C:¥UnxUtils¥usr¥local¥wbin

に上書きします。

ここではActivePerlをインストールしている例で進めますので、wbinフォルダを¥usrl配下に移動して、

¥usr
  ¥include
  ¥lib
  ¥share
  ¥wbin

とします。ActivePerlをインストールしていない場合は、

C:¥UnxUtils¥usr¥local¥wbin

のままで構いませんが、2項の設定内容が変わるので注意してください。

4.パスを通す

「パスを通す」というのは、WindowsやLinux等でコマンドを実行するときに、コマンド名だけを入力すれば良い状態を指します。今回の場合、wbinフォルダ配下にあるdiffというコマンドを実行しますが、パスが通っていないと

C:¥UnxUtils¥usr¥local¥wbin¥diff

とルートからのパスを入力しなければなりません。以下、手順です。

「スタート」→「コンピュータ」を右クリックして「プロパティ」を選択。

スタート

「システムの詳細設定」をクリック。

システム

「詳細設定タブ」の「環境変数」をクリック。

詳細設定タブ

「システム環境変数」にある「Path」を選択して「編集」をクリック。

詳細設定タブ

「変数値」の最後にパスの区切り文字";"を記述し、その後に「C:¥usr¥wbin」を追加します。

詳細設定タブ

1項でActivePerlのパスに移動していない場合は、「C:¥UnxUtils¥usr¥local¥wbin」を追加します。

パスが通っているかどうかの確認は、

「スタート」→「すべてのプログラム」→「アクセサリ」→「コマンドプロンプト」を開いて「diff」を入力します。パスが通っていれば次のように表示されます。

パスが通っている場合

パスが通っていないと下のようになります。

パスが通っていない場合

なお、システム環境変数を設定する前に開いたコマンドプロンプトではパスが通らないので、新しいコマンドプロンプトを開き直してください。

5.ソースコードの差分を取得する

ここではMovable Typeの最新バージョン(5.12)とひとつ前のバージョン(5.11)の差分を例にします。5.11と5.12を展開したフォルダは事前に用意しておいてください。

コマンドプロンプトで次のように入力します。

>diff -r [MT5.11のフォルダ] [MT5.12のフォルダ]

「diff」はファイルの差分を出力するコマンドです。「-r」はフォルダを再帰的にチェックするオプションです。MTのフォルダがCドライブ以外にある場合はフルパスで指定してください。

ここではCドライブ直下にMT-5.11-jaというフォルダとMT-5.12-jaというフォルダがある例で示します。実行すると次のように差分がずらずらと表示されます。

diffの実行

一番左に表示されている「<」が旧バージョンの内容、「---」の下に表示されている「>」が新バージョンの内容です。

また左端に表示されている「4c4」「1976a1967」などは、差分があった行番号と差分の種別(a:追加/c:変更/d:削除)を示しています。追加と削除については「---」はありません。

6.実行結果を保存する

実行結果をファイルに保存するには、画面に表示された内容をコピーするよりも、リダイレクションを使います。具体的には、コマンドラインの最後に「> [ファイル名]」を追加します。

次のように実行すれば、実行結果がコマンドプロンプトではなく、Cドライブ直下にhoge.txtというファイルに出力されます。

実行結果を保存

diffコマンドには他にも色々なオプションがあるので、ネットで検索してみると良いでしょう。

関連記事
トラックバックURL


コメント

yujiroさん、

解説どうもありがとうございました。
前回コメントでdiffを紹介していただいて、用意していました。

diffコマンドの出力結果を整理するのが、自分には大変そうですが、
エディタのマクロをうまく使えば、なんとかなるかもしれませんね。
(それも難しいですけれど、勉強してみます。)

[1] Posted by s.fujino logo : July 22, 2011 9:35 PM

>s.fujinoさん
こんばんは。
記事遅くなってすいませんでした。
ご参考になれば幸いです。
ではでは!

[2] Posted by yujiro logo : July 23, 2011 2:25 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)