理解 Darcs/更多補丁理論
外觀
< 理解 Darcs
在 darcs 1.0.6 之前,更改也被稱為補丁,但我們認為這太令人困惑了。
在繼續之前,我們想明確一點:在 darcs 的日常操作中,我們談論拉取和推送補丁,以及記錄和恢復更改。這只是一個使用者介面約定。從補丁理論的角度來看,所有這些都只是補丁。您拉取和推送的補丁是命名補丁,這些補丁包含一個名稱和一個未命名補丁列表。所以實際上,當您從其他人的儲存庫中拉取一個命名補丁時,您正在拉取一個可能包含許多原始補丁的序列。這對合並意味著什麼?
在上一章中,我們看到處理簡單的、無衝突的合併主要包括製作一個反向補丁並將該反向補丁與另一方的補丁進行交換。現在讓我們探索一個稍微複雜一點的場景,我們必須針對一個無衝突的補丁序列進行合併。我們使用 darcs hackathon 購物清單的變體來完成此操作。像往常一樣,Arjan 和 Ganesh 正在一起編寫購物清單。他們都從一個包含以下內容的公共檔案 shplst 開始
apples bananas cookies
像以前一樣,Arjan 在 shplst 的第 3 行插入 "beer" 並記錄了更改。然後他決定在列表的末尾新增另一個專案,這一次是 "pasta",並記錄了他的第二次更改。在 darcs 表示法中,Arjan 已經將我們從一個初始上下文 ,帶到了一個新的上下文 ,其中包含啤酒,然後又到了另一個上下文 ,其中也包含義大利麵。
FIXME:將進行詳細說明:我想展示當 Ganesh 拉取兩個補丁時會發生什麼