首页
/
每日頭條
/
科技
/
版本管理說明文檔
版本管理說明文檔
更新时间:2024-10-01 15:29:39

版本管理說明文檔?産品版本項目/子項目所定義的版本,兩節:x.y如智計劃1.2,那麼這個産品版本号為1.2,我來為大家講解一下關于版本管理說明文檔?跟着小編一起來看一看吧!

版本管理說明文檔(版本控制指引)1

版本管理說明文檔

概念

産品版本

項目/子項目所定義的版本,兩節:x.y。如智計劃1.2,那麼這個産品版本号為1.2。

工程版本

代碼構建産物的版本。工程版本号通常為四節,x.y.z.build。x.y 繼承産品版本号;z在敏捷項目團隊中是沖刺編号,在瀑布團隊中為流水号。該節用于區分不同的研發、上線周期;build為構建流水号,通常由構建工具自動生成。

測試代碼同樣也有工程版本号。目前測試代碼沒有發布流程,也沒有通過工具發布,所以z.build由測試團隊人員自行決定。原則上每一次正式交付,變更z。

發布标簽

每一次發布到生産,在git代碼庫中,給對應的commit标記一個标簽,值為部署物的工程版本,即x.zy.z.build。

目标

統一分支管理策略以及定義。版本化一切,最終提高項目的團隊合作效率、加速新功能開發和發布管理。

原則
  • 采用GitHub Flow策略(推薦)或基于主幹開發策略。
  • 要求項目有完善的自動化測試、持續集成和部署等相關的基礎設施。
  • 版本化一切。
  • 團隊有代碼審查的相應流程。
  • 具備自動部署的條件
規範代碼倉庫
  • 必須:代碼應放在集團統一的代碼倉庫。
  • 必須:工程的可見性不能設置為public。
  • 必須:隻允許給項目相關開發人員配置權限,并應該遵循最小授權原則。
  • 必須:代碼項目創建在團隊空間内,不允許放在個人空間。
  • 建議:團隊空間命名格式為:group/[subgroup]。group為産品線簡稱,如果産品線有多個子産品,再加上subgroup。subgroup為子産品簡稱。如 gaia/gfs,group=gaia,subgroup=gfs。
  • 建議:代碼項目命名格式為:項目代号-模塊[-子模塊][-孫模塊]。如:gaia-gfs-demo,halo-wechat。這樣,GIT中完整的空間-項目名為:gaia/gfs/gaia-gfs-demo。
分支命名【GitHub Flow】
  • 必須:master分支被保護,不允許直接提交至master。
  • 必須:創建分支使用有意義的名稱頭,功能開發用 feature/{JIRA編号}-*,bug修複用 bug/{JIRA編号}-*,熱修複用 hotfix/{JIRA編号}-*。如 feature/XM1907901-1390-enable_audit_log_for_inventory, bug/XM1907901-1403-xxxxxxx。
  • 建議:創建分支開始後,就創建一個MR,用于描述思路,并記錄讨論過程。
  • 建議:未完成的MR以WIP:開頭,如:“WIP:用戶1分鐘未有動作,自動鎖屏”。
  • 必須:至少有一個成員同意合并,才允許合并分支。
  • 建議:合并分支時,使用 --squash,或選中gitlab界面上的"[X]Squash commits when merge request is accepted"。
版本
  • 必須:每一次準備發布生産的交付物,打上發布标簽,并記錄Release Notes。
  • 建議:數據庫有版本号。不同版本的數據庫變更腳本,支持幂等操作,以便自動化完成升級/降級。
  • 建議:測試用例、測試數據也有版本号,要麼和代碼工程版本一緻,要麼自定義,和代碼工程版本有對應關系。
  • 建議:推薦使用Flyway,EntityFramework Migrations來管理DB版本。
