跳转到内容

了解 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
华夏公益教科书