svnのリビジョンを埋め込む

「svnのリビジョンを埋め込む」の編集履歴(バックアップ)一覧はこちら

svnのリビジョンを埋め込む - (2008/07/22 (火) 16:27:55) の最新版との変更点

追加された行は緑色になります。

削除された行は赤色になります。

&bold(){SVNのリビジョンを返す関数の作成} 手荒ですが、他に思いつかなかったので。 SubWCRev.exeをサブプロセスで開き、revisionナンバーをgetします。 windows,TortoiseSVNの場合を公開しますが、 svnコマンドが普通に使えるlinuxなら簡単でしょう。 #code(){{ import subprocess def getSvnRevision(): path = 'C:/home/pathToTheDir' #get revision cmd = ['C:/Program Files/TortoiseSVN/bin/SubWCRev.exe', path] p = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) (stdouterr, stdin) = (p.stdout, p.stdin) #print res revision = 0 while True: line = stdouterr.readline() if not line: break lineSplitted=line.rstrip().split() if lineSplitted[0]=='Last': revision = int(lineSplitted[-1]) break ret = p.wait() return revision }} &bold(){埋め込む} #code(){{ revision = 1 }} とだけ書いたファイルrevision.pyを用意します。 これをコードから呼び出す。 #code(){{ from revision import * #これで変数revisionが普通に使えます。 print '(rev: '+ str(revision)+')' }} &bold(){更新する} 自分の場合は最終配布はpy2exeで考えてるので、以下のコードをsetup.pyの頭に入れておけば、ビルド時に最新のリビジョンナンバーがコードに埋め込まれるわけです。 先ほどの関数を呼び出し、最新のリビジョンをintでget,revision.pyに上書きします。 #code(){{ import getSvnRevision rev = getSvnRevision.getSvnRevision() o = open('src/revision.py','w') o.write('revision = ' + str(rev)) o.close() }} すごい馬鹿なことをしてるかもですが、このコードは、配布exeには残らないので まぁ動けばいいです。
&bold(){SVNのリビジョンを返す関数の作成} 手荒ですが、他に思いつかなかったので。 SubWCRev.exeをサブプロセスで開き、revisionナンバーをgetします。 windows,TortoiseSVNの場合を公開しますが、 svnコマンドが普通に使えるlinuxなら同じようにできるでしょう。 #highlight(python){{ import subprocess def getSvnRevision(): path = 'C:/home/pathToTheDir' #get revision cmd = ['C:/Program Files/TortoiseSVN/bin/SubWCRev.exe', path] p = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) (stdouterr, stdin) = (p.stdout, p.stdin) #print res revision = 0 while True: line = stdouterr.readline() if not line: break lineSplitted=line.rstrip().split() if lineSplitted[0]=='Last': revision = int(lineSplitted[-1]) break ret = p.wait() return revision }} &bold(){埋め込む} #highlight(python){{ revision = 1 }} とだけ書いたファイルrevision.pyを用意します。 これをコードから呼び出す。 #code(){{ from revision import * #これで変数revisionが普通に使えます。 print '(rev: '+ str(revision)+')' }} &bold(){更新する} 自分の場合は最終配布はpy2exeで考えてるので、以下のコードをsetup.pyの頭に入れておけば、ビルド時に最新のリビジョンナンバーがコードに埋め込まれるわけです。 先ほどの関数を呼び出し、最新のリビジョンをintでget,revision.pyに上書きします。 #highlight(python){{ import getSvnRevision rev = getSvnRevision.getSvnRevision() o = open('src/revision.py','w') o.write('revision = ' + str(rev)) o.close() }} すごい馬鹿なことをしてるかもですが、このコードは、配布exeには残らないので まぁ動けばいいです。

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。