Яков Сироткин ([info]yakov_sirotkin) wrote,

Интервью с [info]chemodax

Иван Жаков
Иван Жаков, технический директор VisualSVN, Apache Subversion Committer


За что вам дали Visual Studio Magazine Readers Merit Award?
По моему мнению, это результат долгосрочных инвестиций в качество нашего продукта. Под качеством я подразумеваю отсутствие багов, продуманный интерфейс и адекватную производительность. Пользователь ставит себе VisualSVN for Visual Studio и начинает им пользоваться в ежедневном режиме. Через некоторое время пользователь понимает: вау, мне действительно нравится этот продукт. Другими словами, VisualSVN — это невидимый продукт, который просто делает свое дело, при этом не претендуя на звание «самого главного плагина».


Можешь привести пример фичи VisualSVN, которая особенно нравится вашим пользователям?
Когда пользователь редактирует файлы, VisualSVN сразу подсвечивает все измененные строчки. Между изменения можно легко перемещаться. Это очень важно, потому что развивает инкрементальное отношение к коду. С какого-то момента история изменений исходного кода становится не менее важной, чем текущее состояние этого кода. Мы акцентируем внимание программиста на изменениях и даем возможность мгновенно их посмотреть.

Есть ли у вас конкуренты?
Конкурентов у нас достаточно. Кто-то практически полностью копирует наши продукты, у кого-то свой рынок. В целом у нас тут совсем не санаторий.

Планируете ли вы делать аналогичные продукты для других IDE?
Наличия функций API для загрузки плагинов в IDE не достаточно для разработки плагинов, особенно коммерческих. Это API должно быть стабильным, должны быть гарантии обратной совместимости. Более того, должна быть уверенность, что производитель IDE не передумает, не решит сам реализовать то же самое, не обанкротится, в конце концов. Да и вообще, мы стараемся делать меньше, но лучше. На данный момент наш фокус — Subversion for Windows. В частности, Subversion for Visual Studio.

Можешь рассказать о работе с Microsoft?
Microsoft, несмотря на свою репутацию, очень хорошо относится к своим партнерам. Мне доводилось с этим сталкиваться в двух качествах: и как разработчику VisualSVN, и как члену Apache Software Foundation. Например, перед выпуском Windows Server 2008 разработчиков Apache Software Foundation пригласили в Redmond (за счет Microsoft), чтобы убедиться, что у продуктов, которые выпускает ASF, не будет проблем с новой ОС. И это при том, что Apache HTTP Server является прямым конкурентом Microsoft IIS. До этого Microsoft так же приглашал разработчиков Mozilla Firefox, чтобы у Firefox не было проблем под Windows Vista.

Примерно такое же отношение и к разработчикам плагинов для Visual Studio. Несколько раз в год для разработчиков плагинов проходит developers clinic. Это даёт нам возможность пообщаться с разработчиками Visual Studio, прямо в отладчике решить какие-то проблемы, если они есть.


Как так получилось, что ты занялся системами контроля версий?
Я работал в одной достаточно известной питерской компании, исторически там использовался Visual SourceSafe. За долгие годы в компании предпринималось несколько попыток перейти на другую систему управления версиями. Но все эти попытки, к сожалению, закончились неудачей. Причиной неудач были не технические сложности, а сопротивление разработчиков. Так получилось, что в какой-то момент наш отдел перешел на Subversion. Я взял небольшой perl-вский скрипт, сконвертировал нашу базу из SourceSafe в Subversion, а системный отдел сделал для нас сервер.

Видимо этот опыт показался руководству успешным и меня пригласили перейти в системный отдел, чтобы я занялся переводом на Subversion остальных отделов. Какое-то время я потратил на правильную настройку сервера, организацию бэкапа, разработку процедур для системных администраторов для разных ситуаций, доработку скрипта для конвертации из SourceSafe в Subversion. Это была длительная, но относительно простая фаза проекта. Самым сложной частью проекта оказалось убеждение людей. Я ходил по отделам и рассказывал ведущим разработчикам про преимущества Subversion. Объяснял им, как Subversion может удовлетворить их потребности и почему он сделает это лучше чем SourceSafe. И так получилось, что в одном из отделов мне указали на реальный баг в Subversion. На тот момент я искренне удивился, что в нём есть такие серьезные ошибки! Я начал посылать патчи, чтобы исправить эту ошибку. Через некоторое время мне дали commit access и я стал Subversion Full Committer.

