hello.cpp
#include
#include "svn_version.h"
using
namespace std;
int main()
makefile.am
automake_options = foreign
bin_programs = hello
hello_sources = hello.cpp
#hello_dependencies = svn_auto_version
built_sources= svn_auto_version
svn_auto_version:
lang="";/
recv=`svn info | sed -n '/^revision: /'p | awk -f': '
''`;/
syned=`test 0 -eq $(shell svn st -q | wc -l ) || echo ' m'`;/
echo -e "/* svn_version.h generated from makefile.am for auto record svn revision. *//n/n/
#ifndef _svn_auto_recv_h_/n/
#define _svn_auto_recv_h_/n/n/
/* m means work copy has modified files. *//n/
#define svn_recv /"$$recv$$syned/"/n/n/
#endif/n" > svn_version.h
原理很簡單:在automake生成的makefile裡,
all: $(built_sources)
每次執行make all 或check或install時都依賴built_sources,
而built_sources沒有達成(svn_auto_version沒有輸出svn_auto_version),所以每次都要執行,可以保證每次make都會重新輸出svn庫的版本號
此處不能用_dependencies,因為_dependencies的執行是在生產臨時檔案後,連線生成程式前執行的,但hello.cpp需要svn_versino.h檔案才能生成臨時檔案。
問題:1. 沒有檢測版本號是否沒變化
2. 本地提交之後,需svn up一下才能得到最新的版本號,如果沒有此時獲得不是最新的svn,每日構造還是沒問題的
自動增加版本號
三個js檔案叫increment.js,version.h,build.h 如下 main function main var bdebug false var args wscript.arguments if args.length 0 args 0 debug bdebug true crea...
VS2017程式集版本號自動增加
一 修改程式集檔案assemblyinfo.cs,將 assembly assemblyversion 1.0.0.0 修改為 assembly assemblyversion 1.0.修改後報如下錯誤 將文字表示為utf 16 單元的序列。要瀏覽此型別的.net framework源 請參閱參考源...
python 自動生成版本號
本文適用於使用subversion版本控制的讀者.前一段時間研究了一下tortoisesvn的源 發現它使用 nant subwcrev.exe 來自動生成版本號的.subwcrev.exe 是tortoisesvn下的乙個命令列工具,安裝了tortoisesvn 就找到它.這裡補充一下tortoi...