LINUX.ORG.RU

Релиз системы управления версиями Subversion запланирован на 23 февраля


0

0

Новость немного запоздала, но не суть.

1) После выхода 20 декабря milestone 0.35 система Subversion официально перешла в beta-стадию.

2) 13 января вышел milestone 0.36, в котором содержится вся заявленная функциональность, и дальнейшие milestones будут содержать только исправления обнаруженных ошибок.

3) 23 февраля, если всё будет хорошо, будет релиз (я думаю, что "всё будет хорошо" - система уже очень давно стабильно работает и с каждым выпуском всё лучше)

-----

Что такое система Subversion? Это свободная система управления версиями, призванная стать заменой CVS.
- Как знают пользователи CVS, эта система ведёт историю изменений отдельно каждого файла. В Subversion принята другая идеология - при внесении изменений в репозиторий изменяется общий Revision Number репозитория. Таким образом, отпадает необходимость в специальных метках. Надо немного привыкнуть, но потом намного удобнее.
- Доступ к репозиторию возможен по трём транспортам - локально, via http(WebDAV/DeltaV) и посредством собственного протокола.
- В качестве storage репозитория используется свободная БД BerkeleyDB. Branching осуществляется простым копированием, при этом копирования собственно контента не происходит, что экономит ресурсы.
- VCS Subversion построена на Apache Portable Runtime и является по-настоящему кроссплатформенной системой. В настоящее время есть реализации для Linux, BSD, Win32, MacOSX, another *nix-es.
- Поддерживаются операции переименования и удаления файлов в репозитории. При этом, конечно, если например файл был в дереве исходников в Revision 10, а в Revision 11 мы его удалили - всегда можно достать Rev10.
- Commit является атомарной операцией.
- Расширенная поддержка метаданных и контроль версий метаданных.
- И многое-многое другое.

Для Subversion уже имеются несколько клиентов. Например, плагин для среды разработки Eclipse, win32-клиент TortoiseSVN, поддержка SVN оболочкой KDE.

Качаем, кто не пробовал - пробуем. Полезная вещь, всем рекомендую.
Русской документации пока нет, но к релизу будет.

>>> Подробности

Вот как надо новости постить. Даже захотелось попробовать. Решпект, Dimentiy.

anonymous
()

Всё равно rational clearcase никто не переплюнет, всё остальное лишь попытка приблизиться к нему. И не надо говорить, что он заденежку.

anonymous
()

>Как знают пользователи CVS, эта система ведёт историю изменений отдельно каждого файла. В Subversion принята другая идеология - при внесении изменений в репозиторий изменяется общий Revision Number репозитория

Правильно ли я понимаю, что это эквивалентно в cvs тому, как если бы я при каждом коммите автоматически проставлял тэг?

>При этом, конечно, если например файл был в дереве исходников в Revision 10, а в Revision 11 мы его удалили - всегда можно достать Rev10.

А чем это отличается от cvs rm?

//Losiki

anonymous
()
Ответ на: комментарий от anonymous

>Всё равно rational clearcase никто не переплюнет, всё остальное лишь
>попытка приблизиться к нему. И не надо говорить, что он заденежку.
Да, но ты никогда не думал, что ClearCase+ClearQuest стоит порядка $10k на рабочую станцию, сервер $50k, инсталляция ещё порядка 40 (как минимум) и администратору нормальному ты не сможешь платить меньше $7k?
То же и со стартимом и калибром - правда в 30 раз дешевле.
Т.е. - Не хочешь, не ешь, а сам ты хрен настроиш rational workplace & rational servers. А если настроишь - чего ты на ЛОРе сидишь, а не в силикон вэли? Если у тебя такая зарплата, то явно не в россии

anonymous
()
Ответ на: комментарий от anonymous

retional clearcase перегружен фичами ;), хотя вещь очень удобная особенно в сочетании с clear quest. А если пользовать UCM - то CC/CQ ваще равных нет ;)

anonymous
()
Ответ на: комментарий от anonymous

что есть UCM?

Какие есть ещё free альтернативы cvs. Слыхал, что есть BitKeeper.

Кто-нибудь сравнивал BK, Subrevision, etc?

anonymous
()

