Работа с репозиторием (Mercurial на Google Code)

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

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

Post #1by VEG » 22.04.2012, 18:11

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

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

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

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

Создать каталог forum с локальной копией репозитория phpBBex:
Code: Select all
hg clone https://code.google.com/p/phpbbex/ forum
Загрузить обновления в ваш локальный репозиторий (выполнять в каталоге с форумом):
Code: Select all
hg pull
Объединить все ваши правки с изменениями из последней версии phpBBex в репозитории (выполнять в каталоге с форумом):
Code: Select all
hg update
Для обновления до конкретной стабильной версии команда выглядит так:
Code: Select all
hg update v1.3.0

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

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

Пример работы

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

Замечания касательно репозитория 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.5.3 и 1.6.0:
Code: Select all
hg diff -r v1.5.3 -r v1.6.0 ./styles/prosilver/ > prosilver.diff
Получение изменений в стиле между версией 1.6.0 и последней в репозитории:
Code: Select all
hg diff -r v1.6.0 ./styles/prosilver/ > prosilver.diff
Получение изменений в русскоязычных языковых файлах между версиями 1.5.3 и 1.6.0:
Code: Select all
hg diff -r v1.5.3 -r v1.6.0 ./language/ru/ > langru.diff
Получение изменений в русскоязычных языковых файлах между версией 1.6.0 и последней в репозитории:
Code: Select all
hg diff -r v1.6.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: 1573
With us: 5 years 1 month

Post #2by JoteRuso » 26.04.2012, 18:22

Ребят, если кто-нибудь понял, как работает эта система - объясните на пальцах. :help:

У меня нет никаких проблем, чтобы получать все обновления с репозитория сборки на свой комп (как через командную строку, так и через программу TortoiseHg). Но как мне протолкнуть их (эти самые обновления) на свой сайт через эту же программу?
Перечитал кучу статей. В том числе и указанную выше. Но это всё для тех, кто вносит изменения, то есть, для разработчиков.
Везде подробно расписано, как отслеживать изменения, но нигде не нашёл примера, как эти сами изменения, полученные из одного места, перенести в другое место?
То есть, как заставить работать схему:
"Репозиторий" ==> Локальная папка на компе ==> Сайт с форумом.
???
VEG wrote:Mercurial может сам загружать все самые свежие изменения в phpBBex прямо на ваш хостинг, автоматически объединяя (если это возможно) ваши правки со свежим кодом phpBBex.
Вот именно это мне и нужно.
Справка самой программы меня совсем не вдохновила (там всё на английском)...
Если меня кто-нить научит, КАК это делать - обещаю потом сделать подробный "мануал" с картинками по работе с этой прогой (для таких же, как я) :cyclop:
JoteRuso M
Гуру
Avatar
Location: Москва, Россия
Reputation: 534
With us: 5 years 1 month

Post #3by Heroin » 26.04.2012, 18:54

надо будет поковырять на досуге
ЁмоЁВарКутаГин
Heroin M
Гуру
Avatar
Age: 30
Location: syzran
Reputation: 39
With us: 5 years 1 month

Post #4by VEG » 26.04.2012, 21:00

