TFS для Java - плохая идея? - PullRequest
       27

TFS для Java - плохая идея?

21 голосов
/ 10 февраля 2012

Мы рассматриваем TFS для наших проектов на основе .NET и в качестве платформы управления задачами.Некоторые команды разрабатывают исключительно на Java, и они вполне довольны SVN (Subclipse).

Наши менеджеры задали следующие вопросы:

  • Должны ли мы перенести команды Java на TFSтакже?
  • Хорошо ли обрабатывает TFS (только контроль исходного кода) проекты Java?
  • Трудно ли перенести нашу базу кода Java и историю из Subclipse в TFS?

В настоящее время мы стремимся использовать TFS в качестве единственной платформы управления исходным кодом для удобства сопровождения.Мы бы хотели, чтобы наши ИТ-специалисты не поддерживали несколько систем.

Спасибо

Ответы [ 6 ]

45 голосов
/ 10 февраля 2012

Полное раскрытие, я работаю в команде, которая пишет инструментарий Java для TFS, поэтому воспринимайте этот ответ как должный уклон: -)

Что касается TFS - весь код создан равным. Это просто байты в файлах, которые проверяются для контроля версий. Как и во всех системах SCM, не важно, на каком языке записаны файлы.

Microsoft предоставляет полный, TFS-плагин для Eclipse (который называется Team Explorer Everywhere). Это обеспечивает полный контроль над исходным кодом, отслеживание рабочих элементов, сборку, совместное использование, доступ к отчетам и т. Д. В TFS из IDE на основе Eclipse. Он написан на 100% Java и напрямую связан с веб-сервисами, предоставляемыми TFS.

Кроме того, мы также предоставляем кроссплатформенный клиент командной строки для TFS , чтобы вы могли общаться с TFS из командной строки в выбранной вами операционной системе (Mac, Linux, Solaris, HP-UX). , AIX и т. Д. Все полностью поддерживается).

Наконец, если у вас есть инструменты, написанные на Java, которые хотят общаться с TFS, тогда они могут использовать TFS SDK для Java , который является полным API, который мы использовали для создания интеграции Eclipse и перекрестного взаимодействия. -платформенный клиент командной строки, но упакованный с примерами и фрагментами и готовый для повторного распространения с вашими приложениями.

Когда дело доходит до постройки, у вас есть пара вариантов. Если вы хотите придерживаться своего текущего сервера сборки, то вполне вероятно, что он уже поддерживает общение с TFS (это делают все популярные серверы сборки с открытым исходным кодом). В дополнение к этому Microsoft предоставляет Расширения сборки TFS , которые позволяют запускать сборки на основе Ant или Maven на сервере Team Foundation Build. Результаты сборки (вместе с любыми предупреждениями или ошибками) публикуются обратно в TFS вместе с любыми данными теста JUnit, если вы выполняете тесты JUnit как часть вашей сборки. Кроме того, вы можете создавать и управлять определениями сборки в Eclipse IDE и иметь одно место для управления доступом к ним и т. Д.

Итак - уровень поддержки Java очень высок, и Microsoft показала постоянные инвестиции в эту область. Недавно мы поставили несколько TFS 2010 Power Tools для Eclipse , и мы также поставляли предварительные выпуски Team Explorer Everywhere 11 вместе с Team Foundation Server 11 (мы та же команда внутри компании).

Импортировать историю из SVN - это то же самое, что импортировать историю из любого инструмента SCM в TFS (или TFS в любой инструмент SCM). У вас есть несколько вариантов. Вы можете сделать снимок и обрезать в определенной точке (например, выпуск) или вы можете перенести историю. Для переноса истории из SVN есть несколько партнерских решений, включая одно из Своевременная миграция , с которым, как я видел, многие клиенты добились успеха.

Надеюсь, это поможет.

6 голосов
/ 18 декабря 2012

После года работы над проектом Java / JVM с использованием TFS я хотел бы отговорить кого-либо от этого.Хотя TFS может считаться первоклассным разработчиком для .NET, вы не найдете разработчиков Java с таким опытом.Есть плагин для Eclipse и порт для IntelliJ, но мне повезло с обоими, хотя я предполагаю, что это в основном потому, что TFS не работает как любая другая VCS, которую я использовал.

В нашей команде мы оценили накладные расходы в 10-15% из-за TFS и вызванных этим осложнений.Дни работы были потеряны из-за того, что TFS решила перезаписать файлы, дни проблем с устранением неполадок, вызванных неполными обновлениями TFS.Мы сделали ответвление за 6 месяцев, потому что вся команда потеряла два дня в прошлый раз.Часто можно услышать фразу «Я только что обновил ваши последние изменения. Можете ли вы прийти проверить, чтобы убедиться, что в слиянии ничего не пропало?».Вместо того, чтобы использовать Jira, мы застряли, используя ужасное отслеживание проблем в TFS, вызывая еще больше проблем.

