[critical] Анонс: полное изменение структуры репозитария packages

9 views
Skip to first unread message

Maxim Miroshnichenko

unread,
May 13, 2011, 5:19:31 PM5/13/11
to wp-pa...@googlegroups.com
Сообщаю заранее, что примерно через 2-3 месяца в корне измениться структура репозитария packages.

На данный момент структура следующая:
svn://svn.webproduction.com.ua/packages/trunk/Engine/
svn://svn.webproduction.com.ua/packages/trunk/Checker/
...

А будет:
svn://svn.webproduction.com.ua/packages/Engine/trunk/
svn://svn.webproduction.com.ua/packages/Engine/tags/
svn://svn.webproduction.com.ua/packages/Engine/branches/
svn://svn.webproduction.com.ua/packages/Checker/trunk/

В общем, я собираюсь поменять структуру на классическую рекомендуемую стратегию svn (пруфлинк: http://www.gnuman.ru/stuff/svn_strateg/#2).

То есть, у каждого пакета будет свой tags, trunk, branches.

Что это изменит для разработчиков:

Плюсы:

1. В корне пакетов будет очень много пакетов. Больше 100. Их уже суммарно почти сотня. Будет из чего выбрать.
2. При выгрузке пакетов разработчику прийдется четко выбирать, какие пакеты ему нужны, а какие нет (то есть, svn externals на каждый пакет отдельно).
3. Вероятнее всего, для некоторых пакетов будут срезы-версии (tags). В частности, для Engine. trunk - всегда самая последняя версия, которая активно разрабатывается и может меняться очень "резко". Разработчик сам сможет решить, какую ветку ему использовать - trunk (с резкими поворотами судьбы) или tags/xxx - которая стабильна и никогда не меняется (историческая версия).
4. svn checkout/update будет выполняться быстрее (так как не нужно будет грузить отдельные пакеты).
5. Общепринятая стратегия использования svn - это меньший порог вхождения для новых разработчиков.

Минусы:
1. Для старых проектов поломаются почти все svn:externals линки. Вам, как разработчику, прийдется указать последнюю ревизию (svn externals -r) или полностью поменять все svn:externals в своих проектах.
2. Не будет переходного периода. Реально, его можно сделать (то есть, можно сделать так, чтобы и старые ссылки на пакеты, и новые ссылки на пакеты работали одновременно), но это очень сильно меня запутает, и я этого делать на данный момент не собираюсь. Поэтому, в один прекрасный die-day прийдется резко принимать новую структуру пакетов.

===================

По поводу версионирования пакетов, в частности, Engine:

Я не сторонник такого понятия как версия, но мне прийдется ее сделать только ради других разработчиков.
Например, я хочу переименовать Engine_Query в Engine_FrontController. На данный момент единственный способ это сделать - это Engine_Query extends Engine_FrontController со всеми вытекающими.

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

Так вот, планируемая стратегия: 1 раз в 3 месяца (будет известна четкая дата), когда Engine/trunk копируется в Engine/tags/version-xxx, после чего из Engine/trunk вычищается весь мусор.

Кому нужно - будет использовать version-xxx, кто готов к новым правилам игры - trunk.

Если кто-то не согласен со схемой-стратегией - пишите, пока я не назначил дату ремейка-чистки (это будет в течении месяца).

===================

P.S.:
С пятницей, 13е ;-)
svn://site.cn.ua/ уже не работает ;-)
Используйте только svn://svn.webproduction.com.ua/

--
С уважением,
Максим Мирошниченко,
студия WebProduction.

www: http://webproduction.com.ua/
email: m...@webproduction.com.ua
office: off...@webproduction.com.ua
tel. 1: +38 (050) 447-95-30
tel. 2: +38 (0462) 61-42-61

Struchkov Dima

unread,
May 13, 2011, 5:54:30 PM5/13/11
to wp-pa...@googlegroups.com

