Система Git Foton
Framework foton имеет распределенную систему взаимодействия между пользователями, в частности директория .gitf добавлена в gitignore, эта директория содержит директории пользователей с названием по логину пользователя. Внутри директории пользователя распологаются основная директория work для работы в своем пространстве git, а также директория branch содержащая директории веток со своей системой git, это позволяет разрабатывать и тестировать свои изменения команде разработчиков прям на проде никак не влияя на основную разработку. Также есть возможность подключать под каждую ветку свою базу данных и копировать туда данные.
Для этого можно воспользоваться модулем “Версии” либо командной строкой. В модуле “Версии” программисту нужно зайти в мои ветки→настройки пользователя и установить доступы к созданной пустой базе данных, при сохранении текущая база будет импортирована.
В командной строке можно использвать команду: php foton git addConnect `host dbname login pass` - в апострофах указаны аргументы для передачи данных, их не нужно использовать при запросе. Перед применением этой команды необходимо авторизоваться с помощью команды: “php foton git user вашлогин”, а также выбрать ветку, где будет установлено соединение с помощью команды: “php foton git branch вашаветка”.
Общие команды для работы с Git Foton через CLI:
php foton git user demo - переключит на пользователя demo в системе Git Foton, для переключения потребуется пароль
php foton git getuser - выведет логин текущего пользователя
php foton git add branch1 app/view/site - скопирует директорию app/view/site в ветку branch1 и создаст ветку
php foton git copy branch1 branch2 - скопирует ветку branch1 в ветку branch2
php foton git branch - выведет список ваших веток
php foton git branch branch1 - переключится на ветку branch1
php foton git commit - создаст коммит из текущей ветки в work
php foton git work app/view/site - копирует директорию app/view/site в рабочую директорию пользователя work
php foton git del branch1 - удалит ветку branch1
php foton git delwork - очистит рабочую директорию пользователя
php foton git addPull - подготавливает директорию к выгрузке
php foton git init app/view - устанавливает git в директорию пользователя и добавляет туда директорию app/view ( php foton git init - по умолчанию установит директорию app)
php foton git isPull - проверяет готова ли директория к выгрузке
php foton git addConnect host dbname login pass - делает бекап базы и добавляет все данный в новую базу для директории work текущего пользователя
php foton git pull user2 - загружает основную ветку user2 из рабочей директории пользователя user2 в директорию текущего пользователя
php foton git push - выполняет выгрузку из вашего каталога в основную директорию, для выполнения требуются права администратора
php foton git onPull (yes/no) - меняет статус готовности ветки к выгрузке
php foton git commit - загружаем данные из текущей ветки в свою рабочую директорию work
php foton git addFile directory - добавление файла из директории directory в текущей ветке
php foton git addCommit 'commit' - создание коммита в текущей ветке
php foton git exit - выход из системы
Общие методы работы
Создаем пользователя через админку, автоматически создается директория пользователя в директории .gitf. Если нужно создаем пользователю пустую базу и передаем данные к базе и пару логин, пароль.
Важно!!! Пользователю достаточно прав на изменение только своей директории внутри системы gitf, остальные директории можно оставить открытыми только на исполнение и возможно просмотр.
Также необходимо создать отдельного ssh пользователя, если есть необходимость ограничить пользователя командами в командной строке нежелательные команды необходимо добавить в файл /dev/cli.json в json объект в таком формате:
{"логинssh":["foton команда1","foton команда2"]}
К командам foton команда1 и foton команда2 будет закрыт доступ для этого пользователя.
При этом достаточно указазать начало команды, тогда все команды содержащие это значение будут игнорироваться системой.
Далее пользователь авторизуется в админ системе и импортирует базу или делает это через CLI.
Далее пользователь создает ветку и импортрует нужную для работы директорию через CLI. Далее вносит правки, тестирует и комиттит.
Затем переносит изменения в свою рабочую директорию, мержит изменения с основной веткой по имени своего логина в системе Git Foton и включает домашнюю директорию на выгрузку.
ТимЛид запрашивает выгрузку из рабочей ветки и загружает в свою, сливает в свою ветку и тестирует, затем либо отдает на код ревью либо пушит в основную директорию проекта.