sha3.link

Как вносить изменения?
Login

Web-страницы этого сайта генерируются с помощью системы распределённого управления версиями "Fossil". Это решение принято осознано.
Ниже представлено очень сильно сокращённое описание Fossil. Настоятельно рекомендуется ознакомиться с оригинальной документацией.


Репозиторий можно мыслить как своего рода архивный файл (стандартное расширение: .fossil). В отличии от обычного архива репозиторий поддерживает версионирование хранимой в нём информации. Можно точно идентифицировать как версии отдельных файлов, так и версию всего содержимого, зафиксированного определённым пользователем в определённое время.

В свою очередь, fossil (или fossil.exe) - это программа, которая обеспечивает разнообразные операции с репозиторием; в том числе, просмотр его содержимого через web-интерфейс.

Для того чтобы вносить изменения необходимо установить на свой компьютер Fossil и освоить несколько простых команд, выполняемых в терминале (в командной строке):

1. Каталог, хранящий репозитории (a.k.a. музей)

mkdir ~/museum

Эта команда создаст каталог (папку) museum в домашней папке пользователя. Имя и расположение можно выбрать произвольно. Будем называть этот каталог музеем. В этом каталоге можно хранить несколько репозиториев.

2. Клонирование репозитория

fossil clone https://USERNAME@live.sha3.link/reponame ~/museum/reponame.fossil

Эта команда скопирует инересующий Вас репозиторий из Интернета в музей, в файл reponame.fossil

Если репозиторий является общедоступным, то USERNAME@ можно опустить. В противном случае, для клонирования потребуется ввести пароль, соответствующий имени Вашей учётной записи (логину).

3. Рабочий каталог (a.k.a. checkout или local source tree)

Рабочий каталог предназначен для работы с какой-нибудь одной версией содержимого репозитория. Если эта версия уже зафиксирована в репозитории, то её называют check-in, а рабочий каталог с соответствующим содержимым - checkout.

Для создания рабочего каталога сначала создаётся обычная папка, например вот такой командой:

mkdir ~/reponame-workdir

А затем эта папка делается текущей, например вот так:

cd ~/reponame-workdir

После чего в эту папку записывается определённая версия данных из хранящегося в музее репозитория:

fossil open ~/museum/reponame.fossil

Имя и расположение рабочего каталога можно выбрать произвольно.
Единовременно может быть несколько активных рабочих каталогов.

Рабочий каталог "помнит" о том к какому репозиторию музея он относится, а также из какого именно check-in он получен. В любой момент можно получить эту информацию с помощью команды fossil status; а с помощью команд fossil changes или fossil diff можно узнать о том, чем сожержимое рабочего каталога отличается от базовой (зафиксированной в репозитории) версии.

4. Синхронизация локального репозитория с сервером

Локальный репозиторий (тот, который в музее) может быть синхронизирован со своей репликой на сервере командами fossil pull, fossil push или fossil sync. Важно помнить, что эти команды не меняют содержимое рабочего каталога.

5. Внесение изменений

Перед тем как вносить изменения, полезно запросить с сервера все свежие правки (которые могли быть сделаны другими участниками проекта) и изучить их хронологию с помощью команды fossil timeline или аналогичной web-страницы.
После этого может оказаться, что рабочий каталог "ссылается" на check-in, который уже не является актуальным. Во многих случаях полезно сразу исправить эту ситуацию с помощью команд fossil checkout или fossil update.

Файлы в рабочем каталоге редактируются обычным текстовым редактором. Среди простых и хорошо зарекомендовавших себя можно отметить:

Если какие-то файлы/каталоги добавляются или удаляются, то следует оповестить об этом командами fossil add, fossil rm или fossil addremove.

Если какие-то файлы/каталоги нужно переименовать, то следует воспользоваться командой fossil mv

Из рабочего каталога можно открыть web-представление соответствующего локального репозитория командой fossil ui. При этом, кроме уже зафиксированных версий можно посмотреть и web-представление ещё не зафиксированного состояния рабочего каталога.

6. Фиксирование изменений в локальном репозитории

Для того чтобы зафиксировать сделанные изменения используется команда

fossil commit -m 'Краткое описание изменений'

Если commit успешен, то будет показан его уникальный идентификатор.

Обратите внимение: зафиксированные в локальном репозитории изменения становятся видимыми другим участникам только после их отправки на сервер. Однако если локальный репозиторий используется в режиме autosync (включен по умолчанию), то синхронизация будет происходить автоматически при каждой фиксации изменений в локальном репозитории (при каждой команде fossil commit).

Затруднения могут возникнуть в том случае, когда после того как Вы начали свою редактуру, какой-нибудь другой участник зафиксировал свои собственные изменения на серверной реплике репозитория. Из этой (нечасто возникающей) ситуации есть несколько выходов.