Для этого Mercurial должен быть установлен на хостинге. Если хостинг hc.ru или nic.ru — там Mercurial доступен по умолчанию. На других хостингах нужно смотреть. Обычно если его нет, то по просьбе техническая поддержка установит его вам на хостинг.
Есть два варианта работы:
1. Менее правильный (но проще, годится для небольших проектов)
Вы обходитесь без репозитория на своём компьютере. Подключаетесь по SSH к вашему серверу, обозначенными выше командами клонируете репозиторий, редактируете файлы сразу на сервере, обновляете опять через SSH и т.д. Чтобы удобно редактировать файлы, можно воспользоваться возможностью Notepad++ редактировать файлы напрямую на сервере через FTP или SSH (SFTP). То есть то, что вы сейчас делаете на локалке, можно делать сразу на хостинге через SSH. Все обновления ведутся в текущей рабочей директории, поэтому ваши изменения не фиксируются в репозитории на сервере, они просто объединяются с кодом из phpBBex.
2. Более правильный (и более сложный, годится для больших проектов)
В этом способе у вас должен быть репозиторий, где ведётся разработка проекта (на локальном компьютере). Здесь вы должны научиться делать следующие вещи: hg branch (для создания своей ветки в личном репозитории, как ветка gallery в репозитории phpBBex), hg pull (для загрузки изменений из репозитория phpBBex), hg push (для проталкивания в репозиторий на вашем сервере), hg commit (для фиксации изменений, которые вы хотите отправить на ваш сервер), hg merge (для объединения вашего кода с кодом phpBBex), hg add, hg remove, hg addremove (добавление и удаление отслеживания файлов).
Подключаетесь к вашему серверу по SSH, заходите в каталог, куда вы будете проталкивать обновлённые скрипты. Далее вводите команду:
Code: Select all
hg init
Она создаст пустой репозиторий в этом каталоге, после чего вы сможете проталкивать в него необходимые вам данные.
Чтобы протолкнуть закоммиченные изменения из локального репозитория в репозиторий на сервере, нужно в локальном репозитории выполнить команду вида:
Code: Select all
hg push ssh://username@yourhost.ru//var/www/path/
Так что если хотите использовать более продвинутый способ, вам придётся немножко изучить некоторые инструменты для разработчиков:
1. Создание собственной ветки (отдельной от default, которая чистый phpBBex)
2. Коммит (фиксация) ваших изменений в вашей ветке
3. Мерж (объединение) вашей ветки с веткой default (чистый phpBBex) и последующий коммит результата
4. Проталкивание через SSH всех изменений на сервер в интернете
Если всё сделаете правильно, то после проталкивания в репозиторий на сервере всех необходимых необходимо просто зайти в каталог куда вы протолкнули свои изменения по SSH и выполнить там команду hg update для обновления всех файлов до состояния в репозитории. Главное не забыть выбрать верную ветку (так же, как вы выбирали ветку галереи). Ещё стоит обратить внимание на файл .hgignore, и не забывать в него включать маски файлов, которые Mercurial должен игнорировать.

Я поверхностно описал, общее направление движения. Читать стороннюю документацию всё равно придётся. Вживую я всё это за час на примерах объясняю (уже не раз объяснял). А писать текстом без живого примера тяжело и долго... Да и воспринимать без примеров тоже непросто. Сам когда-то учился этому в интернете, понимаю. Действительно, не хватает такой статьи для начинающих. Так что если у вас всё получится, и вы напишете понятную статью — будет очень хорошо! :)
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 1 month

Post #5by JoteRuso » 26.04.2012, 23:16

Понятно... ((( Шансов у меня, видимо, никаких. :weirdface:
Ну что ж, буду всё обновлять время от времени, взяв на вооружение Ваши рекомендации по переходу с версии 1.1.0 на v.1.2.0.
Без Меркуриала.
Правда, останутся непонятки с обновлением галереи... но это уже совсем в другую тему.

В любом случае - спасибо за ответ.
JoteRuso M
Гуру
Avatar
Location: Москва, Россия
Reputation: 534
With us: 5 years 1 month

Post #6by VEG » 26.04.2012, 23:26

JoteRuso, да на самом деле там всё просто и логично (если разобраться), зря вы сразу сдались. И да, почему вы не хотите всё это делать сразу на хостинге? Вы же умеете на локалке из командной строки всё это делать. На хостинге всё точно так же. Или у вас очень серьёзные модификации?
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 1 month

Post #7by JoteRuso » 27.04.2012, 01:30

VEG wrote:Или у вас очень серьёзные модификации?
Да какие там, нафиг, модификации... Только автомод поставил (но, видимо, скоро его снесу за ненадобностью и бесполезностью), и галерея. Плюс 2 бб-кода (спойлер и видео с ютуба). Вот, собственно, и все мои серьёзные модификации.
Мне ведь от форума-то многого и не надо. Я уже опробовал и сборку с порталом, чатом, радио и прочими фенечками - да, это всё прикольно, но часто бесполезно или малофункционально. Поэтому с Вашей сборки и не ухожу.
Установить Меркуриал на сервер я пытался - ничего не вышло. Я об этом писАл на phpBB Guru. Лишь потратил деньги на изменение тарифа с подключением услуги SSH...
Но не жалею (в результате этого апгрейда заметно увеличилась скорость отклика сервера, да и объём хостинга вырос раз в 8, кажется).
VEG wrote:зря вы сразу сдались.
Сразу? ))) Я бы так не говорил. В общей сложности я потратил, наверное, пару суток, выискивая по инету все статьи и руководства сначала по Меркуриалу, потом уже по TortoiseHg. В том числе и видео-туториалы смотрел... Но это я сам виноват - подумал, что освоить эту программу будет не так сложно. И что нет крайней необходимости иметь установленный Меркуриал непосредственно на сервере. Главное - найти нормальное руководство! :biggrin: Но, честно говоря - не ожидал, что не будет никакой возможности синхронизировать локальную папку форума на компе с папкой форума на сервере. :eh:
Всё дело в том, что таким как я пользователям абсолютно не нужны все эти возможности по контролю изменений. Мы всё равно этим пользоваться никогда не будем. Нам нужна лишь удобная возможность обновления. И всё. Мы - это те самые полные нубы в php, html и css... И мы не претендуем на 99% функций этой программы. Лишь на 1 её процент - обновление форума за 60 секунд. )))
Но в данном случае для меня овчинка выделки не стОит. Мне, всё же, будет проще производить обновления путём замены старых файлов новыми, с последующим восстановлением нужных бб-кодов в админке. Даже если я потрачу на это полчаса или час - это будет заметно быстрее, чем тратить недели на изучение инструментов, нужных лишь разработчикам.

