FFCMS Wiki

Официальная документация разработчика и администратора

Инструменты пользователя

Инструменты сайта


system:update

Обновление FFCMS

Как и любая другая система, ffcms обладает механизмом обновления и контролем за версиями используемых пакетов. Для обновления FFCMS необходимо использовать следующие инструменты:

  • git - для обновления рабочей директории с базовыми расширенями
  • composer - для обновления базовых пакетов ffcms (ядро, консоль и прочие)

Следует отметить, что ffcms использует нынче популярные средства для контроля за состоянием системы, вместо реализации собственного алгоритма контроля версий.

Связывание дистрибутива с git репозиторием

Данная операция необходима вам только в том случае, если вы установили FFCMS из архива, без помощи composer. Для начала установим, связан ли ваш проект с нашим репозиторием:

git remote -v

если ваша рабочая копия связана с репозиторием то ответ будет таким:

composer        https://github.com/phpffcms/ffcms.git (fetch)
composer        https://github.com/phpffcms/ffcms.git (push)
origin  https://github.com/phpffcms/ffcms.git (fetch)
origin  git@github.com:phpffcms/ffcms.git (push)

Любой другой ответ расценивается как отсутствие связи с удаленным репозиторием. В случае, если вы получили следующий ответ:

fatal: Not a git repository (or any of the parent directories): .git

то вам необходимо инициировать git репозиторий в корневой папке:

git init

а теперь - связать вашу копию ffcms с нашим репозиторием:

git remote add origin https://github.com/phpffcms/ffcms.git

С этого момента вы можете запустить обновление базового дистрибутива ffcms до любой ветки, релиза или тега.

Обновление локальной копии через git

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

git fetch origin
# if you want to use release tag information
git fetch origin --tags
# update origin(local) branch to 3.0.0 release tag
git pull origin tags/3.0.0
# or update origin branch to dev-master trunk
git pull origin master

обратите внимание, все «релизы» следуют инструкции о минимальной стабильности как «stable», а ветка dev-master имеет более низкий уровень стабильности - «dev». В случае, если после команды git pull вы получили нечто подобное:

From https://github.com/phpffcms/ffcms
 * branch            master     -> FETCH_HEAD
error: The following untracked working tree files would be overwritten by merge:
        .gitignore
        .htaccess
        README.md
        index.php
Please move or remove them before you can merge.
Aborting

то это говорит вам о том, что произведенные вами локальные изменения в этих файлах конфликтуют с обновленными файлами в новой версии, до которой вы пытаетесь обновиться. В данном случае существует несколько путей по решению данной проблемы - ручное разрешение конфликта, merge рабочих веток или stash измененных файлов. Здесь будет описан самый простой алгоритм - использование git stash для временного «скрытия» ваших локальных изменений в «корзине». Если пояснить кратко - данный механизм временно спрячет все измененные файлы, а после слияния с новой версией мы вернем локальные файлы на место. Итак, выполним:

git stash

после чего, выполнив git stash list мы увидим следующее:

$ git stash list
stash@{0}: WIP on master: 3479356 New gitignore and updated permissions list

Именно в метке [email protected]{0} будут храниться все ваши локальные изменения. Теперь, можно выполнить git pull, а после вернуть все локальные изменения из стеша на место:

git stash apply

Вся цепочка команд выглядит следующим образом:

git status # show status of file diff between remote & origin branches
git stash # add local changes in stash
git pull origin 3.0.0 # update to 3.0.0 tag
git stash apply # return local files back from stash

Обновление пакетов ffcms через composer

Для обновления пакетов, входящих в состав ffcms до актуальных версий необходимо использовать composer. Чтобы запустить обновление необходимо выполнить всего одну команду в корневой директории проекта:

composer update
system/update.txt · Последние изменения: 2017/06/17 11:18 (внешнее изменение)