Как можно использовать ископаемое

Настройка удаленного репозитория

Raspberry Pi использовался для размещения удаленного репозитория, доступ к которому осуществлялся через локальную сеть.

Операционная система, работающая на Raspberry Pi, — это Ubuntu Server 20.04 LTS, ранее настроенная для доступа к локальной сети и с установленным openssh-сервером, чтобы к нему мог получить доступ другой компьютер.

ssh на сервер

Для доступа к серверу персональный компьютер должен находиться в той же сети, что и сервер.

Мой персональный компьютер — Macbook, поэтому мне просто нужно открыть терминал без установки стороннего программного обеспечения и ssh на сервер:

$ ssh <user>@<ip_address_of_server>

На сервере Ubuntu, чтобы узнать IP-адрес, просто введите следующую команду:

$ hostname -i

Инсталляция окаменелостей

После входа на сервер необходимо установить Fossil. Выбранный способ установки был через следующую команду:

$ sudo apt install fossil

Чтобы подтвердить, что установка прошла успешно, мы можем увидеть используемую версию окаменелости.

$ fossil version
This is fossil version 2.12.1

Создание нового проекта

В домашнем каталоге пользователя была создана новая папка с именем «fossil-vs-git» для размещения репозитория. Текущий каталог был перемещен в эту новую папку для запуска репозитория.

$ mkdir fossil-vs-git
$ cd fossil-vs-git/

Итак, давайте запустим репозиторий Fossil!

$ fossil init <repository_name>

Имя используемого репозитория было: ископаемый-vs-git.fossil.

Таким образом, использовалась команда:

$ fossil init fossil-vs-git.fossil

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

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

Затем мы должны проверить локальное дерево:

$ fossil open <repository_name>

Если каталог не пуст, необходимо использовать принудительный флаг:

$ fossil open <repository_name> --force

Имейте в виду, что отображается в терминале, нам понадобится путь к репозиторию.

Чтобы обслуживать этот репозиторий, нам нужно настроить пользовательский интерфейс, чтобы запустить веб-сервер:

$ fossil serve <repository_path>
Listening for HTTP requests on TCP port 8080

Затем в веб-браузере мы переходим к IP-адресу сервера плюс порт, в данном случае 8080, например:

  • ‹ip_адрес›:8080

Зарегистрируйтесь с учетными данными, показанными ранее, и установите для имени проекта значение: Fossil-vs-Git, затем нажмите «Применить изменения».

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

Перейдите на вкладку «Администратор», выберите «Пользователи», затем нажмите «Добавить». Затем мы должны заполнить запрошенные поля и для этой цели сделать нового пользователя администратором.

Чтобы закончить то, что нам нужно сделать на сервере, мы вернемся к терминалу и запустим задание в фоновом режиме:

Нажмите: ctrl + z, чтобы остановить, а затем запустите его в фоновом режиме.

$ bg

Чтобы избежать этого шага, при запуске сервера вы можете добавить «&» в конце, чтобы он работал в фоновом режиме.

$ fossil serve <repository_path> &

Теперь пришло время поработать на персональном компьютере!

Установите репозиторий Fossil и клонируйте его на локальный компьютер.

Установка окаменелостей

Менеджер пакетов Homebrew использовался для установки Fossil в операционной системе MacOs.

$ brew install fossil

Папка была создана для размещения проекта на локальном компьютере. Затем репозиторий был клонирован в эту папку.

Для доступа к удаленному репозиторию использовался протокол HTTP с помощью следующей команды:

$ fossil clone http://<username>@<ip_address>:<port> <repository-filename>

В таком случае:

$ fossil clone http://<username>@<ip_address>:8080 fossil-vs-git.fossil

Введите пароль, установленный ранее, и клонирование пройдет успешно.

Теперь нам нужно поместить копию исходного проекта в папку репозитория, чтобы выполнить реализацию с помощью Fossil.

Отправьте базовый проект на удаленный

Открыть локальное дерево:

$ fossil open fossil-vs-git.fossil -f

Теперь добавьте все файлы для фиксации:

$ fossil add .

Сбросить добавленные файлы

$ fossil add --reset

Игнорирование файлов — ignore-glob