Просто мы с Вами смотрим на это разными глазами.
Вы - с точки зрения профессионального разработчика.
Я - с точки зрения простого пользователя, очень и очень далёкого от того, что для Вас стало уже простым и понятным.

Уверен, что кому-то эта программа действительно сильно облегчит жизнь, давая возможность играть с модификацией файлов, без опасений от последствий необдуманного сохранения изменений.
Тут я всеми руками буду только "ЗА"! :smile:
JoteRuso M
Гуру
Avatar
Location: Москва, Россия
Reputation: 534
With us: 5 years 1 month

Post #8by VEG » 27.04.2012, 08:14

JoteRuso wrote:Да какие там, нафиг, модификации...
В таком случае можно смело всё делать на хостинге.
JoteRuso wrote:Установить Меркуриал на сервер я пытался - ничего не вышло.
А что говорит техническая поддержка? Это же их работа, устанавливать такие штуки.
JoteRuso wrote:Но, честно говоря - не ожидал, что не будет никакой возможности синхронизировать локальную папку форума на компе с папкой форума на сервере.
Но тем не менее просто переливку файлов с локального каталога на хостинг тоже можно автоматизировать, просто для этого есть другой софт. Поищите по поводу rsync. Я сам этим не занимаюсь, но знаю, что некоторые так делают. Там есть недостатки — синхронизироваться будет вообще всё, даже картинки и т.д. Но видимо можно будет задать маски для игнорируемых файлов, как в Mercurial.
SSH в любом случае нужный инструмент. Без него хостинг — не хостинг. Через SSH можно использовать нормальные клиенты БД (типа MySQL Query Browser), например, а не этот ненавистный phpMyAdmin.
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 1 month

Post #9by JoteRuso » 27.04.2012, 17:57

Решил не останавливаться и пойти до конца. :rambo:
VEG wrote:А что говорит техническая поддержка? Это же их работа, устанавливать такие штуки.
Напряг немного техподдержку просьбой установить мне Меркуриал. В ответ получил:
Здравствуйте.
На виртуальном хостинге установка программ клиентом и по заказу клиента не возможна.
Изменение конфигурации сервера на виртуальном хостинге так же не возможно.
Это возможно только на выделенных серверах.
Так вот почему я не смог установить эту прогу сам! :twisted:
Заказывать выделенный сервер? :spy:
Минимально приличный VDS (VDS2 - Процессор 960 Mhz / Оперативная память 512 Mb / Объем диска 32 Gb) у них стОит около 170 баксов в год.
Деньги, вобщем-то, не гигантские. Можно себе позволить.
Буду думать... :think:
Взвешивать все "за" и "против".
JoteRuso M
Гуру
Avatar
Location: Москва, Россия
Reputation: 534
With us: 5 years 1 month

Post #10by VEG » 28.04.2012, 00:29

JoteRuso, Они просто лентяи у вас какие-то, или хотят денег срубить ни на чём. Я же привёл пример: на хостингах nic.ru и hc.ru в моём случае Mercurial был предустановлен изначально (хотя я не просил и в тарифах не указано). На других хостингах с SSH по просьбе хостер обычно устанавливал этот пакет. Сам я на nic.ru на 201 тарифе сижу. Смысла только из-за Mercurial брать VDS не вижу.

Напишите название хостинга. Будем составлять доску почёта и доску позора по поддержке Mercurial :)
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 1 month

Post #11by JoteRuso » 28.04.2012, 01:10

VEG wrote:Смысла только из-за Mercurial брать VDS не вижу.
Я тоже так решил. Буду всё обновлять вручную.
VEG wrote:Напишите название хостинга.
Siteko.ru )))
Но по всем остальным параметрам (цена/скорость/объём диска) он оставляет далеко позади всех своих конкурентов.
Поэтому я на нём и остановился. :wink:
Не сочтите за рекламу. Просто делюсь результатами недельного просеивания всех хостеров.
Но про Mercurial я тогда даже не слышал, да и в описаниях тарифов он ни у кого не присутствовал.
JoteRuso M
Гуру
Avatar
Location: Москва, Россия
Reputation: 534
With us: 5 years 1 month

