пятница, 6 мая 2011 г.

TFS Integration Platform

TFS Integration Platform позволяет мигрировать данные между различными системами контроля версия и системами баг-трекинга. Например, TFS Integration Platform позволяет мигрировать данные между такими системами, как TFS 2008/2010, SVN, VSS, IBM Clear Case, IBM Clear Quest, HP QualityCenter и др.


Правила переноса настраиваются в конфигурационном файле формата XML. В поставку утилиты входят заданные шаблоны миграции, которые можно использовать в простых случаях. Но  в более сложных случаях придётся править конфигурационный файл миграции, который можно сохранить и использовать повторно.


Некоторые возможности утилиты TFS Integration Platform:

1. Возможность задания поля-источника и поля-получателя. Необходимо учитывать, чтобы тип полей был совместим.
Пример:
<MappedFields>
    <MappedField LeftName="headline" RightName="System.Title" MapFromSide="Left" valueMap="" />
    <MappedField LeftName="owner" RightName="System.AssignedTo" MapFromSide="Left" valueMap="" />
    <MappedField LeftName="description" RightName="Microsoft.VSTS.TCM.ReproSteps" MapFromSide="Left" valueMap="" />
    <MappedField LeftName="actual_results" RightName="Microsoft.VSTS.CMMI.Symptom" MapFromSide="Left" valueMap="" />
</MappedFields>

2. Перенос связей между рабочими элементами. Т.е. если у вас в одной системе есть связь между двумя задачами, то эта связь сохраняется при миграции этих задач в TFS

3. Перенос имён пользователей, включая доменные учётные записи. Если рабочий элемент назначен доменной учётной записи, при миграции в TFS эта информация сохраняется. Можно задать правило, по которому при миграции какая-либо учётная запись будет заменятся на другую.

4. Агрегирование полей. При миграции можно настроить правило, по которому в одно поле будут перенесены данные из нескольких полей, разделённых заданным текстом, если это необходимо.
Пример:
<AggregatedFields>
  <FieldsAggregationGroup MapFromSide="Left" TargetFieldName="Microsoft.VSTS.TCM.SystemInfo" Format="Bug Version: {0} &#x0D; Bug Build: {1} &#x0D; Bug Module: {2} &#x0D; Bug Program: {3} &#x0D; Bug Language: {4}" >
    <SourceField Index="0" SourceFieldName="bug_module_ver" />
    <SourceField Index="1" SourceFieldName="bug_module_builld" />
    <SourceField Index="2" SourceFieldName="bug_module" />
    <SourceField Index="3" SourceFieldName="bug_program" />
    <SourceField Index="4" SourceFieldName="bug_language" />
  </FieldsAggregationGroup>
</AggregatedFields>

где тэг "&#x0D;" ставится для перехода на новую строку.

5. Перенос файлов, прикреплённых к рабочим элементам.

6. Возможно задание маппинга полей. Т.е. чтобы при миграции одно значение заменялось на другое. Например: если вы переносите из ClearQuest в TFS поле State (Состояние), вы можете настроить правило, по которому будут заменяться значения "Opened" > "Active", "Submitted" > "Proposed", "Done" > "Resolved" и т.п.
Пример:
<MappedFields>
    <MappedField LeftName="State" 
        RightName="System.State" 
        MapFromSide="Left" 
        valueMap="StateMap" />
</MappedFields>
<ValueMap name="StateMap">
    <Value LeftValue="Resolving" RightValue="Proposed" />
    <Value LeftValue="Getting_Info" RightValue="Active" />
    <Value LeftValue="Modelling" RightValue="Active" />
    <Value LeftValue="Eliminating" RightValue="Active" />
    <Value LeftValue="Testing" RightValue="Resolved" />
    <Value LeftValue="Closed" RightValue="Closed" />
    <Value LeftValue="Shipment" RightValue="Closed" />
</ValueMap>

7. Для мигрированного рабочего элемента задание для поля значения по умолчанию.
Например, вы переносите сущность Feature (из CQ) в Requirement (в TFS). Вам необходимо для созданного в TFS рабочего элемента задать значение поля Requirement Type равным Feature, делается это как показано в примере ниже.
Пример:
<MappedFields>
    <MappedField LeftName="@@MissingField@@" 
        RightName="Microsoft.VSTS.CMMI.RequirementType" 
        MapFromSide="Left" 
        valueMap="DefaultRequirementType" />
</MappedFields>
<ValueMap name="DefaultRequirementType">
    <Value LeftValue="" RightValue="Feature" />
</ValueMap>


Советую использовать эту утилиты, т.к. её возможности очень широкие.


TFS Integration Platform скачать можно здесь.


среда, 4 мая 2011 г.

Изменение имени поля в TFS

После правки типового шаблона проекта иногда требуется изменить имена полей, которые уже созданы. Например, при создании поля была опечатка. Тогда, если вы попытаетесь загрузить конфигурационный файл рабочего элемента с исправленным именем поля на сервер, появиться примерно такая ошибка:

TF212018: Work item tracking schema validation error: TF26177: The field Company.Feedback.CompletedWork cannot be renamed from 'CompanyCompletedWork' to 'CompanyCompletedWork1'.

Также, если у вас был в одной коллекции проектов были развёрнуты проекты на основе русского и английского шаблонов, могут возникнуть проблемы с отчётами. Проблема в том, что имена полей (Name) должны быть одинаковыми для соответствующих идентификаторов полей (RefName). T.е. поле с идентификатором refname=System.Title должно иметь одно имя (name), например Title, во всех проектах коллекции. В английском и русском шаблонах проектов идентификаторы одни, а имена полей разные, что недопустимо для отчётов.

Чтобы привести поле к одному виду, нужно использовать команду witadmin changefield.

Пример использования команды:
>> witadmin changefield /collection:http://tfs:8080/tfs/CollectionTFS  /n:System.State /name:"Title"
Подробнее о команде - здесь.

Для просмотра атрибутов поля перед переименованием используйте команду witadmin listfields.

Пример использования команды:
>> witadmin listfields /collection:http://tfs:8080/tfs/CollectionTFS /n:System.State
Подробнее - здесь.

вторник, 3 мая 2011 г.

SharePoint 2010 Administration Toolkit v2.0

Вышла обновлённая версия SharePoint 2010 Administration Toolkit (v. 2.0).

В новую версию входит SharePoint Diagnostic Studio. Это удобный инструмент для мониторинга за сервером SharePoint.



Перед установкой на сервере SharePoint и клиентской машине (с которой вы будете вести мониторинг) в PowerShell нужно запустить команду:
>> Enable-PSRemoting

Файл установки - здесь.
Информация из MSDN - здесь.