Работа с новым репозиторием (Mercurial на Bitbucket)

Board index phpBBex 1.x Мастерская

Description: Только готовые решения! Статьи, заметки, моды и другие полезности для phpBBex 1.x и phpBB 3.0.x.
Moderator: Поддержка

Post #1by VEG » 04.07.2014, 21:04

Разработка phpBBex ведётся под управлением системы управления версиями Mercurial. Если вы разберётесь с ним, то получите удобный и быстрый инструмент для обновления вашего форума. Mercurial может сам загружать все самые свежие изменения в phpBBex прямо на ваш хостинг (через SSH), автоматически объединяя (если это возможно) ваши правки со свежим кодом phpBBex. Это намного удобнее, чем самостоятельно загружать все файлы и вручную переносить свои правки на новые версии. Mercurial стоит того, чтобы потратить время на его изучение.

Ранее исходные коды phpBBex находились в репозитории на Google Code. Если вы пользовались старым репозиторием, вам необходимо по этой инструкции перейти на новый репозиторий, который находится на сервисе Bitbucket.

Обратите внимание, что для использования Mercurial на вашем хостинге, он должен быть там установлен. Проверить, установлен ли у вас Mercurial очень просто — нужно подключиться по SSH и ввести команду hg version. Если вы увидите не ошибку, а информацию о версии — значит всё установлено. Иначе обратитесь в техническую поддержку хостинга, чтобы они вам установили Mercurial — как правило, хостеры без проблем соглашаются на это. На некоторых хостингах вы можете установить Mercurial и самостоятельно, но проще всё-таки через тех-поддержку, не зря же вы им деньги платите.

Хостинги, на которых был замечен предустановленный Mercurial:
  • nic.ru (на 201 тарифе)

Рассмотрим работу на вашем локальном компьютере. Для начала работы скачайте и установите подходящую версию TortoiseHg. Работать с Mercurial можно как при помощи GUI, так и при помощи командной строки. Управлять репозиторием значительно проще из командной строки, поэтому здесь будут примеры именно для неё.

Начинаем работать с Mercrurial (пример работы)

1. В Total Commander заходим в каталог, где нужно будет создать каталог с форумом.
2. Запускаем консоль в текущем каталоге (внизу есть поле для ввода команд — пишем cmd и жмём enter).
3. Скачиваем phpBBex v1.7.1 в подкаталог forum командой:
Code: Select all
hg clone -r v1.7.1 https://bitbucket.org/vegalogic/phpbbex forum
4. Закрываем консоль. У нас появился каталог forum с файлами phpBBex версии 1.7.1.
5. Изменяем что-нибудь (например, в шаблоне).
6. В каталоге forum (наш рабочий каталог) запускаем cmd.
7. Скачиваем последние изменения (рабочий каталог не изменится, они закачаются в каталог .hg):
Code: Select all
hg pull
8. Обновляем код в рабочем каталоге до версии 1.8.0 (не указывайте версию вообще, если хотите последнюю нестабильную версию):
Code: Select all
hg update v1.8.0
В результате у вас должен получиться phpBBex версии 1.8.0, но с вашими правками.

Установка репозитория на уже существующий форум и его обновление

1. Возьмите каталог вашего форума и удалите в нём весь ненужный мусор (чем больше левых файлов — тем больше может быть проблем), а также удалите каталог install (или во что вы его переименовали) и файл .hgtags.
2. В Total Commander заходим в любой временный каталог, где будет создан каталог с форумом.
3. Запускаем консоль в текущем каталоге (внизу есть поле для ввода команд — пишем cmd и жмём enter).
4. Скачиваем вашу версию phpBBex (например, v1.7.1 — важно правильно выбрать версию) в подкаталог forum командой:
Code: Select all
hg clone -r v1.7.1 https://bitbucket.org/vegalogic/phpbbex forum
5. В появившийся каталог перенесите все файлы вашего оригинального форума, заменяя оригиналы.
6. В каталоге forum (наш рабочий каталог) запускаем cmd.
7. Скачиваем последние изменения (рабочий каталог не изменится, они закачаются в каталог .hg):
Code: Select all
hg pull
8. Обновляем код в рабочем каталоге до версии 1.8.0 (не указывайте версию вообще, если хотите последнюю нестабильную версию):
Code: Select all
hg update v1.8.0
В результате у вас должен получиться phpBBex версии 1.8.0, но с вашими правками. Всё, теперь ваш форум уже под управлением Mercurial и обновлён. Можете перенести получившийся каталог в нужное место. Не удаляйте подкаталог .hg и файл .hgtags. При необходимости дальнейшего обновления просто выполняйте команды hg pull и hg update v1.8.0 (указывайте нужную версию) в рабочем каталоге. Когда ваш форум под управлением Mercurial — не изменяйте и не удаляйте файлы без надобности (например, не нужно удалять каталог install_forum и styles/prosilver), также не захламляйте рабочий каталог лишними файлами — мусор также может создать вам неприятности.

При обновлении могут возникнуть конфликты, если вы исправляли тот же код, который исправлен и в новой версии phpBBex. Если у вас не слишком много правок по отношению к phpBBex, то вероятность конфликта невелика. С установленным TortoiseHg в случае конфликта выскочит графическое окошко для разрешения конфликта (там будет код оригинала, ваш код, код из нового phpBBex), где вы сможете объединить ваш код и код из нового phpBBex.
Без TortoiseHg команда hg update просто отрапортует, что «n files unresolved» с n больше нуля (читайте что пишут эти команды), а перед этим укажет в каких файлах проблемы. Внутри тех файлов проблемные участки будут помечены знаками <<< (поиском по файлу найдёте), и будет вставлен как ваш (будет подписан local), так и код из нового phpBBex (будет подписан other). Вы должны объединить этот участок и сохранить.

Если у вас на хостинге при конфликтах открывается vimdiff, но вы хотите разрешать конфликты, например, в Notepad++ (подключившись удалённо), можете в файле ~/.hgrc прописать:
Code: Select all
[ui]
merge=internal:merge
После этого у вас все конфликтные места в файлах будут помечаться способом, описанным выше (символами <<< и т.д.). При конфликтах в каких-то файлах система будет предупреждать вас таким образом:
Code: Select all
merging language/ru/help_rules.php incomplete! (edit conflicts, then use 'hg resolve --mark')
После того, как вы разрешите все перечисленные таким образом конфликты, выполните команду hg resolve --mark, чтобы Mercurial знал, что вы разрешили все конфликты.

Чтобы лучше разобраться с Mercurial, рекомендуем серию статей о Mercurial для новичков: Hg Init. Скорее всего, когда вы начнёте пользоваться Mercurial, не будете понимать, как вы жили без него раньше :)

Замечания касательно репозитория phpBBex

1. В репозитории каталог install называется install_forum. Это сделано для того, чтобы вы могли иметь рабочий форум и беспрепятственно обновлять из репозитория инсталляционные файлы. Для установки чистого phpBBex переименуйте install_forum в install. После установки переименуйте этот каталог обратно в install_forum.
2. В репозитории вы найдёте файлы стиля subsilver2. Это не рабочий стиль. Не устанавливайте его в админке. Удалять эти файлы также не стоит — в будущих версиях phpBBex, возможно, subsilver2 станет вторым поддерживаемым стилем. Они понадобятся для корректного обновления файлов.
3. Не стоит удалять какие-то файлы из стандартного репозитория только потому, что они вам не нравятся (например, каталог docs). Это может вызвать определённые трудности при обновлении. Хотя на самом деле любые удалённые файлы можно легко вернуть командой hg revert :)
4. Все файлы, которые напрямую не относятся к скриптам (дампы, бэкапы, ваши временные файлы, архивы модов и т.д.), необходимо хранить в подкаталоге work — этот каталог игнорируется системой контроля версий.
5. Учтите, что Mercurial обновляет только код. При изменениях в базе вы должны самостоятельно обновить свою копию. Если вы пользуетесь стабильными версиями, достаточно при переходе на очередную стабильную версию выполнить SQL код из инструкции по обновлению. Если же вы обновляетесь и до промежуточных версий, вы должны отслеживать изменения в схеме базы самостоятельно. При помощи Hg Workbench вы сможете посмотреть все изменения в файле ./install_forum/phpbbex.sql — новые инструкции из этого файла и необходимо выполнять.

Полезные команды для получения различий в коде между версиями

Получение изменений в стиле между версиями 1.7.1 и 1.8.0:
Code: Select all
hg diff -r v1.7.1 -r v1.8.0 ./styles/prosilver/ > prosilver.diff
Получение изменений в стиле между версией 1.8.0 и последней в репозитории:
Code: Select all
hg diff -r v1.8.0 ./styles/prosilver/ > prosilver.diff
Получение изменений в русскоязычных языковых файлах между версиями 1.7.1 и 1.8.0:
Code: Select all
hg diff -r v1.7.1 -r v1.8.0 ./language/ru/ > langru.diff
Получение изменений в русскоязычных языковых файлах между версией 1.8.0 и последней в репозитории:
Code: Select all
hg diff -r v1.8.0 ./language/ru/ > langru.diff

Все эти команды выводят данные в diff файле унифицированного формата.
Подробное описание унифицированного формата diff
Унифицированный формат вывода начинается с двухстрочного заголовка, который выглядит так:
--- FROM-FILE FROM-FILE-MODIFICATION-TIME
+++ TO-FILE TO-FILE-MODIFICATION-TIME


Потом следует один или несколько ханков различий; каждый ханк показывает одно место, где файлы различаются. Унифицированный формат ханка выглядит так:
@@ FROM-FILE-RANGE TO-FILE-RANGE @@
LINE-FROM-EITHER-FILE
LINE-FROM-EITHER-FILE...


Строки общие для обоих файлов начинаются с символа пробела. Различающиеся строки имеют один из следующих символов-индикаторов в левой колонке:
+ — в этом месте строка была прибавлена к первому файлу.
- — в этом месте строка была удалена из первого файла.
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1608
With us: 4 yaers 11 months


Post #21by gaborik » 08.07.2014, 22:01

Ребят есть кто кроме VEG и Sumanai который смогли обновиться этим способом? Кому не сложно подробную инструкцию написать по обновлению чтобы все поняли?
gaborik
Новичок
Reputation: 2
With us: 4 yaers 1 month

Post #22by Sumanai » 08.07.2014, 22:13

gaborik wrote:Ребят есть кто кроме VEG и Sumanai

Я не обновлял :biggrin: У меня вообще форума нет, кроме тестового, да и там 1.7.1.
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Avatar
Reputation: 1518
With us: 4 yaers 2 months

Post #23by rbooze » 08.07.2014, 23:51

gaborik wrote:Кому не сложно подробную инструкцию написать по обновлению чтобы все поняли?

Я делал для предыдущей версии. Здесь на форуме есть. Надо пару значений поменять только.
rbooze
Гуру
Avatar
Reputation: 96
With us: 3 yaers 7 months

Post #24by Boloto » 14.07.2014, 20:02

Будьте добры уточните инструкцию.
У меня установлен "Версия phpBBex: 1.7.1"
ОС - CentOS
Я вносил некоторые косметические изменения в код. Сейчас решил установить Mercurial для удобного обновления.
Успешно установил на CentOS Mercurial и TortoiseHG

Code: Select all
# hg version
Mercurial Distributed SCM (version 3.0.2+5-92666a869ea4)

Code: Select all
#thg version
TortoiseHg Dialogs (version 3.0.2+153-9ff2ef0f9295), Mercurial (version 3.0.2+5-92666a869ea4)

Мой рабочий форум сейчас находится в каталоге /var/www/data/www/forum
Какая дальше последовательность действий? В каком именно каталоге мне необходимо выполнить:
Code: Select all
hg clone https://bitbucket.org/vegalogic/phpbbex forum
И далее по инструкции?
Boloto
Новичок
Reputation: 0
With us: 3 yaers 6 months

Post #25by VEG » 14.07.2014, 21:22

Boloto wrote:Какая дальше последовательность действий? В каком именно каталоге мне необходимо выполнить:
В любом, вам всё равно понадобятся только каталог .hg и файл .hgtags из появившегося каталога. И да, если вы хотите обновиться с версии 1.7.1, вы должны сначала делать клон именно этой версии:
Code: Select all
hg clone -r v1.7.1 https://bitbucket.org/vegalogic/phpbbex forum
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1608
With us: 4 yaers 11 months

Post #26by Boloto » 14.07.2014, 21:27

VEG wrote:И да, если вы хотите обновиться с версии 1.7.1, вы должны сначала делать клон именно этой версии:
спасибо огромное. Я по этой Вашей инструкции тут /viewtopic.php?p=13223#p13223 уже сделал.
Все заработало. Mercurial РУЛИТ! :clap: :clap:
Boloto
Новичок
Reputation: 0
With us: 3 yaers 6 months

Post #27by VEG » 14.07.2014, 21:43

В первый пост добавил инструкцию под заголовком «Установка репозитория на уже существующий форум и его обновление». Сверьтесь с ней на всякий случай.

Added after 2 minutes 56 seconds:
Свою инструкцию я не проверял, если я что забыл и у вас возникли проблемы — пишите, поясним в инструкции :)
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1608
With us: 4 yaers 11 months

Post #28by VEG » 15.07.2014, 15:02

Если у вас на хостинге при конфликтах открывается vimdiff, но вы хотите разрешать конфликты, например, в Notepad++ (подключившись удалённо), можете в файле ~/.hgrc прописать:
Code: Select all
[ui]
merge=internal:merge
После этого у вас все конфликтные места в файлах будут помечаться способом, описанным выше (символами <<< и т.д.). При конфликтах в каких-то файлах система будет предупреждать вас таким образом:
Code: Select all
merging language/ru/help_rules.php incomplete! (edit conflicts, then use 'hg resolve --mark')
После того, как вы разрешите все перечисленные таким образом конфликты, выполните команду hg resolve --mark, чтобы Mercurial знал, что вы разрешили все конфликты.
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1608
With us: 4 yaers 11 months

Post #29by vbnm » 15.07.2014, 23:27

А как можно рабочий каталог сделать на поддомене?
Сам форум сейчас стои на поддомене, сам домен занимает сайт.
Естесно, хочется, чтобы не было путаницы и рабочий каталог для форума оказался вместе с каталогом форума?

на хосте выглядит так:

/ МОЙСайт / public_html / forum


Речь идет о живом хостинге онлайн, а не о локальном, тут уж тотл командерем не обойдешься. Он ток по ФТП протоколу может к серверу подключится.
Я использую для подключения по SSH - PuTTY.
Last edited by vbnm on 15.07.2014, 23:36, edited 1 time in total.
vbnm
Гуру
Reputation: 77
With us: 4 yaers

Post #30by VEG » 15.07.2014, 23:28

После того, как рабочий каталог с репозиторием создан, его можно переместить куда угодно — он никак не будет привязан к тому пути, где будет создан.
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1608
With us: 4 yaers 11 months

Post #31by vbnm » 15.07.2014, 23:37

VEG wrote:После того, как рабочий каталог с репозиторием создан, его можно переместить куда угодно — он никак не будет привязан к тому пути, где будет создан.
и Маркуро потом его найдет, если я его перемещу из главного каталога с сайтом, в подкаталог с форумом?
То есь с домена перенесу на поддомен?

Added after 3 minutes 26 seconds:
VEG, чесно грю, мало что понял из первого поста, пока не наткнулся вот на это: http://sampawno.ru/viewtopic.php?f=55&t=4590&sid=e04b9b4302a148992752540c45d41367
Там ваш почитатель с картинками описаль))

