Resolves an incorrect conflict resolution for a merge operation in TFS 2010 and adds two APIs that reset the check-in date in TFS 2010


INTRODUCTION


This article describes a hotfix for Microsoft Team Foundation Server (TFS) 2010. This hotfix resolves the following issue and adds a new feature.

Issue 1

Consider the following scenario:
  • You try to perform a merge operation between two branches in the Team Foundation Version Control in TFS 2010. For example, you merge the Main branch and the Development branch.
  • Some changes are merged from the Main branch to the Development branch to create the last changeset in the Development branch.
  • You change the contents of an item in the Main branch.
  • You try to merge the same item from the Development branch to a version of the Main branch that is earlier than the latest version.
In this scenario, the item from the Development branch is incorrectly copied to the Main branch. Additionally, the correct conflict and conflict resolution options are made unavailable. 

Note This issue does not occur if you perform a merge operation by using the tf.exe /conservative command.

Feature 1

This hotfix adds an object model that uses the following two APIs. You can use these APIs to write a custom migration tool to change the check-in date.
  • VersionControlServer.ResetCheckinDates method

    To call the VersionControlServer.ResetCheckinDates method, use the following syntax:
    public void ResetCheckinDates(DateTime lastCheckinDate) 

    The VersionControlServer.ResetCheckinDates method is used to reset the check-in date for all changesets in a team project collection. The lastCheckinDate parameter indicates the time that you expect to reset all existing check-in files on a TFS 2010 server.

    Note The changesets reset at the specified time to the second.

    To use the VersionControlServer.ResetCheckinDates method, you must meet the following conditions:
    • You must have AdminConfiguration permission to run the migration tool.
    • The team project collection contains fewer than 10 changesets.
    • The lastCheckinDate parameter is not earlier than the current time on the TFS 2010 server.
  • WorkspaceCheckInParameters.CheckinDate property

    This property specifies time for the check-in files that are being changed on the TFS 2010 server.

    To use the WorkspaceCheckInParameters.CheckinDate property, you must meet the following conditions:
    • You must have the CheckinOther permission for all changes that are being checked in.
    • You do not define a CheckinDate time that is earlier than the last check-in time on the team project collection or than the current time on the TFS 2010 server. 
    • The check-in date between two check-in changes is not less than 3 milliseconds. SQL Server has a precision of 3 milliseconds.

Resolution


Hotfix information

A supported hotfix is now available from Microsoft. However, it is intended to correct only the problem that is described in this article. Apply it only to systems that are experiencing this specific problem. This hotfix may receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next that contains this hotfix.

To resolve this problem immediately, contact Microsoft Customer Support Services to obtain the hotfix. For a complete list of Microsoft Customer Support Services telephone numbers and information about support costs, visit the following Microsoft website:Note In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.


Prerequisites

To apply this hotfix, you must be running the application tier of the Team Foundation Server 2010.

Restart requirement

You do not have to restart the computer after you apply this hotfix.

Hotfix replacement information

You have to restart the computer if the affected files are being used.

File information

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.

