subversion / круиз-контроль / nant / nunit с проектами и решениями Visual Studio

Я работаю в команде из 2 разработчиков, и в настоящее время мы используем VSS, и у нас нет непрерывной интеграции, ежедневной сборки и нескольких модульных тестов.

Я хочу изменить систему управления версиями на Subversion и в то же время приступить к более профессиональному процессу.

Subversion / круиз-контроль / nant / nunit кажется довольно популярной комбинацией из того, что я видел до сих пор, и я только что установил их на запасную машину.

Я загрузил руководство по Subversion, и это 400 страниц только для одного из инструментов!

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

Знает ли кто-нибудь о какой-либо книге / учебнике / пошаговом руководстве, которое охватывает только самое необходимое, чтобы я мог как можно скорее приступить к работе с этой конкретной комбинацией инструментов?


person Martin Smith    schedule 03.03.2009    source источник


Ответы (5)


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

Черепаха тоже мой любимый клиент. Фактически, на большинстве машин это единственный компонент подрывной деятельности, который мне нужен. Он выполняет все функции, которые я обычно использую, включая создание репозитория. Хотя это не удар по обычным инструментам командной строки, и я устанавливаю и их в большинстве случаев, я нахожу только инструменты cli, необходимые для автоматизации из скриптов и (нечасто) функций обслуживания репозитория.

Я нахожусь в процессе перестройки нашей собственной среды сборки на работе, поэтому я просматриваю варианты для множества инструментов сборки / разработки. Вот инструменты, которые я могу порекомендовать или получить хорошие рекомендации от других:

WinMerge: настоятельно рекомендуется бесплатный инструмент сравнения, устанавливаемый после TortoiseSVN для лучшей интеграции. Я использую этот инструмент ежедневно для многих целей, некоторые из которых выходят за рамки разработки.

TeamCity: CI-сервер, который выглядит хорошо отполированным. Я еще не пробовал этот, но он лидирует по сравнению с CC.NET, учитывая мой опыт работы с CC.NET (год) и хорошие отзывы, которые он получает. Хадсон - еще один хорошо изученный вариант.

VisualSVN Server: рекомендуемый бесплатный http (s) сервер для SVN с интеграцией AD для разрешений и консолью msc в стиле Microsoft. Я только что закончил внедрять его на работе, и это очень просто. Обязательно, если вы хотите удаленную (IP) регистрацию / выезд, SSL-шифрование, скрипты репозитория и другие серверные функции.

VisualSVN: хорошо проверенный плагин Visual Studio для SVN. Не пробовал, но покупка считается простой. [Изменить: согласно тому, что я читал здесь о переполнении, AnkhSVN - это бесплатный вариант, который работает примерно так же.]

SVN-Monitor: рекомендуемое бесплатное программное обеспечение для мониторинга, которое предупреждает вас об изменениях в репозитории. Настраиваемый в отношении того, что он отслеживает, и действий, которые он выполняет. Зависит от установленного TortoiseSVN.

BugTracker.NET: рекомендуется бесплатный сервер отслеживания проблем. Включает интеграцию SVN для привязки отслеживаемых проблем к исправленным версиям. Не уверен, есть ли в TeamCity аналогичная функция, но мы уже используем ее вне разработки для отслеживания проблем службы поддержки, и это отлично подходит для бесплатного пакета.

У меня нет опыта работы с модульным тестированием, покрытием, инструментами документации для .NET, поэтому я не могу здесь комментировать.

Тем не менее, я Pythonista, поэтому я добавлю одну вещь, которую Python может быть полезен для SVN, а именно то, что вы можете использовать библиотеку PySVN для выполнения любой работы с автоматическим репозиторием, которая слишком сложна для написания сценариев с помощью инструментов командной строки. Я использую его для создания тегов, когда сборка готова к тегированию и развертыванию.

Выберите некоторые из этих инструментов, и вы будете впереди всех. Развивать процессы вокруг себя и обучать персонал - ну, это все еще ваша работа. :)

