Вышла (http://rhodecode.org/news/2013/rhodecode-170-released/) новая версия rhodecode 1.7.0 (http://rhodecode.org/), веб-интерфейса к системам контроля версий Mercurial и Git, позволяющего развернуть на своих мощностях полностью подконтрольную платформу управления разработкой, похожую на GitHub и Bitbucket. Код проекта распространяется (https://secure.rhodecode.org/rhodecode/files/tip/) под лицензией GPLv3. Для работы с репозиториями задействована библиотека vcs (https://pypi.python.org/pypi/vcs), мета-данные о проектах хранятся в БД на основе SQLite. Оценить работу платформы в действии можно на специально подготовленном демонстрационном сайте (http://demo.rhodecode.org/).Программа написана на языке Python и позволяет через Web управлять репозиториями, разделять права доступа, рецензировать код, отслеживать активность других участников, делать форки проектов, отправлять пулл-реквесты или изменять код на месте, через простой редактор. Поддерживается интеграция с централизованной базой пользователей предприятия, основанной на LDAP или ActiveDirectory. Отдельного внимания заслуживает встроенная система полнотекстового поиска, построенная на базе движка Whoosh (https://pypi.python.org/pypi/Whoosh/) и позволяющая легко находить нужный код по произвольным признакам. Поддерживается создание групп репозиториев и групп разработчиков с унификацией управления членами группы.
Платформа является многопоточной, что позволяет одновременно обслуживать несколько pull/push-запросов. Для увеличения производительности в системе активно используется кэширование и выполнение действий в асинхронном режиме. В систему также интегрированы средства резервного копирования, позволяющие периодически архивировать и сохранять через scp копию всех данных.Для отслеживания активности в репозиториях подготовлена специальная прослойка, ведущая журнал всех обращений и позволяющая аутентифицировать каждый запрос. В системе рецензирования изменений поддерживается обсуждение изменений и отправка уведомлений. Внешний вид интерфейса может легко быть изменён через систему шаблонов. Поддерживается наглядное представление активности в виде графиков.
<center><a href="http://rhodecode.org/media/img/rhodecode-03-site.png"&g... src="http://www.opennet.me/opennews/pics_base/0_1370925976.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;" title="" border=0></a></center>
Новая версия примечательна следующими функциональными особенностями:
- Teams - система управление группами разработчиков, позволяющая добавлять, удалять, переименовывать группы, а также управлять пользователями внутри этих групп и назначать администратора группы;
- Gist - интерфейс для обмена небольшими кусками кода, созданный по аналогии c gist.github.com (https://gist.github.com/);- При организации внешней аутентификации добавлена возможность определения поля с признаком активации пользователя;
- Возможность разграничения доступа к разделам API для интеграции с внешними системами через оформление белого списка допустимых вызовов;
- Добавлена отдельная страница для отслеживания истории изменения файлов;
- В раздел закладок добавлена опция сравнения;
- Улучшена работа интерфейса для оценки различий между бинарными файлами.URL: http://rhodecode.org/news/2013/rhodecode-170-released/
Новость: http://www.opennet.me/opennews/art.shtml?num=37144
Автор конечно молодец, но пока будет такой убогий интерфейс пользоваться этим чудом не будут.
> Автор конечно молодец, но пока будет такой убогий интерфейсИнтерфейс, конечно, сильно уступает, и гитлабу, и гиториусу. :( Но жить можно.
> пользоваться этим чудом не будут.
Отучаемся говорить за всё фидо. Я, конечно, для дома для семьи предпочитаю hg serve, но для иных целей - легко поднимается на любой системе, оборудованной pip/distutils, в три команды.
> Интерфейс, конечно, сильно уступает, и гитлабу, и гиториусу. :( Но жить можно.Угу, если ты фанат питона - можно и такой кактус сожрать, несомненно. Только даже у гиториуса (он IIRC на твоем нелюбимом пыхе, да?) интерфейс намного приятнее. У гитхаба получше, но его на свой сервак не поставишь, так что радости с этого не густо.
Читаем внимательнее: речь шла о гитлабе, а не гитхабе.
Зачем вам интерфейс? Эта штука нужна для того чтобы сделать hg push / pull с авторизацией.
Интерфейс в redmine или в одном из его многочисленных форков.
> для того чтобы сделать hg push / pull с авторизацией.А что, hg сам так не умеет? O_O
>А что, hg сам так не умеет? O_OЧерез веб? Нет не умеет. hg serve без авторизации и без https.
> hg serve без авторизации и без https.Ну так велосипедизм же во весь рост...
>> hg serve без авторизации и без https.
> Ну так велосипедизм же во весь рост...Что не так?
>> hg serve без авторизации и без https.
> Ну так велосипедизм же во весь рост...Сделать авторизацию и https для hg serve проблем нет. Внешними средствами, конечно.
Хотелки?
Юнит тесты?
Компиляция, Сборка?ЗЫ. назначать администратора группы это круто!!!!
> Хотелки?
> Юнит тесты?
> Компиляция, Сборка?Нэт. Хотя вроде есть api, дёргай-не-хочу, я сильно не копал.
Вот если добавить issue, будет вообще вещщность. Пока приходится самописным трекером обходиться там, где redmine - явный оверхед.
ну вот реальная замена gitlab
> ну вот реальная замена gitlabЕсли нужно именно hg - то безальтернативная. :)
>> ну вот реальная замена gitlab
> Если нужно именно hg - то безальтернативная. :)
Это интернет-сервис, а не приложение.А интернета вообще может и не быть (мыши магистраль перегрызли, у провайдера гента упала, и вообще интернетозависимость - это плохо).
>Это интернет-сервис, а не приложение.А какая разница на какой машине будет работать приложение.
>А интернета вообще может и не быть (мыши магистраль перегрызли, у провайдера гента упала, и вообще интернетозависимость - это плохо).
Интернет был есть и будет. Доступ можно всегда организовать.
>>Это интернет-сервис, а не приложение.
> А какая разница на какой машине будет работать приложение.Огромная.
> Интернет был есть и будет.
Это не так. И это зависимость от интернета, даже тогда, когда это не нужно.
>>>Это интернет-сервис, а не приложение.
>> А какая разница на какой машине будет работать приложение.
> Огромная.
>> Интернет был есть и будет.
> Это не так. И это зависимость от интернета, даже тогда, когда это
> не нужно.И тут Остапа понесло... Bitbucket отличный сервис.
> Bitbucket отличный сервис.bitbucket - отличный сервис
а разница между чужим и своим - это разница между чужим и своим.
я могу привести с десяток причин, почему я держу hg.51t.ru и почему это намного удобнее, но вы же не поймёте, у вас базисы в голове другие забиты, и вы не можете выйти из этого уровня абстракции ниже... откуда отлично видно, что король-то голый.
>а разница между чужим и своим - это разница между чужим и своим.Я бы даже заметил, что разница между своим и чужим равна разнице между чужим и своим.
>я могу привести с десяток причин, почему я держу hg.51t.ru и почему это намного удобнее,
Я могу привести также десяток очевидных причин, почему сторонний сервис лучше, например не нужно железо, не нужно электричество жечь, не нужен администратор на поддержку и траты времени на настройку всего этого хозяйства.
И поэтому считать безальтернативным метод держания реп исключительно у себя не является разумной мыслью. Есть разные ситуации и для них есть разные оптимумы решений.
>но вы же не поймёте, у вас базисы в голове другие забиты
Откуда вам знать про "базисы" в моей голове. Вы про них ничегошеньки не знаете. Вы даже имени моего не знаете.
> Откуда вам знать про "базисы" в моей голове. Вы про них ничегошеньки
> не знаете. Вы даже имени моего не знаете.вот тут ты ошибаешся, буратино знает всё!
>> Откуда вам знать про "базисы" в моей голове. Вы про них ничегошеньки
>> не знаете. Вы даже имени моего не знаете.
> вот тут ты ошибаешся, буратино знает всё!
> вот тут ты ошибаешся, буратино знает всё!Годовых колец еще столько не наросло.
> И поэтому считать безальтернативным метод держания реп исключительно у себя не является разумной мыслью.Верно. Как и сравнение rhodecode и bitbucket.
> Откуда вам знать про "базисы" в моей голове. Вы про них ничегошеньки не знаете. Вы даже имени моего не знаете.
информации было достаточно. впрочем, это не имеет никакого значения, это же вам с этим жить. это была информация для затравки, чтобы или задуматься, или пропустить мимо ушей, большего я дать не могу.
>> И поэтому считать безальтернативным метод держания реп исключительно у себя не является разумной мыслью.
> Верно. Как и сравнение rhodecode и bitbucket.А что не так, они оба решают одну и ту же задачу.
>> Откуда вам знать про "базисы" в моей голове. Вы про них ничегошеньки не знаете. Вы даже имени моего не знаете.
> информации было достаточно.Да ладно? Мне вот про вас уже известно, что серьезной разработкой вы не занимаетесь, распределенных проектов с большой командой у вас нет, иначе бы этот бред про отключение всея интернета и интернет-зависимости тут не появился.
> впрочем, это не имеет никакого значения, это же вам
> с этим жить. это была информация для затравки, чтобы или задуматься,
> или пропустить мимо ушей, большего я дать не могу.Я у вас ничего не просил, так что свои подачки в виде неумелого троллинга оставьте себе.
>> Верно. Как и сравнение rhodecode и bitbucket.
> А что не так, они оба решают одну и ту же задачу.На своём сервере у меня есть всё, начиная от хитрого крона и заканчивая собственными приложениями, делающими что-то нужное. У меня полный контроль.
> Да ладно? Мне вот про вас уже известно, что серьезной разработкой вы
> не занимаетесь, распределенных проектов с большой командой у вас нет, иначе
> бы этот бред про отключение всея интернета и интернет-зависимости тут не появился.Как связаны интернет-зависимость и серьёзная разработка?
Впрочем, я когда-то числился служащим и в самой крупной it-компании региона. И у них тоже иногда интернет пропадал. Вообще, молиться на интернет и доверять ему всё - это глупо, как и считать "интернет есть у всех и всегда". Впрочем, это опять же ваши проблемы.
> Я у вас ничего не просил, так что свои подачки в виде
> неумелого троллинга оставьте себе.Неумелый троллинг - это вы, уважаемый, со своими непониманиями и упёртой категоричностью. А я буратино, это не имя, это стиль жизни.
> это намного удобнее, но вы же не поймёте,Да, уровень аргументации Буратины как обычно поражает воображение. Детский сад, штаны на лямках. FAIL.
> ну вот реальная замена gitlabС таким юзеринтерфейсом это замена огородным пугалам скорее. Разработчиков и прочих от проекта отпугивать - в самый раз.
>> ну вот реальная замена gitlab
> С таким юзеринтерфейсом это замена огородным пугалам скорее. Разработчиков и прочих от
> проекта отпугивать - в самый раз.Зачем вам сдался этот интерфейс, позволяет пользователей завести и пароли задать, ну и ладно, больше от него ничего не требуется.
И хоть бы один из авторов этих штук сделал s2s для них - чтобы можно было красиво сфоркать репозиторий с чужого сервера на своем, получать уведомления и т.п.
> И хоть бы один из авторов этих штук сделал s2s для них
> - чтобы можно было красиво сфоркать репозиторий с чужого сервера на
> своем, получать уведомления и т.п.Что имеется ввиду? В чём проблема сфоркать репозиторий с чужого сервера и получать обновления на нём, и что значит "красиво" (некрасиво я rhodecode сначала именно использовал для того, чтобы получать обновления с чужих серверов в едином интерфейсе и следить за коммитами).
"красиво" - это альтернатива гитхабу: форки, о которых информируется тот, кого форкают, возможность рядом положить пулл-реквест, увидеть пулл-реквесты других людей и т.д.В принципе, для этого не обязателен веб (может, через почту даже лучше будет, хотя спец. клиент понадобится) - но обязательно, чтобы это было красиво и наглядно. В общем, распределенная альтернатива гитхабу-монополисту.
> "красиво" - это альтернатива гитхабу: форки, о которых информируется тот, кого форкают, возможность рядом положить пулл-реквест, увидеть пулл-реквесты других людей и т.д.Я не знаю, как там на гитхабу, когда я заходил, ничего подобного не видел, а внутри - не пользовался. На самом rhodecode это номинально есть (только работает ... странно).
И я не понял, нужно взаимодействие между rhodecode->rhodecode, или rhodecode->любой_сервер. По второму - непонятно, как вы уведомите тот же hg.51t.ru, что что-то с него форкнули? :)
Но всё равно не вижу, какой смысл переусложнять и без того непростой rhodecode. Кому нужна такая функциональность, пусть и форкнут :) а в основной ветке это зачем?
> что-то с него форкнули? :)А он, типа, слепой и не видит что с него качают? :)
>> что-то с него форкнули? :)
> А он, типа, слепой и не видит что с него качают? :)А вы знаете как различить запрос "на посмотреть" и запрос "на скачать"?
> А вы знаете как различить запрос "на посмотреть" и запрос "на скачать"?Ну если сильно надо различать - мало кто будет просматривать служебные сущности и вообще выкачивать за 5 секунд 10 Мб на посмотреть. С другой стороны - вот качнул я допустим с гитхаба клон репы. И где-то у себя стал пилить форк. А гитхаб как-то и не в курсе что форк есть. Так что как видите, информация о форках теряется даже так. Так что некий вопрос - а есть ли смысл их различать. Любая полная скачка репы - потенциально болванка под новый форк.
Профто фишечки вида "проект форкнули 3000 раз" хороши с точки зрения маркетинга/популяризации. Поэтому у платформы, которая такие фишечки поддерживает, шансов всерьез взлететь куда как больше. Но, конечно, основное - это удобные пулл реквесты или аналоги - публичные, в интерфейсом, при необходимости - обновляемые автором и т.д. Сам workflow и на почте строится, конечно, но тогда гитхаб вечно будет фактически монополистом. А монополии как-то не радуют.Да, еще какие-то API для движков забыл, чтобы можно было искать проекты по этой распределенной сети проектов. Тоже принципиально важная штука.
> Профто фишечки вида "проект форкнули 3000 раз" хороши с точки зрения маркетинга/популяризации.
> Поэтому у платформы, которая такие фишечки поддерживает, шансов всерьез взлететь куда
> как больше.Внутри платформы, это, разумеется видно.
А так - ну сделал я hg clone, откуда оно знает, форк это или я просто поглядеть взял, чтобы через 10 минут удалить?
> Но, конечно, основное - это удобные пулл реквесты
пулл-реквесты есть, но лично у меня они не работали толком (в предыдущих версиях, когда появились. на этой - не пробовал).
Что касается взлететь - так реальных альтернатив для hg нет, да и рельсовые gitlab и gitorious ставятся довольно нетривиально. :(
А эта штука не загнется на многогигабайтной документо-помойке с кучей бинарных файлов (mercurial)?
> А эта штука не загнется на многогигабайтной документо-помойке с кучей бинарных файлов
> (mercurial)?Наверное стоит посмотреть какие проекты на нём живут, и убедится что не загнется.
Надо s/sqlite3/postgres
> Надо s/sqlite3/postgresТак ведь умеется.
а сортировка по тэгам всё так же считает, что версия 0.9 новее, чем 0.11 :(
> а сортировка по тэгам всё так же считает, что версия 0.9 новее,
> чем 0.11 :(А баг зарепорчен?
А зачем 0_0
just for fun
Rhodecode отличная тулза. Подняли в локальной сети в организации - коллеги не нарадуются.
Ага, верно замечено: "радоваться" такому юзеринтерфейсу можно только под угрозой увольнения :)
> Ага, верно замечено: "радоваться" такому юзеринтерфейсу можно только под угрозой увольнения
> :)Кому шашечки, а кому ехать.
>> Ага, верно замечено: "радоваться" такому юзеринтерфейсу можно только под угрозой увольнения
>> :)
> Кому шашечки, а кому ехать.Подыбал новый интерфейс, двухпанельный (две панели сверху) нормально, попользовался, удобно.
Но. Почему-то маловостребованная фишка, она есть только в самой страшной теме в hg serve (страшной даже для любителя web 0.62, тема "спартанская"), в одной сторонней (которой я из-за неё и пользуюсь, пример вот: http://hg.51t.ru/t2twiki/changelog ), и нет в rhodecode - видеть в ченчлоге имена файлов. Часто это самая нужная опция при беглом поиске как по своему, так и по чужому впервые увиденному репозиторию.
Крайне интересно!Обязательно попробую.
Автору респект за разработку.
А за питон, так ваще - отдельное спасибо: с удовольствие посмотрю "как оно чирикает" изнутри.