> Если кто-то не согласен со схемой-стратегией - пишите, пока я не назначил дату ремейка-чистки (это будет в течении месяца).
>
> ===================
>
> P.S.:
> С пятницей, 13е ;-)
> svn://site.cn.ua/ уже не работает ;-)
> Используйте только svn://svn.webproduction.com.ua/
>
Макс, пожалуйста, предупреди зарание о дате-Х, что б знать, когда
последняя ночь, что б убрать все без болезненно ))


А сейчас разве нельзя конкретно выбирать те пакеты, что нужны для
данного проэкта?

Пожелание: было бы просто замечательно иметь скрипт-прожку, которая
будет помогать выбирать нужную версию+ нужные пакты для конкретного
своего проэкта. там типа аля - тебе нужно это? - да/нет

Maxim Miroshnichenko

unread,
May 14, 2011, 5:50:37 AM5/14/11
to wp-pa...@googlegroups.com
On 2011-05-14, at 12:54 AM, Struchkov Dima wrote:

> Макс, пожалуйста, предупреди зарание о дате-Х, что б знать, когда последняя ночь, что б убрать все без болезненно ))
Да, это само собой.
Раньше чем через 1 месяц эта дата X не наступит точно :-)
Я пока подготовлю всю документацию и инструкции.

> А сейчас разве нельзя конкретно выбирать те пакеты, что нужны для данного проэкта?
Можно. Но насколько я знаю, сейчас это делают только 2-3 разработчика :-) Остальные полностью выгружают trunk и "радуются" :-)
И это одна из причин, почему я хочу переделать структуру репозитария: большинство разработчиков просто не знают про новые пакеты и не используют их, очень много пакетов в trunk, еще столько-же в branches (например, FieldsAPI, Store, XML, Feed, TagsAPI, CommentsAPI, UsersAPI, BillsAPI, AccountingAPI aka AAPI, ...).

> Пожелание: было бы просто замечательно иметь скрипт-прожку, которая будет помогать выбирать нужную версию+ нужные пакты для конкретного своего проэкта. там типа аля - тебе нужно это? - да/нет

Спасибо! Я уже думал по поводу такого wizard'a. В Zend Framework такой визард есть (bash: zf install packageName), есть в PECL (pecl install ...), вроде был в PEAR (pear install ...)...
Сейчас основной вопрос, как корректнее сделать этот wizard. Есть варианты:
1. веб-клиент, который сам с packages.webproduction.com.ua достанет пакеты и развернет их
2. веб-клиент, который сформирует текст для svn:externals
3. bash (shell) скрипт, который достанет и развернет пакеты
4. bash (shell), который пропишет svn:externals
5. еще примутки для git, hg...
6. любые комбинации всех вариантов :-)
Итого 5! (факториал) вариантов визарда - и пока не особо представляю как лучше его сделать. Кто-то сторонник svn - тому нужны externals, кто-то сторонник git/hg - тому нужно доставать пакеты целиком (либо держать пакеты в git/hg одновременно).

Буду рад выслушать замечания и пожелания :-)

Denis Daniluk

unread,
May 14, 2011, 6:03:23 AM5/14/11
to WebProduction Packages
> Сейчас основной вопрос, как корректнее сделать этот wizard. Есть варианты:
> 1. веб-клиент, который сам с packages.webproduction.com.ua достанет пакеты и развернет их
> 2. веб-клиент, который сформирует текст для svn:externals
> 3. bash (shell) скрипт, который достанет и развернет пакеты
> 4. bash (shell), который пропишет svn:externals
> 5. еще примутки для git, hg...
> 6. любые комбинации всех вариантов :-)
> Итого 5! (факториал) вариантов визарда - и пока не особо представляю как лучше его сделать. Кто-то сторонник svn - тому нужны externals, кто-то сторонник git/hg - тому нужно доставать пакеты целиком (либо держать пакеты в git/hg одновременно).

ИМХО, web-морда - хорошо, но это скорее излишество, чем нужна. В моей
голове возникло такое представление о таком конфигураторе:
1. Он жестко вшит в Engine (или идет отдельным must have пакетом aka
Configurator);
2. Доступные пакеты он вытягивает из репозитория (xml что-ли);
3. Установленные пакеты он тянет из svn:externals.
4. Ему нужна ссылка на момент конфигурации системы.

