IT ニュース&コラム 2017/ 7/ 3 通巻741号 技術版 ソフトウェアデザイン館 Sage Plaisir 21  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ■■ Keyword Substitution の違いを無視して比較する DiffWithoutKS ■■ vbslib の DiffWithoutKS コマンド(ショートハンドは diffks)は、 Keyword Substitution(例:$Date: 〜 $)の違いを無視して比較するために、 KS の値をカットしてから比較ツールを起動します。 vbslib は、以下からダウンロードできます。 Windows 用です。 http://vbslib.osdn.jp/ http://www.sage-p.com/vbslib/vbslib.htm https://github.com/TsNeko/vbslib Keyword Substitution は、ソースファイルの中の $ から $ で囲まれた部分 です。 たとえば、下記のようなテキストです。 ---------------------------------------------------------------- : $Author: user1 $ $Revision: 43 $ $Date: 2016-10-26 11:07:39 +0900# $ : ---------------------------------------------------------------- Git や SubVersion といったバージョン管理ツールでは、コミットする タイミングで、Keyword Substitution の値を自動的に編集します。 $Revision: は、バージョン管理ツールが定義するコミットのリビジョン番号です。 Git や SubVersion では、変更があったファイルだけ Keyword Substitution の値を編集するため、vbslib の DiffWithoutKS コマンドを使うメリットは ないのですが、たとえば、モジュールを構成するいくつかのソースファイルに 共通したバージョン番号を Keyword Substitution 形式で記述するときに メリットがあります。(逆に言えば、そういったバージョン管理は、Git や SubVersion ではできないのです。) たとえば、Example モジュールを構成する Example.c ファイルと Example.h ファイルの中に、以下の Keyword Substitution とコードがあるとします。 Example.h ---------------------------------------------------------------- /* $Version: 1.01 $ */ /* $Revision: 101 $ */ extern int g_Global; ---------------------------------------------------------------- Example.c ---------------------------------------------------------------- /* $Version: 1.01 $ */ /* $Revision: 101 $ */ int g_Global = 1; ---------------------------------------------------------------- このリビジョンから、g_Global 変数の初期値を変えたら、バージョン番号 やリビジョン番号は以下のようになります。 ただし、$Version は、 手動で、または Git や SubVersion 以外のツール(たとえば、vbslib の ModuleAssort2 )が編集し、$Revision は、Git や SubVersion が 編集するものとします。 Example.h ---------------------------------------------------------------- /* $Version: 1.02 $ */ /* $Revision: 101 $ */ extern int g_Global; ---------------------------------------------------------------- Example.c ---------------------------------------------------------------- /* $Version: 1.02 $ */ /* $Revision: 102 $ */ int g_Global = 2; ---------------------------------------------------------------- $Version は、Example モジュールのバージョン番号を適切に表していますが、 その代わり、Example.h ファイルを実質変更していないのに、ファイルの 比較ツールでは「$Version: 1.02」の部分に変更があったと表示されてしまいます。 もし、モジュールを構成するファイルが何十もあるときは、実質変更がない 多くのファイルに対して変更があると表示されてしまいます。 vbslib の DiffWithoutKS コマンドを実行すると、下記のように Keyword Substitution の値を削除してから、ファイルの比較ツールを起動します。 Example.h ---------------------------------------------------------------- /* $Version: $ */ /* $Revision: $ */ extern int g_Global; ---------------------------------------------------------------- この場合、「$Version: 」の部分に変更はありません。 バージョン番号を適切に表しながら、変更があったファイルを最小限だけ 表示するようになります。 ■■ 注目ニュース 一覧 ■■ ◇ イープラス、SMS認証を導入。チケット不正購入を根絶へ。 https://japan.cnet.com/article/35103587/ … 一人でたくさんのアカウントを持って大量購入することを禁止する。 ◇ 強いキャラ持つバンダイナムコ VR施設やライブも展開。 http://trendy.nikkeibp.co.jp/atcl/column/16/021400099/062200014/ … アップルやグーグルと連携することで世界とライトユーザーに配信。 ◇ Nintendo Switchを置くだけでスタンドになってバッテリーの充電も可能な外出時必携アイテム。 http://gigazine.net/news/20170701-nintendo-switch-mobile-battery/ … Switch 用スタンド付きモバイル バッテリー。 ◇ Amazonが支配しようとしているのはオンライン通販ではなく商取引全体のインフラである。 http://gigazine.net/news/20170627-amazon-control-underlying-infrastructure/ … 独占すると、消費者の選択肢をコントロールしてしまう。 ◇ 目指すは機械学習の民主化。Googleが考えるビッグデータ・AI活用の在り方。 https://news.mynavi.jp/itsearch/article/cloud/2825 … ビッグデータ解析プラットフォーム。 インフラ整備はグーグルにおまかせ。 ◇ アンプとピアノを共同開発。オンキヨーと河合楽器が業界の枠を超えてコラボ。 https://japan.cnet.com/article/35103600/ … 楽器のデジタル化が進むとアンプも楽器の一部に。 ◇ Mozilla Japan、組織名を WebDINO Japan に変更へ。米国から独立。 https://japan.cnet.com/article/35103585/ … Mozilla の活動が一段落したのか。 ◇ HDMI出力/有線LANなどを増設できるUSB Type-C外付けドッキングステーション http://www.itmedia.co.jp/pcuser/articles/1706/30/news086.html … 実質 Mac 専用かも。 ■■ ソフトウェアデザイン館 Sage Plaisir 21 ■■ ホームページ >>> http://www.sage-p.com/ メルマガ >>> http://www.mag2.com/m/0000083983.html ブログ >>> http://blog.livedoor.jp/sage_p/ ツイッター >>> http://twitter.com/Ts_Neko ダウンロード >>> http://www.sage-p.com/freesoft.htm サポート掲示板 >>> http://www.sage-p.com/kg_ban09/z6037C8.cgi 東日本大震災 >>> http://www.sage-p.com/saigai.html メール >>> ts-neko◇sage-p.com ←◇を@に変えてください 緊急メールは件名に「うどんメール」を付けてください。 このメルマガの登録・解除 - http://www.mag2.com/m/0000083983.htm