А как с этой системой дружит с emacs?

Evgueni ★★★★★
()
Ответ на: комментарий от anonymous

"arch" AKA "larch" aka "tla" или "Arx". Имеют 1 большой недостаток - собилаются только с библиотеками Лорда - которые собираются очень редко(как я понял только на некоторых 32хбитных машинах.

В остальном сильно лучше CVS, SV и где-то сравнимо с BK - если не считать интерфейса

DonkeyHot ★★★★★
()
Ответ на: комментарий от anonymous

> Всё равно rational clearcase никто не переплюнет, всё остальное лишь попытка приблизиться к нему. И не надо говорить, что он заденежку.

10 месяцев пользовался этим тормозом. Если бы провели всемирный конкурс тормозов, clearcase занял бы там последнее место. Потому что он тормоз.

Чего там есть хорошего? Какие из описанных выше фич subversion там есть? Хоть половина наберется?

pitekantrop ★★★
()
Ответ на: комментарий от anonymous

Шютите? Я вынужден пользоваться этим безобразием (CC/CQ) для интеграции в удаленную ветку. Это полный 3.14. Супертормоз!!! Кончилось все тем, что сейчас я качаю update rsync-ом, а заливаю на тамошнем компе через VNC!!! Так получается раз в 100 быстрее. Впрочем оно и локально тормозит. Еще чудо-идеалогия удаленной работы с регулярным скачиванием репозитория / посылкой на лентах туды-сюды. Просто супер (у нас 10Gb репозитория!). И кто-то там должен все мержить, потом кто-то тут должен мержить. Я молчу про регулярные сбои в базе, и нифига не тривиальное мерженье бранчей.

anonymous
()
Ответ на: комментарий от pitekantrop

Решпект! Ты успел раньше :)

anonymous
()
Ответ на: комментарий от anonymous

Товарищ, вы про multisite слышали? Какое-такое скачивание репозитория? Про объем репозитория, я тебе могу сказать что у нас много больше, и самое главное - ничего не тормозит. Правдо странно? И какие там такие сложности могут возникнуть с мерженьем бранчей? Если у тебя руки вставлены нужным концом, там всё автоматом будет происходить.

anonymous
()
Ответ на: комментарий от pitekantrop

По поводу сравнения фич - обратитесь к документации, от себя лишь только могу сказать - "переплюнет".

anonymous
()
Ответ на: комментарий от anonymous

>> Как знают пользователи CVS, эта система ведёт историю изменений
>> отдельно каждого файла. В Subversion принята другая идеология -
>> при внесении изменений в репозиторий изменяется общий Revision
>> Number репозитория

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

Ну.. в некотором роде - да. Но куда такая прорва тэгов, ещё вдобавок к версиям? ;-))

Основной выигрыш тут в сочетании с тем, что коммиты атомарные. То есть в коммите я допустим изменяю определённым образом несколько файлов - SVN гарантирует, что тот RevNo, который получится в результате - отражает именно мои изменения. Никто, проще говоря, не "влезет" параллельно.

Заведение же веток производится примерно как обычно - допустим, есть у меня репозиторий http://localhost/svn . Надо сделать ветку для разработки, говорим что-то вроде:

svn copy -m "" http://localhost/svn/trunk http://localhost/svn/branches/specialedition

Что при этом происходит? Сами данные не копируются, репозиторий - это одна БД. Перестраиваются структуры базы, инкрементируется текущий RevNo - появляется ветка. На этом этапе /trunk и /branches/... ссылаются на одни и теже записи в базе. А вот последующие изменения будут

>> При этом, конечно, если например файл был в дереве исходников в
>> Revision 10, а в Revision 11 мы его удалили - всегда можно
>> достать Rev10.

> А чем это отличается от cvs rm?

Тем, что если я сказал "cvs rm ..", то чтобы достать удалённый файл - мне надо будет лезть в Attic и ещё фиг знает куда. В случае Svn ничто никогда не удаляется, просто в последующих RevNo файла нет. Но никто не запрещает пошариться по старым ;)

Кроме того, переименование тоже очень удобно на практике(да, есть мнение, что "надо думать до коммита" - но лучше наличие механизма, чем его отсутствие.).