В корне проекта каталог с именем: .fossil-settings

$ mkdir .fossil-settings
$ cd .fossil-settings

Внутри новой папки создайте файл с именем ignore-glob и в каждой строке поместите glob, который мы хотим игнорировать:

$ nano ignore-glob

Вставьте шарики, например:

*/target/*

Теперь игнорируемые файлы не будут добавляться

совершение

Чтобы зафиксировать, введите следующую команду для фиксации:

$ fossil commit

Откроется текстовый редактор по умолчанию, чтобы ввести сообщение фиксации.

Здесь мы можем увидеть продемонстрированную одну из возможностей Fossil, так как автосинхронизация по умолчанию активна, при совершении коммита автоматически подтягивается удалённый репозиторий (для загрузки возможных изменений в удалёнку), также автоматически пушит на удалёнку содержимое коммита .

Автосинхронизация, получение, отправка, синхронизация и обновление

Автосинхронизацию можно отключить:

$ fossil settings autosync off

Если да, то чтобы поместить изменения в удаленный репозиторий, необходимо тянуть и пушить:

$ fossil pull <URL>
$ fossil push <URL>

ИЛИ: оба одновременно с:

$ fossil sync <URL>

Если вы опустите аргумент URL, ископаемое будет использовать тот сервер, с которым вы последний раз синхронизировались.

Когда вы вносите изменения от других, они попадают в ваш репозиторий, а не в ваше локальное дерево. Чтобы внести изменения в локальное дерево, используйте update:

$ fossil update <branch_name_OR_tag_OR_abbreviation_of_check-in>

Fossil автоматически извлекается при запуске обновления и автоматически отправляется после фиксации.

Автономный режим

При попытке сделать фиксацию без подключения к Интернету/серверу Fossil заметит, что соединения нет, и спросит, хотите ли вы продолжить. Если вы решите продолжить, изменения будут сохранены локально. Позже, когда соединение восстановится, просто выполните следующую команду для синхронизации с сервером:

$ fossil sync

Автономная поддержка существует и для веб-интерфейса. Использование команды fossil server на персональном компьютере позволяет открывать и редактировать то, что необходимо (например, добавлять билеты), даже в автономном режиме, а затем синхронизировать с удаленным.

Билеты

Fossil позволяет использовать систему продажи билетов, предоставляемую веб-интерфейсом. Нет необходимости использовать сторонние приложения.

Перейдите в раздел Билеты и добавьте билеты.

Теги

Тегировать можно разными способами, например через коммит, с флагом —tag, и у каждой регистрации может быть несколько тегов, просто повторив флаг:

$ fossil commit --tag <tag_name>

Вы также можете добавить теги к существующим проверкам:

$ fossil tag add <tag_name> <check-in>

Создание новой ветки

В ископаемом мы можем создавать ветки следующим образом:

$ fossil branch new <branch_name> <check-in_that_the_branch_splits_off_from>

Текущей ветке предшествует *

Для переключения между ветвями:

$ fossil update <branch_name>

Объединение веток

Чтобы объединить две ветки, мы должны переключиться на ветку, в которую мы хотим объединиться:

$ fossil update <branch_name>

Затем объедините:

$ fossil merge <branch_to_be_incorporated>

И, наконец, зафиксируйте слияние:

$ fossil commit

Доступ к репозиторию

Вы можете найти копию репозитория здесь!

Если у вас есть ископаемое на вашем локальном компьютере, просто скопируйте репозиторий и внутри каталога, в котором есть копия, используйте эту команду:

$ fossil open <repository_name>

В таком случае:

$ fossil open devops.fossil

Последние мысли

Как было показано, Fossil — это распределенная система управления версиями, способная конкурировать с Git и предлагающая множество функций, которых нет у Git.

Из обнаруженных больших недостатков отсутствие использования со стороны сообщества разработчиков означает, что не так много информации находится, хотя найденная информация является качественной. Количество сервисов, способных разместить репозиторий Fossil, также невелико, только http://chiselapp.com и http://fossilrepos.sourceforge.net имеют такую ​​возможность.

Предыдущий:

Fossil SCM — Система контроля версий

Ископаемое против Git

Ссылки: