Team Foundation Server
Я выложил тут полную инструкцию по его установке. Устанавливается он интресно - как надстройка на ReportServer'ом и SharePoint'ом. Но после установки предстваляет собой Web-службу, которая хранит все копии исходных текстов в SQL-сервере в двух конфигурационных базах SharePoint'а и семи собственных базах:
- STS_Config_TFS
- STS_Content_TFS
- TfsActivityLogging
- TfsBuild
- TfsIntegration
- TfsVersionControl - эта самая большая база. В ней хранятся собственно все исходные тексты.
- TFSWarehouse
- TfsWorkItemTracking
- TfsWorkItemTrackingAttachments
Исполняемые файлы TEAM расположен в нескольких WIN-папках:
- Папка с провайдером - MSSCCI Provider. Этот провайдер устанавливается в IDE как средство контроля кода.
- В папке C:\Program Files\Microsoft Visual Studio 8\Common7\IDE появляется утилита TF.EXE. При вызове этой утилиты без параметров открывается справочная система, причем сразу на разделе, посвященном TFS.
- В папке C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server располагается собственно исполняемые библиотеки сервиса и инструменты для администрирования TFS.
В VS2005 появляется несколько дополнительных возможностей, которые полностью интегрированы в VS2005. Это прежде всего возможность получить любую старую версию любого своего кода:
Или сразу же сравнить текущую версию любого кода с версией на любую дату или номер изменений:
Кроме описанных выше возможностей отката кода до любой точки и получения отчета о любых изменениях, можно вести контроль версий любых дисковых файлов и папок. Кроме того, есть как бы неполное (отложенное - Shelve) зачекивание кода и возможность ветвления кода.
Еще в качестве плюса TEAM относительно SS я бы также отметил возможность писать комментарии к каждому зачекиванию кода, что мне представляется чрезвычайно полезным для идентификации ChangeSet'а, особенно, когда фрагментрано исправляешь ошибки (и ненароком вносишь другие). В качестве недостатка я бы отметил, что он не позволяет делать ГЛАВНОГО, для чего был по идее создан - создавать СОГЛАСОВАННЫЙ комплект процедур и исходных текстов. Те это как бы возможно по идее сделать, если только забекапить базу и зачекивать бекап - но это ж просто маразм. В огромной базе меняется два-три флажка и соответствующие этому исходные коды. Допустим код можно откатить на любую метку, но вель надо же откатить и процедуры (и данные и структуру базы) НА ТУ ЖЕ САМУЮ МЕТКУ!!! А этого-то сделать и нельзя но, зато есть куча всяких отчетов, подписей начальников при прохождении Code-Review, разграничение полномочий и прочие фишки, которыми наверное пользуются только в самом MS...
SQL-код вообще невозможно зачекивать из SMSMS или VS2005 из эксплорера проекта, а делать для каждой отдельной процедуры отдельный текстовый файлик - и чекить его? Более неудобную идею и придумать-то трудно... А практически надо ж чекить не только процедуры. А сборки как чекить? А отношения целостности? А справочники? А настройки базы типа AtithAbort, TrustWorthy или Collate?
Для папок нет возможности сделать в Team Explorer даже Refresh. И каким образом можно понять какие же файлы добавлены в папку? Вообще при контроле версий по папкам можно подменить файлы и TEAM не видит этого. Между тем это элементарная задачка - посмотреть контрольную сумму файла. Тем более база-то файлов уже ведется. Просто докрутить туда одно поле с контрольной суммой и тогда появится возможность сделать Refresh...
Ну и других недостатков просто миллион - что трудно, например, было сделать подсветку исходного кода при сравнении? Это же тоже всего несколько строчек.Чуствуется, что до ума это решение все-таки пока еще не дведено.
Несмотря на множество недостатков, в принципе Team - вполне рабостоспобное и решение. Однако временами он еще и сбоит. Какой-то диагностики по типу диагностики контроллеров домена для него не предусмотрено. Хотя система большая и многоуровневая и если она где-то упала - никогда не найдешь, из-за чего именно - то ли права на какую-то учетную запись изменились, то-ли какая-то настройка в какой-то базе...
Эта его нестабильность (наряду с отсутствием диагностики) несколько огорчает и заставляет задуматься над альтернативными решениями. Функциональность его тоже огорчает - лично мне было бы гораздо нужнее не возможности получения отчетов по проекту или вообще возможности Шарпоинта как CMS веб-узла проекта, а уж тем более НЕ многочисленные изыски по поводу технологии программирования - мне бы все-таки согласованность SQL-базы и VB-кода была бы нужнее. И решреш физических фолдеров в Теам-эксплорере, прямое зачекивание процедур в SMSMS и многие другие практически востребованные вещи...
Насколько я понимаю, лучшее из альтернативных решений - Subversion + клиент для него. Еще пару сбоев Team и я наверное окончательно откажусь от него и начну экспериментировать с Subversion. Хотя... хм, вот таких привычных отчетов от SUBVERSION, как я понимаю, не получишь.
|