Забавно, что через несколько лет упомянутая питерская компания независимо от меня перешла на использование VisualSVN Server! Наверное, потому что VisualSVN Server делает все настройки, на которые я потратил полгода, прямо из коробки.

VisualSVN Server — это популярный продукт?
Я сам удивляюсь насколько. Иногда мне кажется, что VisualSVN Server стоит в каждой кофеварке. Например, мы недавно подсчитали, что сервер был скачан более 800 тысяч раз. Это конечно не Angry Birds, но для серверного продукта это очень много.

А кто пользуется VisualSVN Server?
На удивление, пользователи VisualSVN Server очень разные: от банков, нефтяных компаний и правительственных организаций до студентов которые ставят VisualSVN Server на свой домашний компьютер, чтобы совместно со своим однокурсником разрабатывать дипломный проект. VisualSVN Server сейчас используется для хранения очень разной информации: от исходных текстов до конфиденциальных документов.

Не планируете ли вы продавать VisualSVN Server как сервис?
VisualSVN Server удобнее хостингового решения — во внутренней сети он будет ближе к пользователям и интеграция с Active Directory позволит работать с Subversion без ввода пароля. Хостинг — это скорее администрирование, а это не наша специализация. Мы занимаемся разработкой программного обеспечения.

А почему ты решил заняться Subversion, а не какой-нибудь другой системой контроля версий?
Текущий девиз Subversion звучит так: Enterprise-class centralized version control for the masses. И этот девиз соответствует состоянию продукта и планам по его развитию. Subversion — это очень качественный продукт, который идеально подходит большинству компаний. Исходный код всех проектов Apache Software Foundation хранится под управлением Subversion. Возможно, некоторым проектам ASF больше подошла бы какая-нибудь другая система контроля версий. Но Subversion — это единственная система контроля версий которая подходит всем проектам.

И когда идет речь о корпоративном использовании, когда одна система должна удовлетворять очень широкий спектр потребностей, Subversion оказывается вне конкуренции. Конечно, у Subversion есть альтернативы, например Perforce. Но Perforce это закрытый коммерческий продукт, у которого, кстати, совсем другая стоимость владения.

Плюс система контроля версий, это не просто exe. Для современной системы контроля версий важна развитая экосистема. Должны быть клиенты для всех операционных систем, должна быть интеграция в разные IDE, должна быть поддержка со стороны систем непрерывной интеграции и баг-треккеров. Благодаря Apache-вской BSD-style лицензии у Subversion очень развитая экосистема. Потому что лицензия Subversion позволяет разрабатывать коммерческие продукты без риска быть распятым GPL-фанатиками.

Можем ли мы сейчас ждать чего-то нового от Subversion?
Я думаю, что в следующем релизе будет наконец-то решена одна из последних фундаментальных проблем Subversion, связанная с обработкой переименований файлов и папок во время слияния веток. Это очень нетривиальная проблема, но сейчас идет активная работа по её решению. Потом, возможно, в каком-то виде появятся offline-коммиты. Но при этом совершенно точно можно сказать, что из Subversion не будут пытаться сделать распределенную систему контроля версий.

А преимущества есть какие-нибудь у Subversion по сравнению с git?
Вообще — вся эта история с Git тянет на звание IT-аферы века. Git это пример очень классного PR, который мало соответствует реальности. Я искренне восхищаюсь талантом Торвальдса как маркетолога и оратора. Но с технической точки зрения, Subversion и Git нельзя сравнивать. Subversion — это совсем другая глубина технической проработанности продукта и управляемости проекта.

Например в Git вообще нет операции переименования файлов и директорий. А для создания ощущения, что все в порядке, используют эвристический алгоритм по анализу содержимого файлов. Это работает для простых ситуаций, но может приводить к проблемам при реальном использовании.

Теперь становится понятно, почему Sun не стал использовать git для Java в своё время. Можешь сказать пару слов о Mercurial?
Я не эксперт по Mercurial, но могу сказать, что технически в нем есть несколько хороших идей. Если бы я выбирал распределенную систему управления версиями, то я бы скорее всего выбрал Mercurial, хотя и он под GPL.

Вы набираете?
Да, но в отношении сотрудников мы следуем принципу «лучше меньше, да лучше».
Tags: eggsandbrains, it

  • Post a new comment

    Error

    Your reply will be screened

    Your IP address will be recorded 

  • 69 comments

[info]kotikbegemotik

November 15 2011, 12:15:13 UTC 6 months ago

