Framework foton
Инструмент для профессиональной разработки web приложений

Система 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 и включает домашнюю директорию на выгрузку.
ТимЛид запрашивает выгрузку из рабочей ветки и загружает в свою, сливает в свою ветку и тестирует, затем либо отдает на код ревью либо пушит в основную директорию проекта.

© Copyright 2026 Разработано на Framework Foton
Продукт зарегистрирован в Роспатенте