Полная официальная версия журнала "Аналитика".
Инструкции по запуску журнала и публикации в сети интернет см. в файле INSTALL.txt
.
Получить журнал и все выпуски аналитики на локальный компьютер:
git clone --recursive https://github.com/rusidea/analitika.git
Обновить журнал и выпуски аналитики:
git submodule update
git pull
Восстановить журнал к исходному виду (в случае удаления каких-либо файлов):
``
Документация:
https://git-scm.com/docs/git-submodule
https://git-scm.com/docs/gitmodules
https://git-scm.com/book/en/v2/Git-Tools-Submodules (see NOTE)
Есть возможность изменить репозиторий выпуска (после git submodule init
):
git config submodule.SUBMODULE_NAME.url PRIVATE_URL
Скачать все выпуски:
git submodule update --init
либо git clone --recursive Git_URL
.
Синхронизировать все выпуски:
git submodule update
Записать локальные изменения на удалённый репозиторий:
cd dokuwiki/data/media/pub/[выпуск]
git checkout master
git pull
git add .
git config user.name "Admin"
git config user.email rusidea.info@yandex.ru
git commit -m "vX.X.X"
git push -u origin master
Удалить выпуск:
git rm --cached dokuwiki/data/media/pub/[выпуск]
rm -rf .git/modules/dokuwiki/data/media/pub/[выпуск]
vim .gitmodules
vim .git/config
git commit -m "Выпуск удалён"
Если необходимо удалить все файлы выпуска локально, то:
rm -rf dokuwiki/data/media/pub/[выпуск]
Если^ редактировать .gitmodules
, то необходимо синхронизировать с .git/config
:
git submodule sync
Создать выпуск:
mkdir dokuwiki/data/media/pub/[выпуск]
cd dokuwiki/data/media/pub/[выпуск]
git init
git remote add origin Git_URL
git add .
git commit -m "Тематический выпуск аналитики"
git push -u origin master
git submodule add Git_URL dokuwiki/data/media/pub/[выпуск]
или
git submodule add ../analitika_[выпуск].git dokuwiki/data/media/pub/[выпуск]
Добавить выпуск:
git submodule add Git_URL dokuwiki/data/media/pub/[выпуск]
или
git submodule add ../analitika_[выпуск].git dokuwiki/data/media/pub/[выпуск]
Редактировать историю изменений в выпусках:
https://git-scm.com/book/be/v2/Git-Tools-Rewriting-History
Опубликовать выпуски
Клонировать репозиторий Git локально без инициализации модулей
Обновить ветку master:
git checkout master
git pull
Установить контактные данные редактора:
git config user.name "Admin"
git config user.email rusidea.info@yandex.ru
Произвести завершающее редактирование:
vim dokuwiki/data/pages/pub.txt
vim dokuwiki/data/pages/index.txt
Добавить отредактированные файлы:
git add dokuwiki/data/pages/pub.txt
git add dokuwiki/data/pages/index.txt
Записать все изменения в один коммит в стандартном виде:
git commit -m "Журнал vX.X.X готов к публикации"
Заблокировать ветку master на запись изменений:
?
Записать изменения ветки master в ветку release:
git checkout release
git branch -vv
git merge --squash master
Записать все изменения в один коммит в стандартном виде:
git commit -m "vX.X.X"
Произвести слияние ветки public с веткой release:
git checkout public
git branch -vv
git merge --squash release
Записать все изменения в один коммит в стандартном виде:
git commit -m 'Полная версия vX.X.X журнала "Аналитика"'
Проверить историю изменений ветки public:
git log --pretty=oneline -5
Произвести слияние ветки release с веткой public:
git checkout release
git branch -vv
git merge public
Произвести слияние ветки master с веткой release:
git checkout master
git branch -vv
git merge release
Опубликовать ветку public в репозитории на github.com:
git checkout public
git remote add github https://github.com/rusidea/analitika.git
git push github public:master
Произвести слияние ветки webserver с веткой release и подготовить к записи на сервер:
git checkout webserver
git branch -vv
git revert 'hash of the last patch commit'
git merge public
git log --pretty=oneline -5
git am webserver.patch
или
vim webserver.patch
git apply --check webserver.patch
git apply webserver.patch
git commit -m "Изменения для публикации на вебсервере"
Файл .htaccess внесён в список игнорируемых, поэтому нужно его создавать отдельно.
Для подготовки файла изменений:
git format-patch master (or any commit) --stdout > webserver.patch
Скачать все выпуски:
git submodule update --init
Записать журнал на веб-сервер:
cd dokuwiki; lftp -c "open -u login analitika.rusidea.info; mirror -c -R -e ./ ./"
Проверить получение журнала и всех выпусков аналитики на локальный компьютер (см. выше).
Полезные ссылки:
https://ariejan.net/2009/10/26/how-to-create-and-apply-a-patch-with-git/
https://git-scm.com/docs/git-format-patch
https://git-scm.com/docs/git-apply
https://git-scm.com/docs/git-am
http://stackoverflow.com/questions/6658313/generate-a-git-patch-for-a-specific-commit
http://stackoverflow.com/questions/4114095/revert-git-repo-to-a-previous-commit
http://stackoverflow.com/questions/927358/how-do-you-undo-the-last-commit
http://stackoverflow.com/questions/5189560/squash-my-last-x-commits-together-using-git
https://help.github.com/articles/pushing-to-a-remote/
Для синхронизации на сайт:
cd dokuwiki; lftp -c "open -u login analitika.rusidea.info; mirror -c -R -e ./ ./"
Для синхронизации с сайта:
cd dokuwiki; lftp -c "open -u login analitika.rusidea.info; mirror -c -e ./ ./"
Возможно стоит посмотреть на инструкции для работы с Git по адресу:
https://www.mediawiki.org/wiki/Download_from_Git/ru
Мы используем аналогичную систему доставки кода.
Перед обновлением всегда читать: https://www.dokuwiki.org/install:upgrade
В плагине SQLite была изменена (commit 35dda729c418a63c884103b837f581187c51246b) переменная config['metadir'] на config['dbdir'], поэтому при обновлении плагина необходимо будет вновь изменить. Такая же переменная была изменена (commit 2f2a6435cc89841c7b65229caf88e02d5ac7a899) в плагине struct в файле dokuwiki/lib/plugins/struct/helper/db.php
.
Обновление встроенных вебсервера и php производить скриптом https://github.com/splitbrain/dokuwiki-stickbuilder
Для этого:
- клонировать репозиторий на linux машину,
- отредактировать файл build.sh (параметр PHP_ZIP со значением на актуальную версию php)
- запустить скрипт ./build.sh
- upx не обязательно устанавливать
- удалить в журнале директорию server
git rm -rf server/; rm -rf server/
5.1. копироватьext/php_sqlite3.dll
intoserver/php/ext/
5.2. добавить вserver/php/php.ini
php_sqli3 extension - копировать out/server в директорию журнала и добавить в Git
git add server/*