Это хорошо для новичков, которые даже содержимое директории посмотреть
не могут. Как показывает мой опыт (только мой, чужого нету), то мне
легче через консоль поставить нужный пакет (несколько пакетов) чем-то
типа configurator install package1 package2 package3, чем открывать
конфигуратор и клацать мышью.

Все вышесказанное всего лишь мое ИМХО.

Maxim Miroshnichenko

unread,
May 14, 2011, 8:41:19 AM5/14/11
to wp-pa...@googlegroups.com
На самом деле, проблема в концепции: нужно определить, каким способом "правильнее" всего подключать пакеты:

1й - полной выгрузкой себе в свой репозитарий (так сейчас в pecl, pear, zf, django, ror, ...)
2й - линкованием на репозитарий packages (svn:externals, git/hg subrepository, ...)

и в зависимости от этого, уже определить, как должна работать тулза-инсталлер.

Лично я сторонник 2го способа, поэтому команда wpp install Engine для меня должна дописать в svn:externals пару внешних зависимостей.
А полный список пакетов с описанием "что они делают" будет на http://packages.webproduction.com.ua/

On 2011-05-14, at 1:03 PM, Denis Daniluk wrote:

> ИМХО, web-морда - хорошо, но это скорее излишество, чем нужна. В моей
> голове возникло такое представление о таком конфигураторе:
> 1. Он жестко вшит в Engine (или идет отдельным must have пакетом aka
> Configurator);
> 2. Доступные пакеты он вытягивает из репозитория (xml что-ли);
> 3. Установленные пакеты он тянет из svn:externals.
> 4. Ему нужна ссылка на момент конфигурации системы.
>
> Это хорошо для новичков, которые даже содержимое директории посмотреть
> не могут. Как показывает мой опыт (только мой, чужого нету), то мне
> легче через консоль поставить нужный пакет (несколько пакетов) чем-то
> типа configurator install package1 package2 package3, чем открывать
> конфигуратор и клацать мышью.
>
> Все вышесказанное всего лишь мое ИМХО.

Denis Daniluk

unread,
May 14, 2011, 8:56:42 AM5/14/11
to wp-pa...@googlegroups.com
Макс, насколько я понял, то твоим аргументом в пользу второго способа являются up to date пакеты. Поправь если ошибаюсь.

Со своей колокольни я вижу вариант указать конфигуратору режим работы: первый способ или второй. Первый вариант подходит тем, кто выгружает пакеты, правит их и отправляет в свой репозиторий (кто-то решил fork сделать, мало ли). Второй вариант для таких как мы с тобой - нам просто нужны свежие пакеты.

Maxim Miroshnichenko

unread,
May 14, 2011, 11:25:37 AM5/14/11
to wp-pa...@googlegroups.com
Да, именно up-to-date пакетов. Я всегда сижу на trunkах, иначе не возможно разрабатывать пакеты :-)
Пока-что мне не понятно, сколько времени я сэкономлю, создав такой конфигуратор. Если это 1 минута для проекта, а на создание конфигуратора пойдет 10 часов - то как-бы не особо резонно. Нужно понять все плюсы и минусы, прежде чем начать делать.

On 2011-05-14, at 3:56 PM, Denis Daniluk wrote:

> Макс, насколько я понял, то твоим аргументом в пользу второго способа являются up to date пакеты. Поправь если ошибаюсь.
>
> Со своей колокольни я вижу вариант указать конфигуратору режим работы: первый способ или второй. Первый вариант подходит тем, кто выгружает пакеты, правит их и отправляет в свой репозиторий (кто-то решил fork сделать, мало ли). Второй вариант для таких как мы с тобой - нам просто нужны свежие пакеты.

Denis Daniluk

unread,
May 15, 2011, 2:16:45 AM5/15/11
to WebProduction Packages
Если конфигуратор сэкономит 1 минуту на проекте, то время, потраченное
на него вернется к тебе на 601 проекте. ИМХО конфигуратор повлияет на
популяризацию пакетов.