Post #12by VEG » 28.04.2012, 11:23

JoteRuso, выглядит как хостинг небольшой компании, по идее можно было бы попробовать договориться. Я бы попробовал товарищу из тех-поддержки объяснить, что такое Mercurial и для чего он нужен, привести примеры хостингов, которые его предоставляют, и объяснить, что нагрузку на сервер это никак не может повысить, поскольку это служебная команда вроде unzip — полезна для обслуживания сайта, но никак не влияет на его работу. Я как-то на одном дешёвом хостинге уговорил админов собрать и установить для меня oggenc, чтобы я смог сделать конвертер MP3 в Ogg Vorbis прямо на сайте. Сам не умел, хотя технически я мог бы сделать это через SSH самостоятельно, но не так глобально — только для своего сайта.
Возможно у вас получится установить Mercurial самостоятельно. Проверьте, есть ли у вас Python. По SSH запустите команду python, и вы должны увидеть похожее:
Code: Select all
[veg@web47 ~]$ python
Python 2.6.2 (r262:71600, Oct 12 2009, 16:13:38)
[GCC 3.4.6 [FreeBSD] 20060305] on freebsd6
Type "help", "copyright", "credits" or "license" for more information.
>>> exit();
Вот есть статья по самостоятельной установке Mercurial на виртуальный хостинг.
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 1 month

Post #13by JoteRuso » 28.04.2012, 11:33

VEG wrote:Проверьте, есть ли у вас Python. По SSH запустите команду python, и вы должны увидеть похожее:
Да, Питон там есть. Щас почитаю статью.
JoteRuso M
Гуру
Avatar
Location: Москва, Россия
Reputation: 534
With us: 5 years 1 month

Post #14by VEG » 28.04.2012, 12:09

JoteRuso, Там только веб-сервер устанавливать не нужно. Вам достаточно чтобы команда hg начала работать.
И ещё версию Mercurial можно посвежее взять (там по ссылке старая версия).
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 1 month

Post #15by JoteRuso » 28.04.2012, 16:02

Не получается... Видимо, где-то я что-то не догоняю.

Если будет минутка-другая, давайте попробуем разобраться вместе.
А я со своей стороны сделаю всё возможное, чтобы Вы поняли, о чём идёт речь и в чём проблемы.
С сайта Mercurial я скачал версию 2.1.2. (вроде как последняя).

Итак, что мы имеем на сервере в начале?

1) Рис.1 - Корневая папка. Выше неё уже не прыгнешь.
Image

2) Рис.2 - Директория "www"
Image

3) Рис.3 - Директория с содержимым сайта (форума).
Image

Сначала проверяем, установлен ли на хостинге питончик.
Image
Видим, что установлен. Радуемся и приступаем к выполнению инструкции:

Unpack the Mercurial source tarball on your local system.
Create a temporary directory on your web server and transfer the extracted Mercurial source tree to that directory. You can do so via SSH or FTP.
Я делаю проще - копирую скачанный сжатый архив с Mercurial на сервер и там его распаковываю.
Кстати, первый вопрос: Где иименно должна находиться папка с распакованным меркуриалом? Я поместил её в рис.2.

SSH into the server (if you did not so already) and create a top-level directory named “python”. This is going to hold all the Python modules you would like to use, but which are not currently installed on the server’s root Python distribution.
Выше только корневая папка (рис.1). Там и создаю пустую папку "python".

Далее уже через SSH.
Change to the Mercurial source directory and build the module in pure Python mode (instructions adopted from Mercurial Wiki) :
Code: Select all
python setup.py --pure build_py -c -d . build_ext -i build_mo --force
Перехожу в папку с распакованным Меркуриал, выполняю команду. Всё запускается, идёт процесс установки (около 2 секунд). Всё ок.

Likewise, install the module. Here, it is essential to enter the correct prefix path, as you want an alternate installation following the prefix scheme, not a standard installation. Please specify the path to your “python” directory, which you created in step 3 (in my case this is “../../python”):
Code: Select all
python setup.py --pure install --prefix ../../python --force
Вот тут опять непонятки: в их случае это "../../python"
А в моём случае что должно быть?
Как бы то ни было, ввожу то, что рекомендуют (что делаю - не понимаю, но следую инструкции). Процесс запускается и опять идёт установка чего-то там около секунды. Всё типа ок ))))

