2014-01-09 2 views
1

У меня есть инструмент, который генерирует файлы C#. Я был в состоянии программно получить файл с помощью этого метода:Как использовать SDK TFS для определения того, изменился ли файл с проверкой

private static void CheckoutFile(string fileName) 
{ 
    var workspaceInfo = Workstation.Current.GetLocalWorkspaceInfo(fileName); 
    var server = new TfsTeamProjectCollection(workspaceInfo.ServerUri); 
    var workspace = workspaceInfo.GetWorkspace(server); 

    workspace.PendEdit(fileName); 
} 

Но после того, как файл был сгенерирован, я хочу, чтобы определить, есть ли там какие-либо изменения в файл, а если нет, отменить проверять, выписываться. Как это сделать с помощью TFS SDK?

ответ

2

По существу, клиенты TFS (например, tfpt uu) определяют, изменили ли вы вычеркнутый файл, сравнив хэш локального файла с хэшем элемента сервера в версии, имеющейся в вашей рабочей области ,

Для реализации этого поведения:

  1. Вычислить MD5 хеш локального файла
  2. Запрос элемент на сервере: workspace.VersionControlServer.GetItems(fileName, new WorkspaceVersionSpec(workspace), RecursionType.None)
  3. Сравним Item «s HashValue со значением, вычисленного на шаге 1 .
+0

Это именно то, что мне нужно. Операция Undo была очень интенсивной, поэтому я вместо этого решил создать временный файл и только проверить файл, если он действительно изменился. – Daryl