Обновление через Git

Обновление через Git

от Виталий Апраксин -
Количество ответов: 6

товарищи, поясните неграмотному, пожалуйста элементарную, скорее всего, вещь

установил moodle через git, маленько поднастроил. Все настройки у меня заключаются в удалении заведомо неиспользуемых блоков, тем, модулей через интерфейс мудл. В самом каталоге moodle добавляю только иконку сайта в formal-white, один формат курса, плагин в редактор (ну и конфиг, конечно).

зная, что потом будет не получаться, проверил git pull - пишет, что все готово.

сейчас пришло обновление.

на git pull пишет такое

т.е. либо записать мои изменения в репозиторий (что ерунда), либо скрыть. Так я понимаю?

Ну хорошо, скрыл. Так он мне после этого всё новое и скачал....

Пришлось вернуть все удаленные темы, модули и т.п. в базу.

Добавленное вручную в каталог moodle осталось (плагин редактора, формат курса).

Ладно, ненужное отключу, а удалять не буду.

Но всё равно не уверен, всё ли нужное скачалось, удалилось ли всё устаревшее (например, модуль перестал быть в следующей версии, так удалился ли его каталог - ну это на будущее) и не удалилось ли чего нужного.

Ну вот и вопрос: правильно-то - как делать?

В доках moodle на всё обновление одна строчка написана "наберите git pull"

В ответ на Виталий Апраксин

Re: Обновление через Git

от Vadim Tabunshchik -
Изображение пользователя Developers

Создаем локальный репозиторий с Moodle 2.6 в каталоге /var/www/moodle

$ cd /var/www/
$ git clone git://git.moodle.org/moodle.git
//получаем репозиторий, автоматом создается каталог moodle
$ cd moodle
$ git branch --track MOODLE_26_STABLE origin/MOODLE_26_STABLE
$ git checkout MOODLE_26_STABLE

Этими командами вы получили репозиторий, создали локальную ветку MOODLE_26_STABLE, перешли в эту ветку

Дальше вносите свои изменения (удаляете что-то, добавляете) и эти изменения нужно "закоммитить", чтобы git их принял. Делаете так:

Заходите в каталог с MOODLE:

$cd /var/www/moodle

Смотрим, что изменилось:

$ git status
# On branch MOODLE_26_STABLE
# Your branch is ahead of 'origin/master' by 6 commits.
#   (use "git push" to publish your local commits)
#
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working
#
#       deleted:    theme/fusion/config.php
#       deleted:    theme/fusion/lang/en/theme_fusion.php
#       deleted:    theme/fusion/layout/frontpage.php
#       deleted:    theme/fusion/layout/general.php
#       deleted:    theme/fusion/lib.php
#       deleted:    theme/fusion/pix/favicon.ico
#       deleted:    theme/fusion/pix/grad.png
#       deleted:    theme/fusion/pix/header-bg-sm.jpg
#       deleted:    theme/fusion/pix/header-bg.jpg
#       deleted:    theme/fusion/pix/header-center-sm.jpg
#       deleted:    theme/fusion/pix/header-center.jpg
#       deleted:    theme/fusion/pix/main-bg.gif
#       deleted:    theme/fusion/pix/menu-top.png
#       deleted:    theme/fusion/pix/screenshot.jpg
#       deleted:    theme/fusion/pix/side-bg.png
#       deleted:    theme/fusion/pix/side-start.png
#       deleted:    theme/fusion/settings.php
#       deleted:    theme/fusion/style/core.css
#       deleted:    theme/fusion/style/editor.css
#       deleted:    theme/fusion/style/menus.css
#       deleted:    theme/fusion/style/pagelayout.css
#       deleted:    theme/fusion/style/settings.css
#       deleted:    theme/fusion/version.php
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       favicon.ico
no changes added to commit (use "git add" and/or "git commit -a")

$git rm -r theme/fusion  //рекурсивно удаляем каталог с темой fusion

$git add favicon.ico       //добавляем иконку favicon.ico

$git commin -m "Delete theme fusion, add favicon" // Коммитим изменения

$ git status                       //Проверяем, что получилось
# On branch MOODLE_26_STABLE
# Your branch is ahead of 'origin/MOODLE_26_STABLE' by 6 commits.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean

дальше получаем изменения из удаленного репозитория под названием origin

$ git fetch origin
remote: Counting objects: 2669, done.
remote: Compressing objects: 100% (365/365), done.
rReceiving objectemote: Total 1769 (delta 1354), reused 1759 (delta 1354)s:  70% (1239/1769), 280.00
Receiving objects:
Receiving objects: 100% (1769/1769), 369.63 KiB | 239.00 KiB/s, done.
Resolving deltas: 100% (1354/1354), completed with 304 local objects.
From git://git.moodle.org/moodle
   12efa52..f05e25d  master     -> origin/master
   686364d..6370d31  MOODLE_25_STABLE -> origin/MOODLE_25_STABLE
   0e088ae..9c1c9d8  MOODLE_26_STABLE -> origin/MOODLE_26_STABLE

