[PlasticSCM] Небольшой обзор системы контроля версий
От: Aquary Россия https://wmspanel.com/
Дата: 09.04.10 03:03
Оценка: 18 (2)
Добрейшего.
Не так давно в поисках нового и необычного набрёл на PlasticSCM — систему контроля версий от CodiceSoftware. В целом — очень понравилась. Получается нечто среднее между Perforce, Mercurial и, как ни странно, ClearCase. Причем сильнее всего смахивает именно на Perforce.
Ниже — обо всех основных возможностях и о личных впечатлениях. Много букв и картинок!

Ключевые возможности — следующие.
Распределенная природа работы. Многократно встречается утверждение, что Пластик — истинно распределенная система контроля. Центральный репозиторий имеет место быть, однако каждая рабочая станция может спокойно работать автономно, обмениваясь инфой как с серверами, так и с другими потребителями. Используется 2 механизма на выбор — репликации данных и обмен патчами. Рискну предположить, что в основе репликации лежит аналогичный механизм баз данных средствами back-end СУБД (но могу и ошибаться). С работой патчей тоже все, полагаю, знакомы. Причем обмениваться данными можно как угодно, например — реплицировать целиком отдельную ветку. Сервером при этом может являться даже машина разработчика.
Краткая иллюстрация:


Выбор элементов для работы с помощью "selectors". Это одна из ключевых возможностей, на мой взгляд. Концепция явно взята из ClearCase и Perforce. В конфигурационном файле пишется для каждого элемента (или группы элементов): что выбирать (имя или маска для выбора), с какой ветки и версии или по какой метке. Там также пишется — что делать при чекауте элемента (например, создать автоматом ветку). Надо посмотреть исходники с другой ветки для группы файлов — меняется одна строчка, переустанавливается конфиг, дальше система подбирает из репозитория правильные версии элементов — и юзер продолжает работу (подбор новых версий и скачивание идет без его участия, автоматом). По сути, происходит выбор конфигурации продукта путем её (конфигурации) описания специальными правилами. Это позволяет более гибко задавать срез версий, который хочет получить пользователь. Такой подход более универсален, чем, например, просто номер ревизии, т.к. интересующие версии могут быть раскиданы по разным ревизиям репозитория. Здесь же можно в одном workspace видеть данные с разных веток одновременно. Вот небольшой пример селектора с одним правилом (их может быть неограниченное количество):


Возможности ветвления и слияния. Авторы считают, что надо уделять больше внимание отращиванию веток и их слиянию. Ведь именно плохая работа с branching и merge отпугивает народ в принципе от использования практик ветвления, что очень плохо (чему доказательством многочисленные войны на форумах). Создатели это понимают (и всячески это подчеркивают) — и делают всё, чтобы отращивание и слияние веток было как можно более простым. Механизм довольно интересен — с одной стороны, ветка отращивается для репозитория целиком, с другой — в неё "складываются" версии по мере появления для каждого элемента. Слияние данных тоже не отстает по возможностям, оно там трёхпозиционное, с поиском дельты через общего предка — я с таким работал в ClearCase, отличный механизм. Ну и до кучи — есть selective merge (cherry picking), это слияние не ветки целиком, а указанного диапазона версий (такое и в SVN есть); также есть subtractive merge (про этот вид анти-слияния стоит отдельно потом написать). Есть также 3D-просмотр дерева.


Переносимость. Заявляется кроссплатформенность (Windows, Linux, Solaris, MacOS), в качестве back-end используются разные СУБД. В частности, не так давно был заявлен Oracle в качестве ещё одной поддерживаемой базы. Требует .NET 2.0 — то есть или соответствующий фреймоврк под виндами, или Mono. Интерфейс. Имеется родной GUI-клиент, есть интеграция с Visual Studio, Eclipse, JDeveloper. Есть и консольный клиент. Но основной упор делается на удобство родного клиента — вплоть до 3-хмерного просмотрщика истории элемента (веток, версий, меток и т.п.).