Вообще, модель данных SVN - массив деревьев. То есть есть одно состояние репозитория - это дерево файлов в репозитории. Следующее состояние репозитория - другое дерево файлов (в пределе - абсолютно другое).

Dimentiy ★★
() автор топика
Ответ на: комментарий от anonymous

Во-во. Мультисайт и требует посылок на ленте. Вы с ним счастливы, или теоретически знаете? Если нужно каждый день делать мелкие правки в удаленной базе, такая премудрость не катит. >Правдо странно?

Правда! Сдается мне что Вы лукавите. Или может Вы флегмо?

anonymous
()
Ответ на: комментарий от anonymous

> Всё равно rational clearcase никто не переплюнет, всё остальное
> лишь попытка приблизиться к нему.

Угу, а в каждый мелкий вебмагазин по оракулу надо. Максимализьм...

Понимаешь, вот _мне_ не нужен ClearCase и ещё куче народу. Оно вообще мало кому надо, реально.

> И не надо говорить, что он заденежку.

Мы конечно не скажем, но он же за денежку.

Dimentiy ★★
() автор топика

Что насчет скорости? СVS работает безумно медленно для больших проектов. StartTeam быстрее, Perforce - еще быстрее. Есть какие-нибудь сравнения?

maxkir
()
Ответ на: комментарий от anonymous

> По поводу сравнения фич - обратитесь к документации, от себя лишь только могу сказать - "переплюнет".

Я уж думал, что за полтора года, что я его не использую, там куча новых фич появилась. Но что-то на http://www-306.ibm.com/software/awdtools/clearcase/features/index.html ничего, кроме маркетингового пара, не нашел. Может у тебя есть доки по секретным фичам? Тогда глянь, плиз, на предмет наличия в clearcase, например атомарных коммитов.

Кстати, может ты время от 10 до 30 секунд на checkin/checkout одного текстового файла долгим не считаешь? И почему при этом проц на клиенте грузится на 100%, и дичайший сетевой траффик?

pitekantrop ★★★
()
Ответ на: комментарий от anonymous

Вопрос такой к тем кто разбарался.

Можно прикрутить другую БД? Насколько работа с БД обстрагированна от остального кода?

anonymous
()
Ответ на: комментарий от Dimentiy

Простите, но зачем же ходить по столь неприличным местам? Если надо достать удаленный файл, просто достаете его определенную живую версию. Удаление - это просто новая версия со статусом dead.

CVS - вчерашний день. Очень уж мы с ней мучаемся. Вот, если бы arch по win по человечески работал...

anonymous
()
Ответ на: комментарий от anonymous

Wesj opensource mir rabotajet c CVS. A zmurikov kotorym nehren delatj, kak lepitj progi funkcionaljnostj kotoryh realizovana mnogimi godami ranee nado otpravitj v kolhoz kartoshku kopatj, chtoby izolirovatj element obshestva vnosjahij sujetu v rjady developerov.

anonymous
()
Ответ на: комментарий от anonymous

> Wesj opensource mir rabotajet c CVS. A zmurikov kotorym nehren
> delatj, kak lepitj progi funkcionaljnostj kotoryh realizovana
> mnogimi godami ranee nado otpravitj v kolhoz kartoshku kopatj,
> chtoby izolirovatj element obshestva vnosjahij sujetu v rjady
> developerov.
Пионеров, которые думают что они и есть весь мир opensource и не знают недостатков инструментов с которыми работают - в сад, детский.

anonymous
()
Ответ на: комментарий от anonymous

Глупыш :0)

> Wesj opensource mir rabotajet c CVS.

Глупыш, Subversion пишут в том числе авторы CVS :)
Ты бы мог почитать об этом, если бы хоть чуть-чуть знал английский.

Dimentiy ★★
() автор топика
Ответ на: комментарий от anonymous

> Простите, но зачем же ходить по столь неприличным местам? Если
> надо достать удаленный файл, просто достаете его определенную
> живую версию. Удаление - это просто новая версия со статусом dead.

Бес базара. Достать можно. Но просто согласитесь, ненормально это сделано. А директорию удалить/переименовать можно в CVS удобно? Нет.