If everything went well setup.py has installed the Mercurial module files to python/lib/python2.4/site-packages and the hg binary to python/bin.
Угу... Почти. Модули установились. Но! Не в ту папку, что я создавал в корневой директории. Всё указанное содержимое оказалось в папке с Меркуриалом, в отдельной папке с названием "pithon"! Да-да. Через "i", а не через "y" :spy: Удалил её. Повторил процесс - увы, в результате имею идентичный результат. :sad:
То есть, что-то уже пошло не так....

In order to get the hg binary running via SSH you have to export your custom PYTHONPATH so Python knows where to look for the hg modules. Via SSH go to your home directory on the web host and create a .bash_profile file as follows:
Code: Select all
cd ~
touch .bash_profile
Open the file in a text editor and add the following line to it (adjust the path so that it fits your configuration):
Code: Select all
export PYTHONPATH=/is/htdocs/wpXXXXX_XXX/python/lib/python2.4/site-packages
In order to make hg accessible from any directory within the shell, add the following line (adjust path corresponding to your environment again):
Code: Select all
export PATH=/is/htdocs/wpXXXXX_XXX/python/bin:$PATH
Для очистки совести и чистоты эксперимента выполняю всё указанное. Файл создаётся. Открываю его, вставляю обе строки, сохраняю, закрываю.

Logout and login again via SSH. Type hg. If you get the Mercurial Distribution SCM help screen you now have finished installation and are ready to go for setting up Mercurial web access.
Отключаюсь. Подключаюсь снова. Ввожу команду.
Увы:
Image

Что не так? :cry: :cry: :cry:
JoteRuso M
Гуру
Avatar
Location: Москва, Россия
Reputation: 534
With us: 5 years 1 month

Post #16by VEG » 29.04.2012, 01:32

JoteRuso, если честно, я сам такую операцию не проделывал, поэтому сильно вряд ли помогу. :sad: Могу только заметить насчёт самого последнего — судя по скриншоту у вас оболочка не bash, а настройки (.bash_profile) для bash.
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 1 month

Post #17by JoteRuso » 29.04.2012, 02:05

Ну лана... Я всё равно не понимаю, что это за bash и с чем его едят...
Во всяком случае, я со своей стороны сделал всё, что мог.
JoteRuso M
Гуру
Avatar
Location: Москва, Россия
Reputation: 534
With us: 5 years 1 month

Post #18by VEG » 29.04.2012, 11:46

JoteRuso, bash — это оболочка, которая принимает от вас команды и выполняет их. Под Linux их много всяких, у каждой свои фишки.
Ну хотя бы обновление на локалке получается, уже неплохо. А там глядишь с опытом придёт озарение, и получится всё сделать на хостинге. Или у техподдержки хостинга совесть проснётся, и он наконец сделает свою работу :)
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 1 month

Post #19by JoteRuso » 07.05.2012, 23:05

VEG, нужна Ваша консультация.

Как Вы знаете, у меня Меркуриал стоит лишь на компе (теперь уже в виде программы TortoiseHG). На сервере его нет и не предвидится ((( Ну да ладно.

Так вот.
Правильно ли будет пользоваться следующей схемой обновления:

1)Обновляю из репозитория папку forum (там уже есть папка hg., которая фиксирует все изменения)
2) Удаляю все файлы из папки forum (кроме папки hg.)
3) Копирую с сервера все файлы установленного форума, вставляю их в папку forum
4) Программа TortoiseHG фиксирует обнаруженные изменения в файлах
5) Склеиваю файлы, в которых есть изменения, с файлами из репозитория
6) Копирую все файлы из папки forum и заливаю их на сервер поверх тех файлов, что там есть.

Такая схема в принципе работоспособна?
JoteRuso M
Гуру
Avatar
Location: Москва, Россия
Reputation: 534
With us: 5 years 1 month

Post #20by VEG » 07.05.2012, 23:46

JoteRuso wrote:там уже есть папка hg., которая фиксирует все изменения
Там хранятся только зафиксированные (hg commit) изменения. Если вы ничего не коммитили, то после удаления вы сможете восстановить только оригинальные файлы phpBBex. Если вы это и имели в виду, то подобная схема будет работать только при условии, что файлы на сервере строго соответствуют текущей версии рабочего каталога у вас на локалке. То есть когда вы выгрузили файлы на сервер, в рабочем каталоге до возврата этих файлов обратно нельзя делать никаких операций типа hg update.
Чтобы не ошибиться, лучше всего просто держать всегда рабочую версию файлов на локалке, и править их тоже только на локалке, а на сервер выливать по мере надобности их копии. Тогда не придётся думать, соответствует ли у вас текущая ревизия файлов на локалке ревизии файлов на сервере.
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 1 month

Next

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