合并 (版本控制)
在版本控制中,合并(),也稱為整合(),是指当一个文件在多个独立分支中被修改后如何合并这些修改成为一个文件的操作。 合并可以是版本控制软件自动执行,但如果有冲突,就需要考虑手工合并。 合并算法 合并算法是一个热点研究领域,有多种不同的算法。 三路合并 三路合并(three-way merge),首先考虑对文件A、文件B以及它们的共同祖先文件C做差异分析。对于文件中的每节(sector),如果上述三个文件中有两个文件该节的内容一致,那么抛…
共 14 篇文章
在版本控制中,合并(),也稱為整合(),是指当一个文件在多个独立分支中被修改后如何合并这些修改成为一个文件的操作。 合并可以是版本控制软件自动执行,但如果有冲突,就需要考虑手工合并。 合并算法 合并算法是一个热点研究领域,有多种不同的算法。 三路合并 三路合并(three-way merge),首先考虑对文件A、文件B以及它们的共同祖先文件C做差异分析。对于文件中的每节(sector),如果上述三个文件中有两个文件该节的内容一致,那么抛…
在版本控制系統中,Monorepo(“mono”意為“單一”,“repo”是“存儲庫”的縮寫)是一種软件開發策略,其中多個项目的代码存儲在同一個代码仓库里面。 這種做法至少可以回溯到 2000 年代初期,當時這種做法通常被稱為共享代码库。 Google, Airbnb, 以及Twitter 所有這些公司都採用非常大的单一仓库(Monorepo),採用不同的策略來擴充具有大量代码和日常改版的建置系統和版本控制工具。 一個相關的概念是龐大应…
編輯衝突(edit conflict)是指多人在編輯同一個電腦檔案時會有的問題,無法在不破壞各自編輯資料下,將所有編輯結果存成一個檔案的問題。若多人將同一個共享的檔案分別複製,在複本檔案中編輯,之後又都想用複本檔案存回原來檔案,就會有編輯衝突的問題。最後只會留下最後存檔者編輯的內容。 解決方式 以下是一些解決編輯衝突,或是預防編輯衝突的方式。 人工處理,由編輯者決定要保留哪個版本,並且人工的在目前版本中整合其內容。 儲存每一個編輯檔案的…
版本控制()是维护工程藍圖的标准做法,其能够追蹤工程藍图從诞生一直到定案的過程。此外,版本控制也是一種軟體工程技巧,藉此能在軟體開發的過程中,確保由不同人所編輯的同一程式檔案都得到同步。 概述 软件工程师透過文档控制(),能記錄任何工程專案內各個模組的改動歷程,並為每次改動編上序號。 一种简单的版本控制形式如下:赋给图的初版一个版本等级“A”。当做了第一次改变后,版本等级改为“B”,以此类推。最簡單的例子是,最初的版本指定為“1”,當做…
在程式設計中,分散式版本控制( 或 ,又譯為分布式版本控制),又稱去中心化版本控制(),是一種版本控制的方式,它允許軟體開發者可以共同參與一個軟體開發專案,但是不必在相同的網路系統下工作。其作法是在每個開發者電腦中複製一份完整的代码库以及完整歷史。因此在無法連接網路時,仍可以進行軟體的分支及合并,可以加速大部份的作業,增加此情形可以進行的工作,而且系統的代码库可以在多家電腦上備份,不需靠單一位置的備份。而多個位置的代码库再透過其他機制來…
發布管理或作發行管理、釋出管理、上線管理,是透過不同階段和環境以管理、規劃、排程、和管制軟體構建的流程; 包括測試和部署軟體版本。 背景 發布管理是軟體工程領域一個相對較新但迅速發展的學科。隨著軟體系統、軟體開發過程、和資源變得越來越分散,它們總是變得更加專業化和複雜化。此外,軟體產品(尤其是網路應用程式)通常處於開發、測試、和發布的持續循環中,常常在日益複雜、不斷發展的平台上運行。這樣的系統需要專門的資源來監督開發、測試、部署、和支援…
Gitea ()是一个使用Git的软件开发和版本控制平台,其具有缺陷跟踪管理系统、Wiki和代码审查等功能。Gitea 支持自托管建立实例,同时也提供一个免费的公共实例 。它原本是Gogs软件的分支项目,使用Go语言编写, 因此可以在任何Go支持的平台上部署, 包括Linux、macOS和Windows。 Gitea项目在Open Collective上筹集资金。 历史 Gitea 由 Lunny Xiao 建立,他也是自托管Git服务…
GitLab是由GitLab公司开发的、基于Git的集成软件开发平台。另外,GitLab且具有wiki以及在线编辑、issue跟踪功能、CI/CD等功能。在2018年,GitLab被認為是一家部份是烏克蘭的独角兽企业。 CI/CD GitLab CI/CD是GitLab内置的一款工具,用于通过持续方法论(continuous methodologies)的软件开发。 该持续方法论包含三个部分:持续集成、持续交付、持续部署。 持续集成(C…
軟件版本編號訂定是指為軟件設定版本號碼的方式。通常,版本號碼會以數字訂定,但亦有不同的方式。 小數 這是最常用的一種訂定方式。大部份軟件的版號都是用此方法去計算。一個以此方式來訂定編號的例子如:2.4。通常訂定規則為: major.minor(.build) major是最大的版本編號,minor為其次,某些軟件可能再細分作build,為更小的版本編號。 通常,正式版的版本編號為「1.0」。1.0以下的版本(0.x)為測試版,代表仍有一…
在软件开发中,代码库(或)是用于构建特定软件系统、应用程序或软件组件一组的源代码。 通常,代码库仅包含人工编写的源代码文件;代码库通常不包含由工具生成的源代码文件或二进制文件(目标文件),因为它们可以从人工编写的源代码构建生成,没有必要加入代码库。但是,代码库通常包括配置文件和属性文件,因为这些文件是构建时所必不可少的数据。 代码库通常存储在版本控制系统中的仓库()中。对于较小的项目,可以将其保存为一组简单的文件(甚至连Linux内核都…
在版本控制與软件配置管理中,分支()是由某個版本的程式碼或軟體物件中建立複製版本,在分支出來後的兩個版本,可以獨立進行修改。 分支會形成樹狀結構,也被稱為,或。原始的版本,稱為父分支(parent branch)或是上游分支(upstream branch)。分支出來的複本,稱為子分支(Child branches)。作為最源頭,沒有父分支的分支,稱為主幹(trunk)或主線(mainline)。 在分散式版本控制系統(例如)中,分支和…
仓库()亦称-{zh-hans:储存库;zh-tw:倉庫;}-、资源库、资源库、版本库、代码库、存放库等,在版本控制系统中是指在磁盘存储上的数据结构,其中包含了文件、目录以及元数据。仓库可能为分布式(如Git)或集中式(如Subversion)。分布式的仓库可以复制到每个用户的本地;集中式的仓库只能保存在服务器上。 仓库中包含的元数据一般有: 仓库中文件变化的历史记录。 提交对象的集合。 提交对象的引用,称为heads。 相關條目 代码…
步進等級、步進(英語:;),有時直接以Revision的直譯為版本號,在中央處理器架構核心或其它積體電路中指的是它們的電路設計版本編號。 通常來說,當積體電路研發製造商(如英特爾或超微半導體),發現: 原來電路設計的邏輯錯誤或設計有改進空間時,會進行除錯或改進其設計、進行功能性修復,以增進積體電路運作時的穩定性和效能、降低功耗與發熱量 改進掩模設計以增加某一類積體電路晶片的產量 有新的積體電路製作工藝/製程可以有效改進電晶體電氣效能 小…
软件开发中的主幹(trunk),是指在版本控制系統中一個沒有命名的分支。主幹多半是專案開發過程中軟體的基礎,若開發者只在主幹上進行開發,主幹上會有專案最新版本的軟體版本,不過不一定是最穩定的軟體版本。另一種開發方式是由主幹上的某版本衍生出分支,在確認分支穩定,可以正常工作之後,再將分支合併到主幹。依開發模式以及交付政策的不同,主幹中可能會是最穩定的軟體、也可能是最不穩定的軟體,或是介於兩者之間的版本。 其他和主幹類似的詞語有baseli…