Поэтому SVN рулит. Несмотря на отсутствие каких-то явно новых идей, просто сделано нормально то что должно было по идее быть сделано нормально с самого начала :)) [ Шютка. Я знаю что так не бывает. ]

Dimentiy ★★
() автор топика
Ответ на: комментарий от anonymous

> Можно прикрутить другую БД?

В текущем виде - нет. То есть архитектурно Subversion сделана так, что предполагает такую возможность (как и прикручиание других способов доступа, помимо local, http, svn). Но это надо писать свой layer для этого.

> Насколько работа с БД [А]бстрагированна от остального кода?

На сайте проекта в Filesharing Area есть документ про архитектуру, почитать полезно наверное, там всё это написано.
Хотя собственно код на эту тему я даже не пытался смотреть.

Dimentiy ★★
() автор топика
Ответ на: комментарий от Dimentiy

А вот очень интересно: через LDAP оно умеет юзеров авторизовать? Или: какие вообще способы авторизации там имеют место быть.. Беглый взгляд ничего не дал (кроме built-in)

anonymous
()
Ответ на: комментарий от anonymous

Re[6]: Релиз системы управления версиями Subversion запланирован на 23 февраля

> А вот очень интересно: через LDAP оно умеет юзеров авторизовать?

Я так понял, что ты знаешь ответ но почему-то решил спросить :)

Ну, тогда давай рассказывать, что рекомендуемым способом организации svn-репозитория является использование Apache 2.0.x в качестве собственно network server, в таком случае используется специальный модуль для Apache - mod_dav_svn.

Что даёт такое, на первый взгляд может быть странное решение? Во-первых, svn-модуль в таком случае может использовать встроенные в апач средства http-аутентификации. При этом список пользователей можно обслуживать разными способами - от "простейших" htpasswd файлов до использования LDAP и т.д.

Также можно назначать разные права доступа к репозиторию. Причём тут тоже есть два решения - или настраивать доступ в httpd.conf, либо использовать отдельный файл и ещё один специальный модуль mod_authz_svn.

Настройка прав доступа при использовании standalone Svn-сервера недоступна. "Официальная" точка зрения такова - используйте апач, и ваши волосы будут мягкими и шелковистыми.

Кроме того, при использовании Apache автоматически получается доступ к последней Revision репозитория из любого браузера. Ярким примером является собственно репозиторий с исходниками Svn на коллабнете:

http://svn.collab.net/repos/svn/.

Также svn-репозиторий, доступ к которому настроен над http/WebDAV/DeltaV, можно примонтировать с использованием WebDAV к ряду популярных оболочек, таким например как Nautilus(в Gnome), WebFolders(в Explorer) и т.д.

Dimentiy ★★
() автор топика

Что еще очень радует в Subversion, так это BSD-style лицензия. В отличии от проприетарной в том же BitKeeper'е. Кстати, именно поэтому я всегда был против его применения сами знаете где. Но у него голова большая и светлая... Только доводов не понимает...

anonymous
()

Отличная новость! Мне очень понравился subversion (и TortoiseSVN тоже). По сравнению с CVS (IMHO) более простая командная строка, а также более простая концепция работы с branches/tags. Именно такую вещь я и искал для своего очередного проекта :)

А насколько между разными версиями subversion бинарно совместимы их репозитарии, созданные на основе BerkleyDatabase?

dave ★★★★★
()
Ответ на: комментарий от dave

> А насколько между разными версиями subversion бинарно совместимы
> их репозитарии, созданные на основе BerkleyDatabase?

А должны быть совместимы? ;)

Dimentiy ★★
() автор топика
Ответ на: комментарий от Dimentiy

> А должны быть совместимы? ;)

Скорее всего нет, но хотелось бы :)

Просто вопрос в том, на сколько легко можно будет в будущем мигрировать на новую версию subversion, используя репозитарий, созданный более старой версией.

dave ★★★★★
()
Ответ на: комментарий от dave

Видимо, поторопился с вопросом :)

Ответ прост: svnadmin dump/load

dave ★★★★★
()
Ответ на: комментарий от dave

> А насколько между разными версиями subversion бинарно совместимы
> их репозитарии, созданные на основе BerkleyDatabase?

