Краткая инструкция по Fossil
Этот краткий документ объясняет базовые команды Fossil достаточные для работы одного пользователя. Данный документ не описывает совместную работу с другими пользователями, не описывает синхронизацию с удаленным репозиторием, и не описывает разветвления / порождения.
Создать новое хранилище (репозиторий)
правитьfossil new C:\test.repo
Эта команда создаст новый бинарный SQLite файл, содержащий репозиторий (хранилище), то есть: файлы, билеты, вики и т. д. Он может быть расположен в любом месте, но лучше всего держать его за пределами рабочего каталога, где вы будете работать с файлами после того как они были извлечены из репозитория.
Открыть репозиторий
правитьcd C:\Temp\test.fossil fossil open C:\test.repo
Эта команда проведёт последнюю ревизию всех файлов в хранилище, если таковые имеются, в текущей директории. Кроме того, данная команда создаст бинарный файл _FOSSIL_
в котором будут отслеживаються изменения (на отличных от Windows-системах этот файл называется .fslckout
).
Добавить новые файлы
правитьfossil add .
Fossil пометит новые файлы на добавление в хранилище, но реально добавлены в репозиторий они будут после выполнения команды commit
. При использовании точки «.
», fossil добавит все файлы текущей директории рекурсивно, включая все файлы во всех подкаталогах.
Примечание: вот так можно fossil-у сказать игнорировать некоторые расширения:
fossil settings ignore-glob "*.o,*.obj,*.exe" --global
Удалить файлы, которые еще не были закоммичены:
fossil delete myfile.c
или
fossil rm myfile.c
Это команда просто удалит файл myfile.c
из списка файлов, которые были добавлены ранее через команду fossil add
.
Файлы которые были добавлены в репозиторий ранее, тоже можно удалить этими командами. Имена файлов содержащих символы пробела или интернациональные символы следует брать в двойные кавычки. Пример:
fossil rm "Фото моей тёти.jpg"
Проверить текущее состояние
правитьfossil changes
Это команда показывает список изменений, которые будут совершены, когда вы запустите fossil commit
. Это полезная команда для запуска перед коммитом, чтобы проверить все ли в порядке.
Фиксация изменений
правитьЧтобы действительно применить намеченные изменения в репозитории, например: новые файлы помеченные для добавления, извлеченные файлы, которые были отредактированы и должны быть проверены и т. д.
fossil commit -m "Added stuff"
Если имена файлов не введены в командной линии, то все изменения будут зарегистрированы, в противном случае будет проведён commit для перечисленных файлов.
Сравнение двух ревизий файла.
правитьЕсли вы хотите сравнить последнюю версию файла в репозитории c его версией в вашем рабочем каталоге наберите:
fossil gdiff myfile.c
Если вы хотите сравнить две разных ревизии одного файла в репозитории:
fossil finfo myfile
Примечание: обратите внимание на первый хэш UUID фиксации, когда файл был закоммичен.
fossil gdiff --from UUID#1 --to UUID#2 myfile.c
Отменить изменения и вернуться к предыдущей версии
правитьfossil revert myfile.c
Fossil не спрашивает, когда возвращает файл. Он просто напоминает пользователю об отмене команды, на всякий случай.
Закрыть репозиторий
правитьfossil close
Это команда просто удалит файл _FOSSIL_
в корневом каталоге, рабочие файлы в рабочем каталоге останутся без изменений. После этой команды, любое использование команды fossil
вызовет ошибку, так как больше не никаких связей.
Fossil в Windows 7
правитьНе следует помещать fossil.exe
в system32
, так как потом почему-то не работает команда fossil ui
Распространение изменений
правитьЧтобы обновить изменения на удалённом репозитории:
fossil push URL
Чтобы обновить локальный репозиторий из удалённого:
fossil pull URL
Синхронизировать локальный и удалённый репозиторий — аналог двух выполненных команд push
и pull
:
fossil sync URL
Чтоб изменения из удалённых репозитория устанавливались в виде отдельной ветки выполните
fossil update VERSION
Отменить последние изменения до commit
:
fossil undo
Иногда пользователи не хотят делится изменениями в своём репозитории. Для этого нужно запускать:
fossil commit --private
Если вы почистили свою папку с исходниками и удалили кучу файлов, то fossil при commit будет ругаться. Эту проблему можно решить запустив
fossil addremove