Глава 3. Рабочая копия

Этот перевод может быть устаревшим. Для того, чтобы помочь с переводом, пожалуйста, обратитесь к Сервер переводов FreeBSD.

Рабочая копия — это копия дерева документации репозитория FreeBSD, загруженная на локальный компьютер. Изменения вносятся в локальную рабочую копию, тестируются, а затем отправляются в виде патчей для включения в основной репозиторий.

Полная копия дерева документации может занимать 550 мегабайт дискового пространства. Рекомендуется выделить не менее гигабайта, чтобы было место для временных файлов и тестовых версий в различных выходных форматах.

Git используется для управления файлами документации FreeBSD. Он устанавливается через devel/git, который также имеет облегчённую версию под названием git-lite:

# pkg install git-lite

3.1. Документация и Справочник

Документация FreeBSD — это не только книги и статьи. Справочник (man) для всех команд и конфигурационных файлов также являются частью документации и входят в сферу ответственности 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

Получение исходного кода для работы со справочником (man) выполняется аналогично:

% 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. Создание Diff

После завершения редактирования файла или группы файлов, различия между локальной рабочей копией и версией в репозитории FreeBSD должны быть собраны в один файл для отправки. Эти diff-файлы создаются путём перенаправления вывода команды git diff в файл:

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

Присвойте файлу осмысленное имя, отражающее его содержимое. В приведенном примере указаны исправления орфографии для всего дерева документации.

Если файл с различиями должен быть отправлен через веб-интерфейс "Сообщить о проблеме в FreeBSD", добавьте расширение .txt, чтобы дать простой и прямолинейной веб-форме понять, что содержимое представляет собой обычный текст.

Будьте осторожны: git diff включает все изменения в текущем каталоге и его подкаталогах. Если в рабочей копии есть файлы с правками, которые ещё не готовы к отправке, укажите список только тех файлов, которые нужно включить:

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

3.7. Ссылки Git

Эти примеры демонстрируют базовое использование Git. Более подробная информация доступна в Книге по Git и документации Git.


Изменено: 20 сентября 2025 г. by Vladlen Popolitov