Сейчас используется "третья" версия репозитория. И предполагается, что при возможном в будущем изменении структуры репозитория цифра эта будет обязательно меняться. Т.е. если версия репозитория неправильная - об этом сообщается.

Но, по-моему, всё равно лучше сделать dump/load при апгрейде на новую версию.

Dimentiy ★★
() автор топика
Ответ на: комментарий от anonymous

> Вопрос: А как делать backup репозитария вовремя того как пользователи работают?

не обязательно же пользоваться именно svnadmin. Вот во ФриБСД вроде есть snapshot devices, скоро может в Net появится.. Делаешь снэпшот девайс и бэкапишь, ИМХО

dilmah ★★★★★
()
Ответ на: комментарий от anonymous

> А как делать backup репозитария вовремя того как пользователи
> работают?

Для svnadmin dump не обязательно блокировать доступ к репозиторию. Это же база данных. Сейчас специально проверил - нормально создался бэкап во времы большого коммита.

Хотя лично у меня оно архивируется в 3 ночи. На всякий случай.

Dimentiy ★★
() автор топика
Ответ на: комментарий от dilmah

> Вот во ФриБСД вроде есть snapshot devices, скоро может в Net
> появится.. Делаешь снэпшот девайс и бэкапишь, ИМХО

А расскажи, как это и что это такое? ;)

Dimentiy ★★
() автор топика
Ответ на: комментарий от Dimentiy

> А расскажи, как это и что это такое? ;)

так я не спец..:) Идея чтобы можно было сделать слепок с файловой системы. После этого она будет меняться, но в какой-нибудь backing store записываются старые блоки, и снэпшот девайс всегда дает состояние файловой системы в фиксированное время.

Для линукса вот вроде тоже делали похожую штуку http://www.usenix.org/publications/library/proceedings/als01/full_papers/sidd... -- этого сейчас в ядре нет?

В НетБСД закоммитили что-то похожее, но разработчики ругаются, говорят думать еще надо http://mail-index.netbsd.org/tech-kern/2003/12/11/0003.html

dilmah ★★★★★
()
Ответ на: комментарий от Dimentiy

а у меня нет такого понятия 3 часа ночи, пользователи в разных часовых поясах сидят, как надёжно делать backup BerkeleyDB? Работой Subversion я доволен работает хорошо через HTTPS и через любой FireWall проходит, не нужно как в CVS ssh конфигурить.

anonymous
()
Ответ на: комментарий от anonymous

> а у меня нет такого понятия 3 часа ночи, пользователи в разных
> часовых поясах сидят, как надёжно делать backup BerkeleyDB?

Точно не знаю, по идее никаких проблем при горячем бэкапе быть не должно, бэкап же - readonly операция.
Тем не менее, можно использовать svnadmin hotcopy если уж хочется наверняка - та вообще для этого и создана - и потом бэкапить копию :))

Есть русский список рассылки по Subversion, правда он в спяще-коматозном состоянии находится.
На сайте Махоткина описание того как подписываться - http://alexm.here.ru/svn-ru/maillist.html.

Dimentiy ★★
() автор топика
Ответ на: комментарий от Dimentiy

> по идее никаких проблем при горячем бэкапе быть не должно, бэкап же - readonly операция.

дык inconsistent state не боишься?:)

anonymous
()
Ответ на: комментарий от anonymous

если бэкап никогда не понадобится то действительно ничего страшного:)

anonymous
()
Ответ на: комментарий от anonymous

2 anonymous:

> дык inconsistent state не боишься?:)

Да я вообще херню написал в предыдущем сообщении :-)

Документация же прямо рекомендует использовать поставляемый в комплекте скрипт на питоне "hot-backup.py".
Он для горячего бэкапа и предназначен, типа.

Dimentiy ★★
() автор топика

По поводу прав для svnserve - используйте svn+ssh://user@domain:port/repository и проставьте unix права на папку с репозиторием - будет давать только своим.

Netspider ★★
()
Ответ на: комментарий от Netspider

> По поводу прав для svnserve - используйте
> svn+ssh://user@domain:port/repository и проставьте unix права на
> папку с репозиторием - будет давать только своим.

Одно "но" - так не проставить разные права _внутри_ репозитория.

Dimentiy ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.