永田です。 > https://www.dropbox.com/s/udjqypntnhllbtb/release_scripts.zip?dl=0 上からひととおりチェックしはじめました。 以前あった svnrev.exe は、「作業コピーの現在の SVN リビジョンを 得て teraterm\ttpdlg\svnversion.h を更新する」ためのもので、 ttermpro をビルドする前に必ず実行されるようにしていました。 (実行されると、既存のファイルより今のリビジョンが上がって いる場合のみ、svnversion.h を更新していました。) これにより、リリース時はもちろん、スナップショットであっても その SVN リビジョンが About ダイアログに表示されます。 svnrev_perl にはこの機能がないようですが、svnrev がやりたい ことの認識はあっていますか? * svnrev.pl が実行されない build.bat は rebuild だと svnrev.bat の実行をスキップしますが、 スキップするにしても逆のような気がします。 また、svnrev.bat も svnversion.h の存在をチェックをし、存在する と svnversion.h を更新しません。 これだと、svnversion.h に表れるのは「ソースがチェックアウト されて最初にビルドしたときの SVN リビジョン」になり、その後 作業コピーの SVN リビジョンが上がっても更新されません。 svnrev.pl が必ず実行されるように変更するのがよいでしょうか? * リビジョンの更新チェック 今の svnrev.pl は実行されると必ず svnversion.h を更新します。 そうすると、毎回ソースが変わり必ず ttermpro がビルドされてしまうの で、「svnversion.h が存在していたら、そのリビジョンと比較して、 更新されていたら書き込む」という処理が必要になります。 * ttermpro.sln において bat と perl だけのプロジェクトで、なにが「ビルド」されるのか わかりません(それ自体は問題はありません)が、svnrev_perl の 「ビルド前のイベント」で「$(ProjectDir)svnrev.bat」が実行される ようになっています。 ttermpro は svnrev_perl に依存していますが、svnrev_perl に変更 があってビルドされないと「svnrev_perl のビルド前イベント」が 起きず、svnrev.bat は実行されません。ttermpro にだけ変更がある ときは svnrev_perl のビルドは発生しませんので、svnversion.h が 更新されません。 ttermpro のビルド前イベントで呼び出すだけでよくて、svnrev_perl のプロジェクトは不要ではありませんか? * svnrev_perl の位置 ツリーのトップにこれがあるのが変な感じがしていて、buildtools か tools の中ぐらいがちょうどいいように感じます。 この2つを使い分ける基準はありますか? * svn.exe が日本語でメッセージを返すとき /Last Changed Rev: (\d+)/ や /Relative URL: (.+)$/ に引っかからず、 svnversion.h に情報が出力されませんでした。 手元では、subversion.mo が読み込まれないよう環境をいじって回避する ことができました。 svnrev.exe では、数値と記号だけを返す svnversion.exe を実行して いたので問題になりませんでした。 -- TeraTerm Project https://ttssh2.osdn.jp/ NAGATA Shinya <maya.****@gmail*****>