自動增加svn庫版本號

2021-04-20 05:38:12 字數 1234 閱讀 2749

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...