第 3 章. 工作副本

工作副本是下载到本地计算机上的 FreeBSD 存储库文档树的副本。对本地工作副本进行更改,进行测试,然后作为补丁提交以提交到主存储库。

文档树的完整副本可能占用 550 兆字节的磁盘空间。留出 1 千兆字节的空间以容纳临时文件和各种输出格式的测试版本。

Git 用于管理 FreeBSD 文档文件。它可以通过安装 devel/git 包获得,该包还具有一个名为 git-lite 的更轻量级的版本。

# pkg install git-lite

3.1. 文档和手册页

FreeBSD 文档不仅仅是书籍和文章。所有命令和配置文件的手册页也属于文档的一部分,也是 FDP 领域的一部分。涉及两个存储库:doc 用于书籍和文章,src 用于操作系统和手册页。要编辑手册页,必须单独检出 src 存储库。

存储库可能包含多个版本的文档和源代码。新的修改几乎总是只对最新版本进行,称为 main

3.2. 选择目录

FreeBSD 文档传统上存储在 /usr/doc/ 中,系统源代码和手册页存储在 /usr/src/ 中。这些目录树是可重定位的,用户可能希望将工作副本放在其他位置,以避免干扰主目录中现有信息。以下示例使用 ~/doc~/src,它们都是用户主目录的子目录。

3.3. 检出副本

从存储库下载工作副本称为克隆,并使用 git clone 完成。此示例克隆了主文档树最新版本 (main) 的副本

% git clone https://git.FreeBSD.org/doc.git ~/doc

检出源代码以处理手册页非常类似

% git clone https://git.FreeBSD.org/src.git ~/src

3.4. 更新工作副本

FreeBSD 存储库中的文档和文件每天都在变化。人们修改文件并频繁提交更改。即使在初始检出后很短时间内,本地工作副本与主 FreeBSD 存储库之间也会存在差异。要使用对主存储库所做的更改更新本地版本,请在包含本地工作副本的目录上使用 git pull

% cd ~/doc
% git pull --ff-only

养成在编辑文档文件之前使用 git pull 的习惯。其他人可能最近编辑了该文件,并且在更新之前,本地工作副本将不包含最新的更改。编辑文件的最新版本比尝试将旧的、编辑过的本地文件与存储库中的新版本合并要容易得多。

3.5. 恢复更改

有时事实证明更改毕竟没有必要,或者作者只想重新开始。可以使用 git restore 将文件“重置”为其未更改的形式。例如,要删除对 _index.adoc 所做的编辑并将其重置为未修改的形式

% git restore _index.adoc

3.6. 制作差异

完成对文件或文件组的编辑后,必须将本地工作副本与 FreeBSD 存储库上的版本之间的差异收集到一个文件中以进行提交。这些diff 文件是通过将 git diff 的输出重定向到文件生成的

% cd ~/doc
% git diff > doc-fix-spelling.diff

为文件提供一个有意义的名称,以识别其内容。以上示例用于对整个文档树进行拼写修复。

如果要使用 Web 的“提交 FreeBSD 问题报告”界面提交 diff 文件,请添加 .txt 扩展名,以便让认真且头脑简单的 Web 表单了解内容是纯文本。

小心:git diff 包含在当前目录和任何子目录中所做的所有更改。如果工作副本中存在尚未准备好提交的编辑文件,请仅提供要包含的文件列表

% cd ~/doc
% git diff disks/_index.adoc printers/_index.adoc > disks-printers.diff

3.7. Git 参考

这些示例显示了 Git 的非常基本用法。更多详细信息可在 Git 书籍Git 文档 中找到。


上次修改于:2024 年 3 月 9 日,由 Danilo G. Baio 修改