2010-01-20 2 views
4

Мы используем MS Visual Studio 2008.TFS совершает неизмененные файлы

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

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

  • Я проверить XML-или текстовый файл
  • Я скопировать содержимое
  • я открываю блокнот и вставьте
  • Я сохранить файл с тем же именем, и подтвердить перезапись
  • предаю : TFS по умолчанию выбирает файл для совершения

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

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

Заранее благодарен!
Jan

ответ

6

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

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

+0

Фактический набор изменений действительно не включает файл. Меня смутило то, что файл был отмечен в списке ожидающих изменений. – jan

5

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

TFPT.exe ии/г

ОУУА является Undo Неизменным и/г рекурсивный флаг. Посмотрите здесь: http://blogs.msdn.com/buckh/archive/2005/11/16/493401.aspx

+3

Создание приложения с именем PowerToys для исправления ошибок и отсутствующих функций, M $ гений. – Serkan

2

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

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

Сценарий генерации XML может проявлять одну или несколько одинаковых проблем. Это может также зависеть от особенностей, характерных для сериализации XML, например, для записи одних и тех же объектов в другом порядке.

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

+0

Я хотел бы отметить ваш ответ так же, как принято. См. Мой комментарий к ответу. Я понимаю, что copy-paste действительно может ввести «невидимые» изменения. Не могли бы вы указать мне информацию об исключении слияния? Я не совсем понял это. Спасибо! – jan

+0

Простой пример: вы объединяете BranchA -> BranchB, но, проходя через конфликты, вы решаете, что хотите сохранить BranchB \ foo.cs так, как есть. Он сохранит ожидающее изменение «слияния» (против более общего «слияния, редактирования») и станет частью истории изменений. В результате, если вы выполните другое слияние из A -> B, TFS знает, чтобы пропустить BranchA \ foo.cs (если только не были сделаны последующие изменения). /// Есть и другие случаи, когда вы увидите нечто подобное, но основная идея такая же. –

Смежные вопросы