Я использую Visual Studio 2012 с TFS. Я пишу инструмент, который проверяет отдельную базу данных с историей TF, полученной из TFS. Тем не менее, я могу получить только MD5 из текущего файла, который я хранил локально, это дает мне неточные результаты, если я ищу файл в базе данных, но связан с более ранним набором изменений. Есть ли способ получить MD5 файла во время регистрации?
Я пишу скрипт на PHP (5.3), чтобы сделать все это, и я знаю, что есть md5_file (имя файла), или вы можете сделать md5 (file_get_contents (имя файла)), но это только для локально сохраненного файла.
*** РЕДАКТИРОВАТЬ: я нашел обходной путь, когда я использую tf history и получаю все наборы изменений для файла, я также использую tf get filename.txt; changeset #, а затем получаю md5 по ходу работы. Я не уверен, что есть более эффективный способ, но пока это работает.
Я знаю, как этого добиться с помощью TFS API. Если вы запросите ожидающие изменения в рабочей области с помощью GetPendingChanges () (или QueryPendingSets (), если вам не нужны все ожидающие изменения для рабочей области), вы получите массив объектов PendingChange. Объект PendingChange имеет довольно много свойств. Два из этих свойств значения хэш а также UploadHashValue. PendingChange.HashValue
свойство, которое получает MD5 HashValue для содержания ожидающих изменений.
Свойство HashValue является MD5 хеш контента версии против которого было внесено изменение. Это значение будет отличаться от хэша MD5 файла на диске, который вам нужно будет вычислить самостоятельно, используя MD5CryptoServiceProvider.
Более подробную информацию можно найти в этом блоге: TFS API: определение, изменился ли отредактированный файл
Других решений пока нет …