Subversion’s Future?
Перевод статьи Subversion’s Future? («Что ждет Subversion?») выполнен сообществом компании «Заказные ИнформСистемы».
Согласно статистике Google Analytics, один из самых просматриваемых постов в моем блоге — это тот, который я написал годы назад — «Риски распределенного управления версиями».
Там полно сердитых комментариев о том, насколько я неправ.
Думаю, надо дополнить тот пост новостями и свежими идеями.
Итак, должен сказать, после некоторого времени использования Mercurial, я думаю, что распределенное управление версиями — штука весьма изящная.
Пока идет тестирование последней предрелизной 1.5 версии Subversion, в которой уже будут ограниченные возможности отслеживания слияний, в коллективе разработчиков Subversion присутствует некая неясность, каким же все-таки будет его будущее. Системы Mercurial и Git сейчас повсюду, и постоянно становятся все более популярными, особенно среди «20%» — разработчиков-новаторов. Какая роль у Subversion — «лучшей из лучших» централизованных систем контроля версий — в мире, где все потихоньку двигается в сторону использования децентрализованных систем?
Subversion четко выполнила задачу, которую мы поставили в 2000-м — «заменить CVS. Но останавливаться нельзя — если у Subversion не будет четких планов на будущее, то она будет заменена чем-то лучшим. Это могут быть Mercurial или Git, а может — чем-то еще. В идеале Subversion должна заменить себя сама. :-)
Итак, что бы мы заложили в «Subversion 2.0», если бы нам выпала честь его проектировать? На прошлой неделе один из наших разработчиков написал изящный e-mail, где очень хорошо обобщил возможную новую миссию. Это нужно видеть — вот неплохая аннотация:
Сейчас я бы почти наверняка не выбрал Subversion для небольшого нового open-source проекта. [...] Значит ли это, что Subversion мертва? Что нам пора сменить корабль, написать новый GUI для Git и добиться чтобы все это работало под Windows? Нет. Централизованный контроль версий все еще хорош для некоторых вещей.
- Работа над огромными проектами, где помещение всей рабочей версии исходного кода на все машины неосуществимо, уже не говоря о всей истории (однако здесь атомарные транзакции через произвольные части проекта все же требуется).
- Механизм авторизации по чтению! Клиент-серверная модель — лучшее решение, если Вы планируете не позволять давать всем все данные (Несомненно, есть теоретические пути осуществить авторизацию по чтению на распределенных системах, но это не очень-то и просто.)
Итак, что делать? Проект Subversion больше не должен тратить время на попытки улучшения применимости для небольших открытых проектов. Subversion уже подходит для этой задачи, и у других систем есть больший потенциал, чем она. Мы должны сфокусировать внимание на задаче представления Subversion как лучшего средства для организаций, чьим пользователям необходимо нетривиально взаимодействовать с репозиториями. [...] Я общался с другими разработчиками, и мы пришли к некоторым схожим личным заключениям по поводу будущего Subversion.
Во-первых, мы думаем, что это, вероятно, «последняя» централизованная система, написанная в «мире открытого кода» — и представляет «заключительную черту» для этой модели огранизации кода.
Она будет продолжать использоваться в течение многих лет, причем в корпоративном мире — с громандной популярностью, пока не проиграет (окончательно) распределенным системам в мире open-source.
У всех нас, погруженных в «open-source», действительно несколько искаженное представление о реальности. Нам кажется, что «все переключаются на Git» но когда вы смотрите на график публичных (т.е. общедоступных, не частных) серверов Subversion под Apache, обнаруженных в Инете, видно, что Subversion никоим образом не «исчезает».
Как раз наоборот: его применение в корпоративном мире все еще растет квадратично, без малейших признаков замедления. Все это происходит независимо от новаторов-опенсорсщиков, теряющих интерес к Subversion.
Subversion может, в конце концов, стать полноценно «корпоративным» open-source проектом, (то есть, вся разработка будет финансироваться корпорациями-пользователями Subversion), но это прекрасный выход для зрелого программного обеспечения.
Репликация: База Знаний «Заказных Информ Систем» → «Subversion’s Future?»
Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».