golang程式版本管理

2021-07-31 22:48:00 字數 1129 閱讀 3853

版本管理主要用於對執行程式的版本追蹤,從而可以管理線上服務的執行版本,避免各個版本的服務程式混淆.這裡通常的做法為在程式中埋入版本標誌,同時該版本號會對應到git上的tag或release版本.從而對線上服務更改有乙個更全面的資訊說明.這裡將介紹基於gnu風格一種版本命名方式.

1. 版本號命名格式

主版本號 . 子版本號 [. 修正版本號 [. 編譯版本號 ]]

major_version_number.minor_version_number[.revision_number[.build_number]]

示例 : 1.2.1, 2.0, 5.0.0 build-13124

程式集的只有內部版本號或修訂號不同的後續版本被認為是先前版本的修補程式 (hotfix) 更新。

2. 版本號管理策略

1) .專案初版本時,版本號可以為 0.1 或 0.1.0, 也可以為 1.0 或 1.0.0.

2). 當專案在進行了區域性修改或 bug 修正時,主版本號和子版本號都不變,修正版本號加 1;

3). 當專案在原有的基礎上增加了部分功能時,主版本號不變,子版本號加 1,修正版本號復位為 0,因而可以被忽略掉;

4). 當專案在進行了重大修改或區域性修正累積較多,而導致專案整體發生全域性變化時,主版本號加 1;

5). 另外,編譯版本號一般是編譯器在編譯過程中自動生成的,我們只定義其格式,並不進行人為控制。

3. 專案中埋入版本資訊

針對每個服務,新建乙個version的包用於版本管理,手動更改編譯指令碼中的版本號.且該版本號必須和gitlab上的版本號一一對應.

當執行二進位制程式的並輸入-v引數時則輸出該程式的版本號,不輸入任何引數時則執行程式.

4.示例

示例見使用時使用build指令碼編譯即可生成帶有提交資訊的程式,需要根據程式修改build指令碼中引數.

執行後產生的結果如下:

./example -v

version: 0.0

.1 git commit: de07491

go version: go version go1.6

.2 linux/amd64

build time: 2017-05-11

16:20:27

參考

golang程式新增版本號

這段時間專案經常發布版本,導致我們版本管理混亂。特別是在真實環境上面,沒有了版本控制軟體協助版本管理,我們無法確認程式到底是新版本還是舊版本。這給我們排查問題帶來了很大困擾。於是,我就想給程式本身打上版本號,通過程式就可以看到程式是新版本還是舊版本了。檢視資料發現golang不能像c 那樣通過巨集定...

微信小程式版本管理

點選抓取以下遠端倉庫,選擇倉庫名 在拉取以下遠端分支下選擇要同步到本地的遠端倉庫的分支,這樣本地的 就會和遠端倉庫的那個分支的 同步了 工作區每次提交都是有記錄的,只要提交之後你再修改 編譯後 在工作區就能看到你做的修改。如果你上一次提交的 是挺好的,然後改了一下,發現改錯了,這時候你就到工作區把一...

IOS 程式的版本管理 基於SVN

1,安裝 svn a,sudo apt get install subversion subversion tools b,mkdir home svn c,cd home svn d,svnadmin create repository 2,匯入project a,mkdir proj b,mkd...