Некоторые разработчики из команды решили использовать либо git, либо автономно, либо git-мост TFS.Другие просто копируют дерево исходных текстов перед любыми «рискованными» действиями, такими как обновление или регистрация.

В любом случае, я бы не рекомендовал его для команды, которая не имеет опыта работы с ним ...

4 голосов
/ 11 февраля 2012

Мне очень нравится ответ @Martin_Woodward, но, на мой взгляд, он слишком предвзят, поэтому я добавляю свои 2 цента здесь.Мы в нашей компании находимся в похожей ситуации, и решение (на мой взгляд) зависит от контекста.Я вижу 3 разные ситуации, и решения могут быть разными в каждой из них:

  1. В основном вы разрабатываете решения .NET, а части Java интегрированы в решения .NET.
  2. Ваши .NET-решения разработаны независимо от решений Java, и они наполовину .NET, наполовину Java.
  3. Большинство ваших решений разработано на Java, и только небольшой процент разрабатывается на .NET

Я бы согласился с Мартином только в первом случае.Вы получите прибыль от общей среды разработки, управления исходным кодом, процесса сборки ... Ваши ребята из Java узнают об отличиях от TFS Source Control (у него есть имя ??).И ваше будущее будет выглядеть блестяще; -)

Если ваши .NET-решения и Java-решения независимы друг от друга, единственным аргументом в пользу использования TFS для разработки Java-решений является стоимость в эксплуатации.И вы должны внимательно посмотреть на это, если экономия на эксплуатации среды разработки только TFS перевесит дополнительные затраты на переключение ваших проектов Subversion на TFS.

В последнем случае это было бы ужасным решениемпереключаться с большим количеством людей, просто чтобы иметь общую среду для развития.Вы можете интегрировать Subversion в VisualStudio (используя, например, VisualSVN или другие плагины), и у вас почти нет инвестиций.

Миграция исходного кода, включая историю, как правило, трудна, и она зависит от источника и целиесли это работает хорошоУ нас хороший опыт работы с CSV и SVN, но нет (хорошего) опыта с другими.Но обычно это не проблема, вы можете использовать свои старые SVN-репозитории (только для чтения) и просто перенести последний этап.Через некоторое время SVN-репозитории можно оставить в покое ...

3 голосов
/ 13 февраля 2014

После 1 года работы с TFS / Java я полностью согласен с Dusty J (да, TFS / Java - это плохо) и полностью не согласен с Мартином Вудвордом по поводу великолепной поддержки Microsoft. Несмотря на то, что Eclipse TFS подходит для меня, как для разработчика, все в порядке, проблемы связаны с моими обязанностями по сборке / выпуску.

Во-первых, этот плагин Eclipse не позволяет создавать ветки для нескольких проектов одновременно, как в CVS / SVN. Нужно создать ветку отдельно для каждого проекта. Тогда мы не можем сохранить те же имена проектов в ветви - нужно изменить имя проекта и после извлечения из ветви переименовать в исходное имя. См. Также мой пост Как связать рабочее пространство Eclipse с рабочим пространством TFS? , нет способа связать рабочее пространство Eclipse с рабочим пространством TFS. Таким образом, сопоставление для локальной папки не может быть сохранено; это нужно сделать снова после открытия другого рабочего пространства Eclipse для построения веток. А поскольку локальное сопоставление одинаково, существует возможность удаления локальной папки с несохраненной работой, как писал Дасти Дж.

Это удаление локальных файлов без предупреждения - ужасная особенность TFS (см. Пост Почему команда get из командной строки в TFS удаляет параллельные проекты? ). Что Microsoft думает о возможности стирания локальных файлов в обычном режиме «Удалить локальное сопоставление» в Eclipse?

Итак, несмотря на мои усилия по изучению TFS, я все равно трачу в 10 раз больше времени на различные сборки по сравнению с CVS, который я использовал ранее.

0 голосов
/ 22 августа 2016

(Еще один предвзятый сотрудник MS)

TFS сформировала команду около 18 месяцев назад, чтобы сосредоточиться исключительно на том, чтобы сделать Java великолепным в TFS / Team Services и на всех платформах. Я в этой команде, и я думаю, что мы добились огромного прогресса. Я не соглашусь с тем, что история конца и конца была довольно плохой, когда был задан этот вопрос, но я думаю, что ответ за последний год сильно изменился.

Моя команда предоставляет задачи по сборке и развертыванию для TFS, а также плагины для Eclipse и IntelliJ, чтобы сделать сквозной опыт максимально полным. Мы также прилагаем все усилия, чтобы убедиться, что мы документируем, как извлечь максимальную пользу из TFS, если вы являетесь Java-разработчиком.

Если вы хотите получить более подробную информацию, оформить заказ http://java.visualstudio.com.

Спасибо, Джейсон Прикетт

0 голосов
/ 10 февраля 2012

Почему бы не использовать SVN для проектов .NET? Есть ли причина для этого? В Visual Studio есть несколько плагинов для SVN, а также оболочка Windows расширение .

...