После нужно сделать слияние своей ветки с удаленной:

$ git merge origin/MOODLE_26_STABLE

Все команды нужно выполнять, находясь в каталоге с локальной веткой MOODLE_26_STABLE

В доках moodle на всё обновление одна строчка написана "наберите git pull"

Они же не знают, что вы будете делать изменения в каталоге MOODLE, а pull одновременно получает изменения из удал. ветки и делает слияние. Естественно, в вашем случае слияние невозможно, т. к. есть изменения в локальном репозитории.

В ответ на Vadim Tabunshchik

Re: Обновление через Git

от Vadim Tabunshchik -
Изображение пользователя Developers

Сорри, очепятка в одной команде, нужно так:

$ git commit -m …

а не

$ git commin -m

В ответ на Vadim Tabunshchik

Re: Обновление через Git

от Виталий Апраксин -

На этот раз обошелся stash (и на рабочем, дурак, тоже).
Попробую вернуть (на полигоне) и сделать по ЦУ.
А на полупробном через недельку попробую))).
Спасибо Вадим Николаевич!

В ответ на Vadim Tabunshchik

Re: Обновление через Git

от Виталий Апраксин -

Вадим, помогите еще раз, проверьте, пожалуйста:

Удаляем из ветви
git rm -r enrol/self
git rm -r mod/assignment
git rm -r question/type/randomsamatch
git rm -r theme/afterburner
git rm -r theme/anomaly
git rm -r theme/arialist
git rm -r theme/binarius
git rm -r theme/boxxie
git rm -r theme/brick
git rm -r theme/clean
git rm -r theme/formfactor
git rm -r theme/fusion
git rm -r theme/leatherbound
git rm -r theme/magazine
git rm -r theme/nimble
git rm -r theme/nonzero
git rm -r theme/overlay
git rm -r theme/serenity
git rm -r theme/sky_high
git rm -r theme/splash
git rm -r theme/standardold

Добавляем для отслеживания
git add theme/formal_white/pix/favicon.ico
git add admin/tool/editrolesbycap/
git add course/format/onetopic/
git add lib/editor/tinymce/plugins/clozeeditor/
git add mod/attendanceregister/
git add mod/scheduler/
git add theme/moodle2tablet/
git add theme/mymobile/

Записываем изменения в ветвь
git commit -m "all"

 

Показать и удалить прятанные ранее изменения:
git stash list
git stash clear

 

Вот это безрезультатно (у меня ж обновленная уже версия - поэтому?):

получаем изменения из удаленного репозитория под названием origin
git fetch origin

После нужно сделать слияние своей ветки с удаленной:
git merge origin/MOODLE_26_STABLE

 

Проверяем

root@xxxxxx:/xxxxxx/tmp/moodle# git status
# On branch tmp
# Your branch is ahead of 'origin/MOODLE_26_STABLE' by 8 commits.
#
nothing to commit (working directory clean)

 

 

 

В ответ на Виталий Апраксин

Re: Обновление через Git

от Vadim Tabunshchik -
Изображение пользователя Developers

Зачем вы git stash делаете? Я же этого не писал, stash нужен, если вы изменили ветку, но не хотите коммитить (чтобы потом вернуться и доделать/переделать), а нужно срочно перейти в другую ветку и работать там. Тогда вы делаете stash (прячете изменения в первой ветке), чтобы git вас "выпустил" без коммита в другую ветку. Вот тут почитайте.

В нашем случае ветка только одна, поэтому делайте четко по инструкции, после git commit -m "all" проверяте git status, если git пишет "nothing to commit, working directory clean", делаете git fetch origin (или git pull, если уверены, что слияние пройдет без ошибок), затем сливаете, если без ошибок - всё ОК, если выдаст конфликт слияния - нужно "мержить" вручную, редактируя конфликтующие файлы. Но это уже другая история улыбаюсь

ЗЫ: Виталий, где вы clozeeditor взяли? У меня переделанная версия под 2.6, кнопка появляется на панели редактора только на странице добавления вопроса CLOZE, в остальных местах её нет. Выглядит так:
4

В ответ на Vadim Tabunshchik

Re: Обновление через Git

от Виталий Апраксин -

где вы clozeeditor взяли?

вот здесь https://code.google.com/p/moodle-cloze-editor21/downloads/list , а что? правда, для 2.4, но работает и на 2.6

кнопка появляется на панели редактора только на странице добавления вопроса CLOZE

как-то не заморачивался этим...   А зачем он в других-то местах?

добавление пояснения на страницу:

добавление вопроса:

всё одинаковое, вроде.

Зачем вы git stash делаете? Я же этого не писал, stash нужен, если вы изменили ветку, но не хотите коммитить (чтобы потом вернуться и доделать/переделать), 

поначалу так тупо обновил (в первом сообщении писал, вроде). т.е. git stash git pull

дыг, первый раз же(((

еще при следующем обновлении чо-нить станется. Сейчас-то я всё на обновленной версии редактировал...

ну и потом все те скрытые изменения удалил.