Интеграция с багтрекерами. В настройках клиента указаны Bugzilla, Jira, Mantis, Trac и ещё несколько других. На картинках в доках видно, что есть привязка задач к веткам, что логично и очень правильно.

Система запросов. Можно сделать поиск по куче критериев — элементов, бранчей, меток и т.п. — и выбрать для просмотра то, что надо. По сути, свой небольшой язык запросов. При разветвленной структуре проекта, да ещё и при большом количестве разработчиков и их веток — очень полезная штука.

Есть много других фишек, например, ряд вещей, связанных с безопасностью или сбор метрик по работе с кодом. В целом же привлекла внимание наиболее интересная фича — selectors. Как уже было сказано, она сильно напоминает config specs у ClearCase и аналогичный механизм у Perforce.

Пощупал
Итак, думаю, надо скачать демку и пощупать. Зарегался на сайте сначала, но потом саму закачку решил отложить — инсталятор 50 мег, а инет дома оставляет желать лучшего в вечерние часы. В общем, не стал качать, потом был занят.... И тут — письмо, пишет их продажница. Мол, Юрец, ты у нас тут по сайту ходил, решила узнать — мож тебе помощь какая нужна? В общем, понятно — работа с потенциальным клиентом, молодцы, зачёт. Не удержался — скачал на работе. Поставил, получил ошибку при настройке способов аутентификации между клиентом и сервером, списался с суппортом, на следующий день (разница во времени...) получил совет как победить (граждане, читайте мануалы!). Суппорту — ещё один зачет, молодцы. "....А вы все здесь — маладцы!" (с) День радио. В общем, запустил. Сайт и мануал — не обманули, всё работает как описано и нарисовано на картинках. Работа с ветками, метками и историей элементов — вполне понятна и не вызывает отторжения. По крайней мере, короткого User manual мне хватило чтобы сразу сделать всё что надо. Selectors работают как заявлено — имея несколько отращенных веток свободно указывал несколько в селекторе и элементы действительно выбирались по нескольким веткам. Ветки растятся, метки вешаются, мёржи сливают, конфликтные ситуации ловятся. Приятный редактор диффов и слияний. Репликации также работают нормально — получилось создать 2 репозитория на сервере и за-push-ить между ними пару веток. При этом машина разработчика становится сама сервером (работает по 8084 порту). Интеграцию с багтрекерами не проверял, т.к. пользуюсь eTraxis, который они не поддерживают

Особенности. Все операции над объектами — элементами, ветками, метками делаются мышкой через контекстное меню, никаких кнопок на тулбаре нет, горячих клавиш нет. Для частого использования (например, интеграторами) это будет геморрой и для больших объемов работы — GUI-клиент противопоказан, надо использовать командную строку. Кстати, в некоторых других тулзах гуёвые операции сопровождаются консольным выводом — это бывает полезно — здесь же этого также нет, увы. Сам по себе GUI — очень неплох, приятен и вообще даже местами красив. Сделал небольшое дерево веток с версиями в 3D-просмотрщике, получилось малость непонятно, но очень прикольно Кстати, желающие могут просмотреть историю изменений через Gource, у них в блоге описан способ.

Итого
Хороший продукт, мне понравился, попробую поработать с ним в рабочем режиме.
Любителям попробовать что-то новое — качать и ставить обязательно.
Ностальгирующим по P4 или ClearCase (типа меня) — рекомендую настоятельно.
Любители распределенных систем — попробуйте, расскажите насколько модель работы Пластика плоха/хороша по сравнению с вашими тулзами.

Ссылки
Официальный сайт
Документация
Список клиентов со ссылкой на отзывы
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
plastic scm codice branching distributed merge perforce selectors version control clearcase config spec
Re: [PlasticSCM] ненавижу
От: VasyaPS  
Дата: 14.04.10 06:15
Оценка: +2
Здравствуйте, Aquary, Вы писали:

Ненавижу фирмы, которые не пишут цену продукта на сайте. Мне больше делать нечего — умолять сейлзов, чтобы они назвали наконец цену?
И почему я должен заполнять анкету, чтобы скачать этот долбаный trial?
Пусть идут лесом, даже смотреть не буду.
Re[8]: [PlasticSCM] ненавижу
От: Aquary Россия https://wmspanel.com/
Дата: 15.04.10 03:43
Оценка: +1
Здравствуйте, Ziaw, Вы писали:

A>>P.S. Давно зреет у меня мыль написать про эту фичу (selectors в Пластике или config specs в КлирКейсе) более подробно, с описанием всех use-cases. Со временем напишу и выложу, следите за анонсами и за блогом.


Z>Было бы интересно, напиши.


Ну что ж, за язык меня никто не тянул... Сажусь думать и писать
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re: [PlasticSCM] Небольшой обзор системы контроля версий
От: Аноним  
Дата: 13.04.10 10:47
Оценка:
Здравствуйте, Aquary, Вы писали:

A>Добрейшего.

A>Не так давно в поисках нового и необычного набрёл на PlasticSCM — систему

Кстати, а скок они за статью платят ?
Re[2]: [PlasticSCM] Небольшой обзор системы контроля версий
От: Aquary Россия https://wmspanel.com/
Дата: 13.04.10 10:52
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Кстати, а скок они за статью платят ?


Не знаю, не интересовался.
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[2]: [PlasticSCM] ненавижу
От: Aquary Россия https://wmspanel.com/
Дата: 14.04.10 06:28
Оценка:
Здравствуйте, VasyaPS, Вы писали:

VPS>Пусть идут лесом, даже смотреть не буду.


Вот потому я и набрел на них случайно и отзывы про них просто отсутствуют как класс — народ забивает ещё на стадии закачки демки
И, кстати, да — я ценник нашел только на одном из сайтов-препродавцов. Странные у них сэйлы, в общем, согласен.
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[3]: [PlasticSCM] ненавижу
От: Аноним  
Дата: 14.04.10 10:51
Оценка:
Здравствуйте, Aquary, Вы писали:

A>Здравствуйте, VasyaPS, Вы писали:


VPS>>Пусть идут лесом, даже смотреть не буду.


A>Вот потому я и набрел на них случайно и отзывы про них просто отсутствуют как класс — народ забивает ещё на стадии закачки демки

A>И, кстати, да — я ценник нашел только на одном из сайтов-препродавцов. Странные у них сэйлы, в общем, согласен.

Дык они еще и платные?! Тогда в чем отличие от перфорса, акромя distributed-модели (которая автоматом дает disconnected mode, столь обожамсый фанами SVN)
Re[4]: [PlasticSCM] ненавижу
От: Aquary Россия https://wmspanel.com/
Дата: 14.04.10 11:20
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Дык они еще и платные?! Тогда в чем отличие от перфорса, акромя distributed-модели (которая автоматом дает disconnected mode, столь обожамсый фанами SVN)


Собственно, в этом и отличие — распределенная модель включена в дизайн изначально и делать обмен можно и отдельными файлами-патчами, и полной репликацией базы — как всего воркспейса, так и отдельных частей конфигураций (например, бранча).

А так, в общем, да — я сразу сказал, это помесь P4, Hg и ClearCase

Ну и насчет ценника не знаю — кто же из них дешевле.
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[5]: [PlasticSCM] ненавижу
От: Ziaw Россия  
Дата: 14.04.10 13:02
Оценка:
Здравствуйте, Aquary, Вы писали:

A>Собственно, в этом и отличие — распределенная модель включена в дизайн изначально


Когда есть ht, git, etc, хватсаться этим как-т странно.

A>и делать обмен можно и отдельными файлами-патчами, и полной репликацией базы — как всего воркспейса, так и отдельных частей конфигураций (например, бранча).


Еще страннее хвастаться репликацией базы. Все нормальные системы это делают без стороннней СУБД прекрасно. Мне сколько движения надо сделать чтобы начать работать?

A>А так, в общем, да — я сразу сказал, это помесь P4, Hg и ClearCase


