2011-04-28 139 views
0

我刚刚调查过TFS集成工具,将所有源代码以及历史记录从一个TFS服务器2010迁移到另一个TFS服务器,并且我遇到了一个奇怪的行为。以下是我的操作:TFS集成工具:版本控制到版本控制 - 没有真正发生

  1. 本地安装了TFS服务器。
  2. 在其中创建两个项目集合和项目(源项目和目标项目)。
  3. 填充源项目与一些文件,进行了几个签出和签入。
  4. 推出TFS集成工具。
  5. 使用模板VersionControl.xml创建新配置
  6. 选择源项目作为左源和目标项目作为正确源。
  7. 开始迁移。一切都很好,我可以在进度窗口看到所有的历史。

而这些行为的结果如下 - 没有任何改变。从字面上看。我预计目标项目的源代码控制将充满来自Source项目的文件。但两个项目都保持原样。

我错过了什么?我误解了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> 
+0

你的理解是正确的。至少目标应该与来源相同。听起来像配置是错误的和/或一些梨。你可以发布配置+日志? – 2011-04-28 10:51:45

+0

感谢您的回复。我已经用配置信息更新了这篇文章。我没有添加日志以避免垃圾邮件的丢失,但我仔细检查了它,发现既没有错误也没有警告。而且,根据日志一切正常,所有变更集都被正确转移。 – Andrei 2011-04-28 11:39:22

+0

你在一台服务器上(这是我从帖子中怀疑的)还是两台服务器(这是你的配置设置)来做这件事? – 2011-04-28 13:19:56

回答

0

我必须承认这真的很奇怪,但问题解决了。我没有对配置进行任何更改,但是当我重新执行迁移时,所有源代码都出现在Target项目源代码控制中,并附带签入历史记录。此外,我创建了另一个空白的Target项目,并且迁移工作正常。看来问题是由一些临时TFS集成工具波动引起的。

0

只有看出来的是,在两个MigrationSource价值ServerIdentifier属性的不同,如这是一个单一的服务器部署,他们应该是相同的,不能想到它应该很重要的原因 - 但它是我唯一会改变的。

你的配置中的其他一切都很好。