Visual Studio 2010
File nameFile versionFile sizeDateTimePlatform
Leviewer.exe10.0.30319.379117,58425-Oct-201003:16x86
Leviewer.resources.dll10.0.30319.37937,21625-Oct-201003:16x86
Microsoft.teamfoundation.admin.dll10.0.30319.37920,491,12825-Oct-201003:16x86
Microsoft.teamfoundation.build.controls.dll10.0.30319.3791,349,52025-Oct-201003:16x86
Microsoft.teamfoundation.build.jobservice.extensions.dll10.0.30319.37930,12025-Oct-201003:16x86
Microsoft.teamfoundation.build.processcomponents.dll10.0.30319.37962,88025-Oct-201003:16x86
Microsoft.teamfoundation.build.server.dll10.0.30319.379439,68825-Oct-201003:16x86
Microsoft.teamfoundation.build.workflow.dll10.0.30319.379651,15225-Oct-201003:16x86
Microsoft.teamfoundation.common.dll10.0.30319.379516,99225-Oct-201003:16x86
Microsoft.teamfoundation.configuration.commands.dll10.0.30319.379262,56025-Oct-201003:16x86
Microsoft.teamfoundation.framework.server.dll10.0.30319.3791,094,54425-Oct-201003:16x86
Microsoft.teamfoundation.jobservice.extensions.core.dll10.0.30319.37958,28025-Oct-201003:16x86
Microsoft.teamfoundation.jobservice.labmanagerjobs.dll10.0.30319.37991,04825-Oct-201003:16x86
Microsoft.teamfoundation.lab.activities.dll10.0.30319.379763,79225-Oct-201003:16x86
Microsoft.teamfoundation.lab.controller.common.dll10.0.30319.379236,44825-Oct-201003:16x86
Microsoft.teamfoundation.lab.controller.virtualmachinemanagerinterface.dll10.0.30319.37983,40825-Oct-201003:16x86
Microsoft.teamfoundation.lab.execution.dll10.0.30319.379757,12825-Oct-201003:16x86
Microsoft.teamfoundation.lab.leviewer.dll10.0.30319.379440,71225-Oct-201003:16x86
Microsoft.teamfoundation.lab.servicing.dll10.0.30319.37958,24825-Oct-201003:16x86
Microsoft.teamfoundation.lab.testintegration.server.dll10.0.30319.379145,83225-Oct-201003:16x86
Microsoft.teamfoundation.lab.uiutils.dll10.0.30319.379266,12025-Oct-201003:16x86
Microsoft.teamfoundation.lab.workflow.activities.dll10.0.30319.379436,64025-Oct-201003:16x86
Microsoft.teamfoundation.lab.workflowintegration.server.dll10.0.30319.379122,80025-Oct-201003:16x86
Microsoft.teamfoundation.management.controls.dll10.0.30319.3792,355,09625-Oct-201003:16x86
Microsoft.teamfoundation.server.deploy.tfcollection.dll10.0.30319.379480,68025-Oct-201003:16x86
Microsoft.teamfoundation.testmanagement.activities.common.dll10.0.30319.379307,12825-Oct-201003:16x86
Microsoft.teamfoundation.testmanagement.activities.dll10.0.30319.3791,509,28825-Oct-201003:16x86
Microsoft.teamfoundation.testmanagement.activityruntime.dll10.0.30319.379214,96025-Oct-201003:16x86
Microsoft.teamfoundation.testmanagement.client.dll10.0.30319.379597,40825-Oct-201003:16x86
Microsoft.teamfoundation.testmanagement.client.wpfcontrols.dll10.0.30319.379254,39225-Oct-201003:16x86
Microsoft.teamfoundation.testmanagement.clientpackage.dll10.0.30319.37972,62425-Oct-201003:16x86
Microsoft.teamfoundation.testmanagement.common.dll10.0.30319.37933,69625-Oct-201003:16x86
Microsoft.teamfoundation.testmanagement.controller.dll10.0.30319.379119,72025-Oct-201003:16x86
Microsoft.teamfoundation.testmanagement.controls.dll10.0.30319.379417,18425-Oct-201003:16x86
Microsoft.teamfoundation.testmanagement.controls.wpfworkitemcontrols.dll10.0.30319.37999,28025-Oct-201003:16x86
Microsoft.teamfoundation.versioncontrol.client.dll10.0.30319.379694,17625-Oct-201003:16x86
Microsoft.teamfoundation.versioncontrol.common.dll10.0.30319.379230,30425-Oct-201003:16x86
Microsoft.teamfoundation.versioncontrol.controls.dll10.0.30319.3794,435,87225-Oct-201003:16x86
Microsoft.teamfoundation.versioncontrol.server.dll10.0.30319.379614,81625-Oct-201003:16x86
Microsoft.teamfoundation.webaccess.controls.dll10.0.30319.379618,39225-Oct-201003:16x86
Microsoft.teamfoundation.webaccess.server.dll10.0.30319.379486,80025-Oct-201003:16x86
Microsoft.teamfoundation.webaccess.workitemtracking.dll10.0.30319.379382,37625-Oct-201003:16x86
Microsoft.teamfoundation.workitemtracking.adapter.dll10.0.30319.379284,57625-Oct-201003:16x86
Microsoft.teamfoundation.workitemtracking.server.dataaccesslayer.dll10.0.30319.379587,72025-Oct-201003:16x86
Microsoft.visualstudio.qualitytools.common.dll10.0.30319.3791,332,62425-Oct-201003:16x86
Microsoft.visualstudio.qualitytools.controllerobject.dll10.0.30319.379273,83225-Oct-201003:16x86
Microsoft.visualstudio.qualitytools.executioncommon.dll10.0.30319.379448,93625-Oct-201003:16x86
Microsoft.visualstudio.qualitytools.resource.dll10.0.30319.379958,87225-Oct-201003:16x86
Microsoft.visualstudio.qualitytools.vsip.dll10.0.30319.379349,07225-Oct-201003:16x86
Microsoft.visualstudio.testtools.datacollection.videorecorder.dll10.0.30319.37960,35225-Oct-201003:16x86
Microsoft.visualstudio.testtools.manualtest.common.dll10.0.30319.379810,40825-Oct-201003:16x86
Tfsbuildservicehost.exe10.0.30319.379190,31225-Oct-201003:16x86
Tfsconfig.exe10.0.30319.37943,34425-Oct-201003:16x86
Tfslabconfig.exe10.0.30319.379113,49625-Oct-201003:16x86
Microsoft.VisualStudio.DataCollection.VideoRecorder.dll.configNot applicable2,05515-Sep-201015:20Not applicable

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

More Information


The following code is an example of code that uses the WorkspaceCheckInParameters.CheckinDate property: 
PendingChange[] pcs = workspace.GetPendingChanges(); WorkspaceCheckInParameters param = new WorkspaceCheckInParameters(pcs, "test");             param.CheckinDate = DateTime.Parse("2001-01-01", CultureInfo.CurrentCulture, DateTimeStyles.AssumeLocal);