分支 (版本控制)

✍ dations ◷ 2025-04-28 04:10:59 #版本控制系统,版本控制

在版本控制与软件配置管理中,分支(英语:Branching)是由某个版本的程式码或软件物件中建立复制版本,在分支出来后的两个版本,可以独立进行修改。

分支会形成树状结构,也被称为trees,streams或codelines。原始的版本,称为父分支(parent branch)或是上游分支(upstream branch)。分支出来的复本,称为子分支(Child branches)。作为最源头,没有父分支的分支,称为主干(trunk)或主线(mainline)。

在分散式版本控制系统(例如Darcs(英语:Darcs))中,分支和存放版本的仓库(repository)是一样的。在这类系统,复制一份仓库的复本和分支是一样的。

软件进行分支后,之后有可能会再将分支合并回父分支。常见的是将修改内容合并回主干(有可能主干不是父分支)。若某个分支不打算合并(例如曾由第三方授权,授权内容不相容,因此已重新授权(英语:relicensing),或是用在不同用途上),会称为分叉(fork)。

建立分支可以让各部分的程式码可以平行开发。大型专案会有不同的参与者,例如开发人员、build管理者,以及软件质量保证人员等。甚至需要维护针对不同操作系统的不同发行版。分支可以让参与者在不破坏基础代码稳定性的情形下,将修改和基础代码隔离,再进行程式错误修正、新机能(英语:Feature (software design))开发、软件版本整合等。这些修改可以在测试完成后,再合并回主线。

开发分支(development branch)或开发树(development tree)的程式码是指正在软件开发,但还没有正式发行的程式码。若在开放源代码社群中,“正式发行”不是那么直觉,因为任何人随时都可以取出(check out)需要的版本,不管是不是在开发分支中都可以取出。一般而言,最终会是下一个主要版本的分支就是开发分支。不过也常常同时开发多个机能,因此存在多个开发分支。

有些版本控制软件会针对主要的开发分支有特殊的命名,例如在CVS中称为MAIN,在Git中则称为master。

在cvc(英语:cvc system)(开源软件,整合rPath开发的版本控制系统)及CVSNT(英语:CVSNT)中,可以针对上游的分支建立阴影分支或魔术分支,在小修改的维护上比较方便。

在分散式版本控制中,可以复制整个仓库(以及其中的分支),之后再进行开发。Monotone(mtn)、Mercurial(hg)及Git称为clone。

相关

  • 起搏器心脏起搏器(英语:Pacemaker、Artificial pacemaker),又称心脏节律器,心脏起搏器,是一种医疗器材,使用电击对于心脏的肌肉做持续与规律的刺激,以维持心脏的持续跳动。1932年,美国的生
  • 亨德森阿瑟·亨德森(Arthur Henderson,1863年9月13日-1935年10月20日),英国铁模具制造商、工党政治家,1934年诺贝尔和平奖得主。此外,他曾在1908年至1910年、1914年至1917年与1931年至193
  • 联邦银行澳大利亚联邦银行(Commonwealth Bank of Australia,ASX: CBA)是澳大利亚的一间主要银行,位列澳大利亚四大银行之一,总部位于悉尼。在澳大利亚证券交易所上市,是一间具有国际性质
  • 天元区天元区为湖南省株洲市辖区,为1997年5月31日新成立的市辖区,地处株洲市城区西南部,北部、东南部湘江环绕;西与湘潭县接壤,东、南和北面隔湘江与芦淞区、石峰区相望。2005年,国内生
  • 核燃料核燃料(英语:nuclear fuel)是指可被核反应堆利用,通过核裂变或核聚变产生实用核能的材料。核燃料既能指燃料本身,也能代指由燃料材料、结构材料和中子减速剂及中子反射材料等组成
  • 图利奥·列维-齐维塔图利奥·列维-齐维塔(意大利语:Tullio Levi-Civita,1873年3月29日-1941年12月29日),意大利数学家。
  • 坎贝尔 (俄亥俄州)坎贝尔(Campbell),美国俄亥俄州马霍宁县的一个城市。该市总人口8,235(2010年)。该市面积9.6平方公里。
  • 星谈 (脱口秀节目) 《星谈》是由尼尔·德格拉斯·泰森主持的美国脱口秀节目,每周在国家地理频道上播出。节目中,主持人邀请著名的科学家、喜剧演员或者各路名人一起探讨科学话题,主题包括太空旅
  • 马鹿塘口岸坐标:22°36′27″N 103°9′52″E / 22.60750°N 103.16444°E / 22.60750; 103.16444马鹿塘口岸(越南语:Cửa khẩu Ma Lù Thàng),是越南莱州省封土县的一个边境口岸。该口岸
  • 巴博勒萨尔巴博勒萨尔是伊朗的城市,位于该国北部里海沿岸,距离巴博勒20公里,由马赞德兰省负责管辖,面积446平方公里,处于海平线以下23米,2012年人口53,864。