2012-01-25 12 views
0

ビルド#を参照できるということは、いくつかの異なるLinux/Unix/AIXホスト上に構築されたC/C++プロジェクトです。私はコードを持っているので、古典的な$ Rev $ SVNキーワードのことをして、必要なときにそれを印刷しますが、それを含む1つのファイルを変更するたびに番号が更新されます(これは、まれに編集されたファイルリポジトリ全体で)。エクスポートされたCファイルに埋め込まれたSVNリビジョン番号

私は通常、自分のリポジトリをsvn exportして別のホストに移動する前にtarballを作成するので、svnversionは機能しません。(SVNがインストールされている数台のマシンでも 'exported'を返します。私は何とかsvnversionを実行し、私のソースにそれを埋め込む 'svn export'スクリプトを構築するよりも、この番号を取得するより良い方法があるのだろうかと思います。

私は自分のビルドシステムにCMakeを使用しています。

答えて

1
  1. 」の「この番号」を取得しますか?
  2. 「これ」はどれですか? WCツリーの最後のコミット、WC-repoの改訂版
  3. あなたはどのOSをお持ちですか?

私は通常私のレポの輸出をsvnの 'と別のホストに移動する前にtarballを作成するので、つけません

は明らかに

そして場合、輸出前にWCの内側に呼び出す必要がありますあなたはtarballでコードを持っているかもしれません。情報のためにグローバルなresision-idが必要な場合は、というファイル名の中にリビジョンを保存したいでしょうか? WindowsベースのTSVNユーザとして

、私はコミット後のクライアントフック

  • いくつかのリポジトリ情報を取得し、保存するために、私のビルドスクリプトでSubWCRevを使用して、ビルダー・テンプレートはsvn export ... z:\trunk$WCDATE=%Y%m%d$-r$WCREV$が含まれているSubWCRev.exe <path> Builder.tpl Builder.bat ... call Builder.batを行います、およびテンプレート内のすべてのマクロが
  • SubWCRevは、処理されたファイルには、実際のデータに展開することも、Linuxでは、POについてSubWCRevは

で前処理さWCDATEがあまりにも構築持って、テンプレートが含まれるマイSubWCRevはのRTは、同じ機能を持つ存在:SVNWCRev(テストしていない)との素敵なSvnRev(SVNWCRevへ積極的に開発逆である)いくつかは、SubWCRevはに延びる| SVNWCRev

+0

私は、Linux(RHEL5)ボックスの開発をやっていますしかし、SUSE、RHEL5、RHEL6、Debian、AIX、Solarisなどのコレクションでは、(私のところで)展開が行われます。そして私はデバッグログに埋め込むことができるように、リポジトリのバージョンをコードにしたいので、ユーザーはバグを報告するときにそれを見ることができます。 – Yeraze

+0

WCの 'svnversion'、リポジトリがローカルファイルシステム上にある場合は' svnlook'サブコマンド、WC内の 'svn info' + grepまたはエクスポートされたディレクトリ –

関連する問題