Maxim Miroshnichenko

unread,
May 15, 2011, 4:48:20 AM5/15/11
to wp-pa...@googlegroups.com
Насчет популяризации - это да.
В таком случае, если следовать логике рядового - то svn и тп будет до лампочки. Разработчик выкачает конфигуратор, а потом начнет при помощи него прямо в директории настраивать/загружать пакеты.

Denis Daniluk

unread,
May 15, 2011, 5:16:08 AM5/15/11
to wp-pa...@googlegroups.com
Большинство разработчиков даже не используют систему контроля версий. Им нужен просто набор библиотек. И если им надо будет версия посвежее, то думаю они сами её просто выкачают. Кстати, можно то в конфигураторе добавить опцию проверки обновления.

ramm

unread,
May 17, 2011, 3:12:11 AM5/17/11
to wp-pa...@googlegroups.com
14.05.2011 00:19, Maxim Miroshnichenko О©╫О©╫О©╫О©╫О©╫:
> О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ 2-3 О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ packages.
>
> О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫:> О©╫ О©╫О©╫О©╫О©╫О©╫:> О©╫ О©╫О©╫О©╫О©╫О©╫, О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ svn (О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫: http://www.gnuman.ru/stuff/svn_strateg/#2).
>
> О©╫О©╫ О©╫О©╫О©╫О©╫, О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ tags, trunk, branches.
>
> О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫:
>
> О©╫О©╫О©╫О©╫О©╫:
>
> 1. О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫О©╫О©╫О©╫ 100. О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
> 2. О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫, О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ (О©╫О©╫ О©╫О©╫О©╫О©╫, svn externals О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫).
> 3. О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫-О©╫О©╫О©╫О©╫О©╫О©╫ (tags). О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ Engine. trunk - О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ "О©╫О©╫О©╫О©╫О©╫". О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ - trunk (О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫) О©╫О©╫О©╫ tags/xxx - О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ (О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫).
> 4. svn checkout/update О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ (О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫).
> 5. О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ svn - О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
>
> О©╫О©╫О©╫О©╫О©╫О©╫:
> 1. О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ svn:externals О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫, О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ (svn externals -r) О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ svn:externals О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
> 2. О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ (О©╫О©╫ О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫, О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫), О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ die-day О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
>
> ===================
>
> О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, Engine:
>
> О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ Engine_Query О©╫ Engine_FrontController. О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ - О©╫О©╫О©╫ Engine_Query extends Engine_FrontController О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
>
> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ Engine О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
>
> О©╫О©╫О©╫ О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫: 1 О©╫О©╫О©╫ О©╫ 3 О©╫О©╫О©╫О©╫О©╫О©╫ (О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫), О©╫О©╫О©╫О©╫О©╫ Engine/trunk О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ Engine/tags/version-xxx, О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫ Engine/trunk О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫.
>
> О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ - О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ version-xxx, О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ - trunk.
>
> О©╫О©╫О©╫О©╫ О©╫О©╫О©╫-О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫-О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ - О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫-О©╫О©╫О©╫О©╫О©╫О©╫ (О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫).
>
> ===================
>
> P.S.:
> О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, 13О©╫ ;-)
> svn://site.cn.ua/ О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ ;-)
> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ svn://svn.webproduction.com.ua/
>
> --
> О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫,
> О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫,
> О©╫О©╫О©╫О©╫О©╫О©╫ WebProduction.

>
> www: http://webproduction.com.ua/
> email: m...@webproduction.com.ua
> office: off...@webproduction.com.ua
> tel. 1: +38 (050) 447-95-30
> tel. 2: +38 (0462) 61-42-61
>
О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ svn://site.cn.ua/ . О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫,
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫:

svn info | grep URL //О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ url
URL: svn://site.cn.ua/project_name/trunk //О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫-О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫
svn switch --relocate svn://site.cn.ua/project_name/trunk svn://svn.webproduction.com.ua/project_name/trunk //О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ url
svn info | grep URL //О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫-О©╫О©╫ О©╫сё О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫


Reply all
Reply to author
Forward
0 new messages