Инструменты интеграции TFS: от контроля версий до контроля версий - на самом деле ничего не происходит
Я только что исследовал TFS Integration Tools, чтобы перенести весь исходный код вместе с историей с одного TFS-сервера 2010 на другой, и я столкнулся со странным поведением. Вот мои действия:
- Сервер TFS установлен локально.
- Создал две коллекции проектов и проект в каждой из них (Исходный проект и Целевой проект).
- Заполнил исходный проект несколькими файлами, сделал несколько проверок и проверок.
- Запущенные инструменты интеграции TFS.
- Создана новая конфигурация с шаблоном VersionControl.xml
- Выбранный исходный проект в качестве левого источника и целевой проект в качестве правого источника.
- Началась миграция. Все было хорошо, я мог видеть всю историю в окне прогресса.
И результат этих действий следующий - ничего не изменилось. В прямом смысле. Я ожидал, что исходный контроль проекта Target будет заполнен файлами из исходного проекта. Но оба проекта остались именно такими, какими они были.
Что мне не хватает? Что я неправильно понял в инструментах интеграции TFS?
Обновить
Вот конфиг, который был сгенерирован приложением:
<?xml version="1.0" encoding="utf-16"?>
<Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" UniqueId="cdf29df8-c74f-4339-b96f-7eb621c1cee1" FriendlyName="TFS to TFS Version Control">
<Providers>
<Provider ReferenceName="febc091f-82a2-449e-aed8-133e5896c47a" FriendlyName="TFS 2010 Migration VC Provider" />
</Providers>
<Addins />
<SessionGroup CreationTime="2011-04-28T11:24:10.9503239Z" FriendlyName="TFS to TFS Version Control" SessionGroupGUID="394da96f-b8b6-4bc1-9b72-1c6234c4b9f1" Creator="<domain>\<user_name>" SyncIntervalInSeconds="0" SyncDurationInMinutes="0">
<MigrationSources>
<MigrationSource InternalUniqueId="181ddf3d-9cdb-461a-9dba-4338cf2a02f8" FriendlyName="<server_name> (VC)" ServerIdentifier="c0a0f4e4-4a37-4a89-ba23-fbd323680786" ServerUrl="http://<server_name>:8080/tfs/sourcecollection" SourceIdentifier="SourceProject" ProviderReferenceName="febc091f-82a2-449e-aed8-133e5896c47a" EndpointSystemName="TFS">
<Settings>
<Addins />
<UserIdentityLookup />
<DefaultUserIdProperty UserIdPropertyName="DisplayName" />
</Settings>
<CustomSettings />
<StoredCredential />
</MigrationSource>
<MigrationSource InternalUniqueId="e292262f-9479-490f-b5e3-ce7e845d1468" FriendlyName="<server_name> (VC)" ServerIdentifier="f01ebcec-ea18-4933-b3fd-751740904136" ServerUrl="http://<server_name>:8080/tfs/targetcollection" SourceIdentifier="Target" ProviderReferenceName="febc091f-82a2-449e-aed8-133e5896c47a" EndpointSystemName="TFS">
<Settings>
<Addins />
<UserIdentityLookup />
<DefaultUserIdProperty UserIdPropertyName="DisplayName" />
</Settings>
<CustomSettings />
<StoredCredential />
</MigrationSource>
</MigrationSources>
<Sessions>
<Session CreationTime="2011-04-28T11:24:10.9333256Z" SessionUniqueId="4aa097f3-9a01-4924-b562-384215b4ef2f" FriendlyName="Version Control Session" LeftMigrationSourceUniqueId="181ddf3d-9cdb-461a-9dba-4338cf2a02f8" RightMigrationSourceUniqueId="e292262f-9479-490f-b5e3-ce7e845d1468" SessionType="VersionControl">
<EventSinks />
<CustomSettings>
<SettingXml />
<SettingXmlSchema />
</CustomSettings>
<Filters>
<FilterPair Neglect="false">
<FilterItem MigrationSourceUniqueId="181ddf3d-9cdb-461a-9dba-4338cf2a02f8" FilterString="$/SourceProject" />
<FilterItem MigrationSourceUniqueId="e292262f-9479-490f-b5e3-ce7e845d1468" FilterString="$/Target" />
</FilterPair>
</Filters>
</Session>
</Sessions>
<Linking>
<CustomSettings />
<LinkTypeMappings />
</Linking>
<WorkFlowType Frequency="ContinuousManual" DirectionOfFlow="Unidirectional" SyncContext="Disabled" />
<CustomSettings />
<UserIdentityMappings EnableValidation="false">
<UserIdentityLookupAddins />
</UserIdentityMappings>
<ErrorManagement>
<ErrorRouters />
<ReportingSettings />
</ErrorManagement>
</SessionGroup>
</Configuration>
2 ответа
Должен признать, что это действительно странно, но проблема решена. Я не внес никаких изменений в конфигурацию, но когда я перезапустил миграцию, все заработало - весь исходный код появился в исходном контроле проекта Target вместе с историей регистрации. Более того, я создал еще один пустой целевой проект, и миграция также работала нормально. Похоже, что проблема была вызвана временными колебаниями TFS Integration Tools.
Единственное, что обращает внимание, это то, что значение ServerIdentifier
атрибут на двух MigrationSource
Они разные, так как это развертывание на одном сервере, они должны быть одинаковыми, но не могут придумать причину, по которой это должно иметь значение, - но это единственное, что я хотел бы изменить.
Все остальное в вашем конфиге в порядке.