推薦實踐版本号使用場景
  1. 敏捷項目沖刺開始,定義本沖刺版本的前三節。
  2. 提交、解決、關閉bug時,正确填入了DevOps中對應的工程版本号。
  3. DevOps構建時,根據前三節,自動補充最後一節的編譯流水号。
  4. 發布至生産環境時,DevOps根據工程版本,自動生成tag标簽。
  5. 如果隻通過DevOps部署,則沒有沖刺版本。DevOps根據産品版本,自動加上制品的上傳批次号,如1.2.13,以追蹤各環境和不同版本部署物的對應關系。
假設場景

項目名稱

開發啟動時間

移交測試時間

回歸時間

上線時間

XX項目

9月1日

9月15日

9月25日

9月26日

開發流程

序号

時間

事項

描述

命令

說明

1

9月1日

從master新建分支

從master創建分支。分支名稱:feature/11-Add_redis_support

git checkout master

git pull

git checkout -b feature/11-add_redis_support

git push --set-upstream origin feature/11-add_redis_support

所有參與人員都提交到此分支

2

9月2日

設計、編寫代碼與測試

提交、提交、提交

git add --allgit commit -a -m "move display name to redis" git push

3

9月3日

開啟MR,以開啟讨論和Review

從gitlab的站點中創建一個MR。

如果并未做完,MR以"WIP:"開頭

4

9月15日

讨論、修改、測試

讨論方案、修正review的改進項。

git add .

5

9月16日

循環修複bug并不斷push到遠程分支。

git commit -am "move on and on"

6

……

每日merge master代碼到分支。

git merge master

7

9月25日

自動化、人工驗收全部通過,MR通過

master代碼可以發布時,打上版本号标簽,1.1.0

git tag add "1.1.0"

git push --tag

選中 "Squash commits when merge request is accepted.“

選中 "Delete source branch when merge request is accepted"

8

9月26日

部署

生産環境部署master。

通告其他分支開發人員盡快merge master代碼

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
速凍水餃八種
速凍水餃八種
好吃不如餃子。新年将至,又到了必須安排餃子的時刻。不論身處南北,是否獨在異鄉,在外漂泊的遊子、自力更生的社畜,或者單純自己犯懶、卻在饞餃子的朋友們,一定非常需要一份良心餃子選購指南。為了找出最好吃的速凍餃子,一周之内,我狂吃13頓餃子,以下...
2024-10-01
手機的外置存儲卡怎麼找到
手機的外置存儲卡怎麼找到
一張小小的卡片存儲了幾代人的青春,有了它,一台小小的手機就能容得下好幾十首歌,好幾場精彩電影。然而現在,青春已逝,手機更新疊代速度如此之快,科技為我們帶來了很多新技術,但那些充滿回憶的内存卡也慢慢從我們的眼前消失不見。一、運行速度慢以我們現...
2024-10-01
手機長時間泡水裡還能恢複嗎
手機長時間泡水裡還能恢複嗎
手機長時間泡水裡還能恢複嗎?有可能修好,現在很多的手機是防水的,一般水的影響很小,甚至不用修但是也有一部分是修不好的,現在小編就來說說關于手機長時間泡水裡還能恢複嗎?下面内容希望能幫助到你,我們來一起看看吧!手機長時間泡水裡還能恢複嗎有可能...
2024-10-01
蘋果手機内存不足清理最有效
蘋果手機内存不足清理最有效
你有沒有和我們一樣的情況?想下載東西剛用手機鍊接iTunes,發現“其他”顯示已滿。“其他”其實是iOS自動生成的“正常”文件,因為您安裝應用程序,歌曲,照片,視頻等文件逐漸增加,而将iTunes傳輸到機器内部的所有文件都标識為“其他”,i...
2024-10-01
dnf9.22裝備改版内容
dnf9.22裝備改版内容
90版本時代,“三神器”名聲如雷貫耳,成為玩家刷深淵的追求。如今到了110級版本,9.22史詩平衡改版後,軍團地下城的推出,讓新“三神器”誕生,成絕大部分玩家主流搭配!新“三神器”之一品級左槽光學工程眼鏡,也被稱為品級左槽,産自于機械戰神,...
2024-10-01
Copyright 2023-2024 - www.tftnews.com All Rights Reserved