Я работал в одной достаточно известной питерской компании, исторически там использовался Visual SourceSafe. За долгие годы в компании предпринималось несколько попыток перейти на другую систему управления версиями. Но все эти попытки, к сожалению, закончились неудачей. Причиной неудач были не технические сложности, а сопротивление разработчиков.
Ужс та какой, TFS кроме интеграции в IDE ничего полезного не несет, а тут еще за Visual SourceSafe цепляться.

[info]jakobz

November 15 2011, 12:16:50 UTC 6 months ago

VSS - это кромешный ад. Я бы предпочел патчи по почте кидать, чем юзать VSS.

[info]jakobz

6 months ago

[info]jakobz

6 months ago

[info]cryinstone

November 15 2011, 21:18:21 UTC 6 months ago

ТFS - медленное по определению (архитектура) чудовище.

[info]cryinstone

6 months ago

[info]jakobz

November 15 2011, 12:15:21 UTC 6 months ago

>Subversion и Git нельзя сравнивать. Subversion — это совсем другая глубина технической проработанности продукта и управляемости проекта.

Ну, одну не очень популярную операционную систему GIT хостит вполне успешно.

[info]avnik

November 15 2011, 13:18:17 UTC 6 months ago

Я в этом месте не удержалс, заржал в голос.

[info]fkng_stupid_lj

November 15 2011, 12:53:50 UTC 6 months ago

Мне нравится вот это сочетание ответов:

Например в Git вообще нет операции переименования файлов и директорий. А для создания ощущения, что все в порядке, используют эвристический алгоритм по анализу содержимого файлов. Это работает для простых ситуаций, но может приводить к проблемам при реальном использовании.

Я думаю, что в следующем релизе будет наконец-то решена одна из последних фундаментальных проблем Subversion, связанная с обработкой переименований файлов и папок во время слияния веток. Это очень нетривиальная проблема, но сейчас идет активная работа по её решению.

[info]krlz

November 15 2011, 13:20:50 UTC 6 months ago

Вообще — вся эта история с Git тянет на звание IT-аферы века. Git это пример очень классного PR, который мало соответствует реальности. Я искренне восхищаюсь талантом Торвальдса как маркетолога и оратора. Но с технической точки зрения, Subversion и Git нельзя сравнивать. Subversion — это совсем другая глубина технической проработанности продукта и управляемости проекта.
По моему чушь собачья. Я пользовался svn несколько лет, и после перехода на git моя жизнь стала намного лучше. Никаких медленных апдейтов, и ожиданий пока история вытащится с сервера, итд итп. Понятно, что у автора бизнес построен на svn, но даже при рекламе своего продукта не стоит настолько наглеть :) Кстати, без git, svn вряд ли стал бы шевелиться, чтобы исправить существующие проблемы...

[info]jakobz

November 15 2011, 13:40:09 UTC 6 months ago

Все-таки SVN пока ловчее в кровавом энтерпрайзе. Во-первых там рулит "trunk me tender, trunk me sweet", бранчи не сильно юзаются. Во-вторых тулсет, тот же tortoise SVN, всем понятен.

Но вот с технической стороны - не знаю как там у GIT, а у нас с SVN дичайшие тормоза, порчи репозитория при обрыве связи и прочие веселые вещи.

И да, переименование в SVN работает через жопу. Например если один файл поменял, а другой его переименовал, то это уже не смерджится автоматически.

[info]krlz

November 15 2011, 14:25:42 UTC 6 months ago

Ну вот у нас тоже кровавый энтерпрайз, и у нас практически все проекты на git. Кстати, брэнчи в гите настолько легковесные, что ими пользуются все подряд и постоянно. В svn все это через задницу.

Дада, тормоза и порча репозитории мне очень знакомы, в git такого не было ни разу.

[info]krlz

6 months ago

[info]krlz

6 months ago

[info]jakobz

6 months ago

[info]jakobz

6 months ago

[info]23derevo

6 months ago

[info]msh

6 months ago

[info]23derevo

6 months ago

[info]23derevo

6 months ago

[info]alll

November 15 2011, 15:06:31 UTC 6 months ago

> без git, svn вряд ли стал бы шевелиться, чтобы исправить существующие проблемы...

Ну так в том-то и суть "аферы века"! :)))

[info]dreamx_max

November 15 2011, 18:43:28 UTC 6 months ago

Я честно рад за продукт который популярен и все такое, сам не пользовался и в будущем не предвидеться (но сходил по смотрел что это такое). Но извините конечно, "хотя и он под GPL" вот такие выражения у меня отбивают все желание пользоваться, такие выражения от автора убивают весь интерес к продукту.

[info]dreamx_max

