網頁

2019/5/14

SVN 什麼是trunk,branches,tags?

SVN的trunk是指最一開始的開發主線,也就是所有branches分支最原本的源頭。

一個標準的SVN版控目錄中,"通常"會有trunk,branches和tags。
會說"通常"是因為這並非SVN的硬性規定,要叫其他名稱也可以,不過一般都是用trunk,branches和tags。

初始一個SVN repository後,最開始就只有一個叫trunk的主線,然後第一個branches就是由trunk所複製出來的分支,通常團隊成員在開發新功能或解bug時不會在trunk上進行,而是會從主線切一條branches來開發,待功能或問題解決並測試完後才會合併(merge)回主線。而tag則用來標註truck或branches上某個有特殊意義的提交點,例如該提交點代表某個版本,或是某個新功能,或是解了某個bug。

使用tags的理由是從SVN提交的歷史紀錄(log)上很難看出或是找到某個具有意義的提交點。你或許會想:「在提交時的寫在註解就好啦」,例如

+----------+---------+----------+------------------+
| Revision | Author  | Date     | Message          |
+--------------------------------------------------+
| 10001    | John    |2019/5/19 | v1.0.2           |
+--------------------------------------------------+
| 10000    | Louis   |2019/5/10 | fix xxx issue    |
+----------+--------------------+------------------+
|  9999    | Louis   |2019/5/3  | refactor         |
+----------+--------------------+------------------+

雖然上面在註解中寫下了第10001次的提交代表專案的版本v1.0.2版,但註解中在SVN log上並不會特別標註出來,你只能翻遍紀錄中的每一次提交才找得到,因此才需要tags來標註這個10001次提交點為v1.0.2版,日後要找到這個版本的提交點只要搜尋tags即可快速找到。


參考:

沒有留言:

張貼留言