TFS фиксирует неизмененные файлы - PullRequest
4 голосов
/ 20 января 2010

Мы используем MS Visual Studio 2008.

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

Можно ли сделать тест TFS только по имени файла и содержимому?

  • Я проверяю xml или txt файл
  • Копирую содержимое
  • Я открываю блокнот и вставляю
  • Я сохраняю файл под тем же именем и подтверждаю перезапись
  • Я фиксирую: TFS по умолчанию выбирает файл для фиксации

Хотя название и содержание не изменились.

Наш конкретный вариант использования:
Мы каждый вечер запускаем скрипт, который генерирует XML-файлы (перезаписывает существующие файлы) и фиксирует их. Мы хотели бы передать только те, которые действительно изменились, чтобы сохранить историю в чистоте.

Заранее спасибо!
Jan

Ответы [ 3 ]

6 голосов
/ 20 января 2010

Когда вы на самом деле выполняете возврат файла, взгляните на набор изменений, который фактически создается в представлении истории. Обычно TFS проверяет содержимое выгруженных файлов и включает файл в набор изменений только в том случае, если хэш MD5 файла отличается от последней версии, которая была в управлении версиями.

Разве это не то, что вы видите? У вас есть несколько версий одного и того же файла, которые идентичны по содержанию? Если так - какое расширение имеют файлы? .XML или что-то еще?

5 голосов
/ 20 января 2010

Посмотрите на сценарии tfpt. Я думаю, что вы ищете следующее:

TFPT.exe uu / r

UU отменен, а / r - рекурсивный флаг. Посмотрите здесь: http://blogs.msdn.com/buckh/archive/2005/11/16/493401.aspx

2 голосов
/ 20 января 2010

Как сказал Мартин, MD5 должен быть единственным, что имеет значение. * Копирование / вставка текста в блокнот не обязательно является запретом. Общие различия, которые я видел:

  • 8-битная кодовая страница -> UTF8 или наоборот
  • обычный UTF8 -> UTF8 с спецификацией или наоборот
  • завершающий символ новой строки -> нет завершающего символа новой строки или наоборот

Ваш скрипт генерации XML может иметь одну или несколько одинаковых проблем. На это также могут влиять вещи, специфичные для сериализации XML, например, написание одних и тех же объектов в другом порядке.

* Исключение: если ожидающие изменения элемента включают «слияние», то оно всегда будет отображаться в истории - независимо от содержимого - так что отслеживание слияния будет синхронизировано.

...