November 15 2011, 18:57:36 UTC 6 months ago

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

[info]jakobz

November 15 2011, 19:03:43 UTC 6 months ago

Вот, кстати, прикол с SVN, на который я неоднократно напарывался. Возможно в новой версии вылечили.

Берем код. Рвется соединение. Берем еще раз. Получаем свежий с точки зрения SVN репозиторий, но с некоторыми файлами от старой версии. SVN показывает что версия новая, update, revert, cleanup и прочее не делают ничего. А файл лежит старый. И код не собирается.

Полная жесть, можно легко убить пару рабочих дней, если не знать.

[info]msh

November 16 2011, 01:58:57 UTC 6 months ago

Мне кажется, что пора все-таки уже менять message. Честно и прямо сказать, что svn это такая legacy system и вот вам удобные tools, чтобы пока вы еще не перешли на что-нибудь современное типа git, все равно смогли бы использовать IDE.

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

[info]yakov_sirotkin

November 16 2011, 04:15:11 UTC 6 months ago

Я вот за всю программистскую карьеру ни одного многодневного merge не видел. То есть я точно что-то делаю не так:)

[info]msh

6 months ago

[info]msh

6 months ago

Anonymous

6 months ago

[info]_ok_

6 months ago

[info]_ok_

6 months ago

[info]Anatoly Lyutin

November 16 2011, 12:28:57 UTC 6 months ago

+1

По мне svn это 100% легаси, и оно используется по трём причинам :
1. Мы ничего не знаем кроме svn, а svn по сравнению с cvs благо, и поэтому будем пользоваться тем, что есть.
2. git - это ок, но программистов, которые умеют git у нас 3%, обучать их нет времени и т.д и т.п. А ещё у нас наш svn обкидан over 9000 скриптов на python, bash, java и перетаскивать это всё хозяйство на git нет никакой воли.
3. У нас нет кучи разработчиков и отделов в разных концах света, а есть 3 супер-программиста, которых устраивает svn.

[info]kaineer

November 16 2011, 03:59:20 UTC 6 months ago

> Например в Git вообще нет операции переименования файлов и директорий.
А мужики-то и не знают, и всё ещё пользуются "git mv".
Вот только что командой пользовался, а её, на самом деле - нет.

[info]Anatoly Borodin

November 16 2011, 05:42:28 UTC 6 months ago

Насколько я понимаю, git mv даёт тот же результат, что mv/git add/git add -u.

[info]zebooka

November 16 2011, 13:43:23 UTC 6 months ago

Бгг. Напоминает маркетоложство Микрософта с их виндовсами.
Гит гораздо удобнее и быстрее SVNа. Только кто считает иначе - либо не умеет пользоваться гитом, либо не в себе.

[info]zebooka

November 16 2011, 13:49:50 UTC 6 months ago

Кстати.

Например в Git вообще нет операции переименования файлов и директорий. А для создания ощущения, что все в порядке, используют эвристический алгоритм по анализу содержимого файлов. Это работает для простых ситуаций, но может приводить к проблемам при реальном использовании.

К каким проблемам? :)

[info]longbow_core

November 16 2011, 17:26:29 UTC 6 months ago

Странно что тут про bazaar никто ничего не написал.

[info]alexclear

November 18 2011, 04:23:43 UTC 6 months ago

Ну, если уж писать в Visual Studio, то отчего бы не пользоваться VisualSVN.
Только зачем этим заниматься в конце 2011 года?

[info]dmzlj

November 18 2011, 05:01:41 UTC 6 months ago

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

Если не нравится именно git, есть и другие: hg, fossil, bazaar. Последние два должны понравится трепетным корпоративным энтерпрайзным созданиям, т.к. очень простые, можно даже среди военных использовать.

Распределенные системы могут все, что централизованные + кое-что еще. Обратное --- неверно.

[info]yakov_sirotkin

November 18 2011, 06:45:24 UTC 6 months ago

С++ может гораздо больше Java, однако пишут на нём далеко не все.

[info]dmzlj

6 months ago

[info]aquary.ya.ru

December 2 2011, 05:54:02 UTC 5 months ago

Занятное интервью, спасибо. Много неоднозначного, особенно в том, что касается оценок распределённых систем. Я сам поклонник централизованной модели, но аргументация Ивана несколько хромает, увы.

Перепостил у себя в SCM-блоге с комментариями, если не возражаете :)
http://scm-notes.blogspot.com/2011/12/visualsvn.html
Create an Account
Forgot your login or password?
Facebook Twitter More login options
English • Español • Deutsch • Русский…