跳轉到內容

瞭解 Darcs/入門

來自華夏公益教科書,開放書籍,開放世界

Darcs 倉庫的結構

[編輯 | 編輯原始碼]

如果您大致瞭解 Darcs 命令的工作原理,那麼理解如何使用它們將會容易得多。我們並沒有要求您學習有關補丁對易代數的知識(至少現在還沒有),但有一件事您應該至少熟悉,那就是 Darcs 倉庫的結構。

Anatomy of a darcs repository
Darcs 倉庫的結構

該圖的含義如下:左側黃色部分代表您。這就是 Darcs 所謂的 **工作目錄**。另一方面,灰色部分是神秘的 _darcs 目錄的一部分,如果您之前使用過 Darcs,您應該對此有所瞭解。這可以進一步細分。**原始樹**(中間)與您的工作目錄完全相同,只是它只代表最後儲存的狀態。它對於 Darcs 的操作來說並不重要,但它可以使程式更高效,並且對於理解程式的工作原理可能會有幫助。最後,最右邊的部分是 **補丁** 集合。補丁使 Darcs 成為...嗯...Darcs。Darcs 以補丁的形式思考。幾乎每個 Darcs 操作都以某種方式涉及(Darcs)在幕後對一些補丁進行操作。熱情的 Darcs 使用者發現這在許多方面使生活更輕鬆。例如,接受程式碼的補丁變得非常自然 - 您只需讓 Darcs 應用它們,它們就會生效。但在我們開始之前,讓我們先處理一些基本命令。

基本命令

[編輯 | 編輯原始碼]

假設您有一個包含一些檔案的目錄。當您執行 darcs init 初始化倉庫時,您將獲得一個空的 Darcs 倉庫。您的工作目錄可能包含檔案,但 Darcs 還不知道它們。

After a darcs init - an empty repository
Darcs init 後 - 空倉庫

darcs add 告訴 Darcs 跟蹤僅存在於您的工作目錄中的檔案或目錄。它建立一個或新增到一個特殊的臨時補丁中,我們稱之為 **待處理補丁**(將用藍色表示)。請注意,它不會影響您的原始樹!這樣做是為了,我們尚未儲存您的工作(這就是原始樹的作用)。我們只是告訴 Darcs,我們可能在將來會儲存它。

during darcs add
在 darcs add 期間

請注意,待處理補丁與所有其他補丁不同。它實際上是您尚未轉換為真正的 Darcs 補丁的(一些)內容的表示。

darcs whatsnew 命令將工作目錄與原始樹(理論上,與補丁集)進行比較,並顯示兩者之間的差異。如果待處理補丁中存在任何內容,它還會顯示該內容。

Darcs whatsnew
Darcs whatsnew

darcs record 命令是您儲存工作的方式。它將您選擇的工作目錄中的更改複製到原始樹,更重要的是,建立一個表示這些更改的新補丁。更改也可以來自待處理補丁,這些更改也將傳播到原始樹中。

during darcs record
在 darcs record 期間
下一頁: 進行更改
首頁: 瞭解 Darcs
華夏公益教科書