Added after 5 minutes 7 seconds:
VEG, Почему вы не используете скажем камтази студио для записи на видео ?
время занимае меньше, чем написание руководства для пользователя, а окат намного больше.
:smile:

Added after 51 minute:
VEG wrote:Хостинги, на которых был замечен предустановленный Mercurial:
nic.ru

Есть на timeweb.ru , как выяснилось, если не пашет то можно обратится в поддержку.
vbnm
Гуру
Reputation: 77
With us: 4 yaers

Post #32by Sumanai » 16.07.2014, 15:14

vbnm wrote:а окат намного больше.

По моему меньше. Проще пять строчек написать, чем видео писать, и уж тем более его смотреть. Из видео строчку не скопируешь :smile:
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Avatar
Reputation: 1518
With us: 4 yaers 2 months

Post #33by vbnm » 16.07.2014, 18:22

Sumanai wrote:Проще пять строчек написать, чем видео писать, и уж тем более его смотреть.
а потом еще 505 строчек, чтобы пояснить первые пять)))
Sumanai wrote:Из видео строчку не скопируешь
итаг у чела развивается память на теги, иль код, когда он все пишет своими ручками, а не занимается варезом.
vbnm
Гуру
Reputation: 77
With us: 4 yaers

Post #34by Sumanai » 16.07.2014, 19:38

vbnm wrote:а не занимается варезом.

Копирование примеров- ну никак не варез.
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Avatar
Reputation: 1518
With us: 4 yaers 2 months

Post #35by vbnm » 16.07.2014, 20:25

Sumanai wrote:Копирование примеров- ну никак не варез.
Ну енто бабка на-двое сказаля, все начинается именно с ентого))) :smile:
vbnm
Гуру
Reputation: 77
With us: 4 yaers

Post #36by HD321kbps » 21.07.2014, 00:11

интересно почему выбрали не github? там Mercurial нет?
HD321kbps M
Гуру
Avatar
Age: 26
Location: Армянск
Reputation: 322
With us: 4 yaers

Post #37by VEG » 21.07.2014, 14:33

HD321kbps, угу. Вообще я планирую сделать там в будущем зеркало репозитория через hg-git. Оно даже какое-то время там было (без анонсов), но я его пока что убрал.
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1608
With us: 4 yaers 11 months

Post #38by hobot-bobot » 22.07.2014, 15:40

Обновил форум за 2 секунды. :dance: Mercrurial рулит! :clap:
ОАО "РЖД" - Редко Живу Дома
hobot-bobot M
Бывалый
Avatar
Location: Череповец
Reputation: 23
With us: 3 yaers 11 months

Post #39by hobot-bobot » 24.07.2014, 20:00

Собираюсь провести модификацию форума, добавлю несколько модов, после обновления до v1.8.0 остался локальный репозиторий. Как правильно провести модификацию, чтоб в последствии без проблем обновляться? Модифицировать файлы в локальном репозитории? Какие команды использовать?
ОАО "РЖД" - Редко Живу Дома
hobot-bobot M
Бывалый
Avatar
Location: Череповец
Reputation: 23
With us: 3 yaers 11 months

Post #40by VEG » 24.07.2014, 22:25

hobot-bobot, просто модифицируйте файлы в рабочем каталоге репозитория, после чего загружайте их на сервер.
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1608
With us: 4 yaers 11 months

PreviousNext

Forum name: Мастерская
Description: Только готовые решения! Статьи, заметки, моды и другие полезности для phpBBex 1.x и phpBB 3.0.x.

Quick reply


Enter the code exactly as it appears. All letters are case insensitive.
Confirmation code
:hi: :smile: :wink: :twisted: :sad: :evil: :smoke: :eh: :eek: :fie: :silenced: :razz: :oops: :help: :spy: :insane: :biggrin: :toothless: :ill: :nervious: :weirdface: :pray: :clap: :think: :boxing: :cyclop: :rambo: :zombie: :cry: View more smilies

   

Return to Мастерская