person Binary Phile    schedule 08.03.2009
comment
Я бы рекомендовал использовать трехсторонний инструмент сравнения с WinMerge, который может отображать только различия между двумя версиями файла (а не изменения файлов по сравнению с исходной версией). Мой личный фаворит - SourceGear DiffMerge (бесплатная загрузка). - person Bert Huijben; 09.04.2009
comment
Спасибо за развернутый ответ! - person Martin Smith; 21.04.2009

Я записал видео, иллюстрирующее все основы, включая настройку SubVersion, CruiseControl.NET. Я даже проиллюстрировал сломанную сборку. Используемый инструмент разработки был Delphi, но легко мог быть VS.NET.

person Steve    schedule 08.04.2009
comment
Я только начинаю узнавать о CI, видел ваш пост, видел видео, и это было очень полезно. Было бы здорово, если бы вы обрисовали в общих чертах некоторые минимальные требования к серверу (похоже, вы использовали машину разработчика), но я смогу разобраться в этом. Хорошая работа! - person Dave; 17.03.2010

Если вы хотите настроить сервер Subversion и запустить его как можно скорее, не зная подробностей о репо, попробуйте Visual SVN здесь. Это приложение с графическим интерфейсом, которое позволяет настраивать репозитории без необходимости читать много документации. Об этом также можно прочитать здесь.

Что касается интеграции с CC.NET, поищите документацию CC.NET по блоку управления Subversion здесь, они довольно хорошо разбили его на своем сайте, и вы сможете довольно легко найти теги xml для svn.

Вам также следует проверить реализацию инструментов на стороне клиента, таких как Tortoise SVN и Ankh SVN.

Что касается NANT, посмотрите эти димкасты здесь. Отличные руководства о том, как эффективно использовать nant.

person Joseph    schedule 03.03.2009
comment
Я бы рекомендовал Ankh SVN 2.0 вместо Visual SVN. Это не только бесплатно (в обоих смыслах), Ankh использует API Microsoft для управления версиями, тогда как Visual SVN взламывает вещи вместе с надстройкой. Если вы хотите увидеть разницу, попробуйте переименовать файлы. - person Darcy Casselman; 03.03.2009
comment
Я согласен, я только предлагал использовать Visual SVN в качестве своего рода менеджера репозитория. Создание, удаление, добавление безопасности пользователей, групп и т. Д. Я не знал, что у Ankh SVN 2.0 есть такая функциональность? - person Joseph; 03.03.2009
comment
Спасибо, Джозеф. Я проверю это :-) - person Martin Smith; 03.03.2009

Поскольку у вас есть опыт работы с VSS, взгляните на SourceGear Vault и SourceGear Fortress. Если они будут делать то, что вы хотите, им будет легче учиться, поскольку они созданы для людей с мышлением VSS.

Я думаю, они могут быть бесплатными даже для небольших команд.

(Вы все равно захотите использовать nUnit для тестирования, однако я бы сначала разобрался с контролем исходного кода и непрерывной интеграцией.)

Если вы выберете Subversion, вы обнаружите, что она очень стабильна и более чем способна удовлетворить потребности большинства команд. Взгляните на TortoiseSVN, чтобы получить простой интерфейс поверх Subversion.

person Ian Ringrose    schedule 03.03.2009
comment
Спасибо, я читал хорошие вещи о Subversion и не возражаю против того, чтобы избавиться от образа мыслей о VSS :-) Я понимаю вашу точку зрения о том, чтобы сначала отсортировать SCC и непрерывную интеграцию, но я просто уточнял, что моя идеальная книга будет охватывать на этом этапе. Этой книги, конечно, может не быть! - person Martin Smith; 03.03.2009

Вероятно, это не поможет решить данный вопрос, но ...

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

person Jason Punyon    schedule 03.03.2009
comment
Я понимаю вашу точку зрения, но предполагаю, что все еще существуют общие сценарии / шаблоны интеграции? Возможно, я слишком оптимистичен, что найду один ресурс, который как раз случайно описывает именно эту комбинацию! - person Martin Smith; 03.03.2009