А в чем фишка-то? Я вот могу расписать сильные и слабые стороны git, hg, svn. Слабые стороны я уже увидел, у девелопера должна быть выделена СУБД под это дело. Сильные где?
... << RSDN@Home 1.2.0 alpha 4 rev. 1468>>
Re[6]: [PlasticSCM] ненавижу
От: Aquary Россия https://wmspanel.com/
Дата: 14.04.10 21:58
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Когда есть ht, git, etc, хватсаться этим как-т странно.


Вопрос у человека был — в чем отличие от Перфорса, а не от Гита или Ртутного. На что и был дан ответ — распределенностью. И создатели системы — — да, преподносят распределенность как свой плюс. Полагаю, потому, что целевая аудитория — компании, которые сейчас работают по централизованной модели в том же Перфорсе или Клиркейсе. И по некоторым позициям Пластик обходит этих двоих — хотя бы своей относительной легковесностью при схожем функционале.

Z>Еще страннее хвастаться репликацией базы. Все нормальные системы это делают без стороннней СУБД прекрасно. Мне сколько движения надо сделать чтобы начать работать?


Где ты видел, чтобы я хвастался? Хвастаются чем-то своим. Этот продукт — не мой, я к нему отношения не имею, я написал обзор функциональности со своими комментариями.

Z>Слабые стороны я уже увидел, у девелопера должна быть выделена СУБД под это дело.


Процитируй, где я сказал, что должна быть выделена СУБД? Я написал, что в качестве бэк-энда используется СУБД и её можно выбрать при желании. Но по умолчанию ничего ставить специально не надо. Я, например, просто скачал дему и поставил с нуля без проблем.

Z>А в чем фишка-то? Я вот могу расписать сильные и слабые стороны git, hg, svn.


Ты про фишку обзора или продукта? Обзор не может иметь фишек, ведь он отражает то, что есть в продукте, с добавлением своих впечатлений. Обзоры Гита — на каждом шагу, народ зачастую только его и SVN знает, ничего другого видеть не хочет. Нужно иногда отрываться от привычных тулов и смотреть про сторонам, это полезно.

Или ты про фишку продукта? См. ниже.

Z>Сильные где?


Сильная сторона лино для меня — это применение selectors, я об этом прямо написал. Подобная возможность выводит командную многокомпонентную разработку — буквально на другой уровень. Я это говорю как бывший интегратор компонент в составе крупной мобильной платформы. Эта возможность есть в считаных системах — упомянутых Перфорс и КлирКейс.
Гит, Меркуриал и тем более СВН используют принципиально другую модель. Не хуже, не лучше — просто другую. Работает она по-другоуму, плюсы у неё — другие. Пластик, Перфорс, КлирКейс используют свою модель, наиболее востребованную для решения определенного (очень обширного) класса задач.

P.S. Давно зреет у меня мыль написать про эту фичу (selectors в Пластике или config specs в КлирКейсе) более подробно, с описанием всех use-cases. Со временем напишу и выложу, следите за анонсами и за блогом.
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[7]: [PlasticSCM] ненавижу
От: Ziaw Россия  
Дата: 15.04.10 03:32
Оценка:
Здравствуйте, Aquary, Вы писали:

A>Сильная сторона лино для меня — это применение selectors, я об этом прямо написал. Подобная возможность выводит командную многокомпонентную разработку — буквально на другой уровень. Я это говорю как бывший интегратор компонент в составе крупной мобильной платформы. Эта возможность есть в считаных системах — упомянутых Перфорс и КлирКейс.

A>Гит, Меркуриал и тем более СВН используют принципиально другую модель. Не хуже, не лучше — просто другую. Работает она по-другоуму, плюсы у неё — другие. Пластик, Перфорс, КлирКейс используют свою модель, наиболее востребованную для решения определенного (очень обширного) класса задач.

A>P.S. Давно зреет у меня мыль написать про эту фичу (selectors в Пластике или config specs в КлирКейсе) более подробно, с описанием всех use-cases. Со временем напишу и выложу, следите за анонсами и за блогом.


Было бы интересно, напиши.
... << RSDN@Home 1.2.0 alpha 4 rev. 1468>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.