Subversion - метка времени изменяется, но контент не меняется - PullRequest
2 голосов
/ 05 марта 2010

Я думаю, что это трудно описать, но я попробую:

Мы используем Subversion и Buildtools. Когда мы делаем сборку из нашего проекта, конечно, несколько файлов будут перезаписаны. Таким образом, временная метка этих файлов изменяется, но содержимое может быть таким же, как и раньше.

svn diff покажет следующее для примера: - test.txt изменен - удалено 100 строк - добавлено 100 строк

Есть ли возможность заставить subversion только смотреть на содержимое файлов и игнорировать временную метку файлов?

Спасибо!

Ответы [ 4 ]

3 голосов
/ 05 марта 2010

Это не совсем отвечает на ваш вопрос, но ...

Традиционно, вам не следует добавлять сгенерированные файлы в систему управления версиями.

Вместо этого добавляются только исходные файлы, а затем файлы генерируются в месте назначения.

В некоторых ситуациях это правило может быть нарушено, но мой первый вопрос - спросить, что произойдет с вашим процессом сборки (особенно на чистой машине), если вы просто удалите соответствующие файлы из Subversion.

1 голос
/ 05 марта 2010

Если svn diff сообщает об изменениях, то содержимое файла изменило , а не только отметку времени.Это могут быть только изменения пробелов или более вероятные изменения EOL.Но они все еще являются изменениями, и Subversion правильно сообщает о них.

Вот подробное описание того, как Subversion определяет, изменился файл или нет.

0 голосов
/ 11 сентября 2014

Я думаю, что в SVN есть странная / редкая ошибка (или что-то «странное» на стороне сервера) - у меня похожая проблема (подробно до конца). Один из возможных обходных путей - использовать целевой файл-файл touch -r nououched-file после изменения временных меток (может быть, в результате сценария сборки?), Чтобы вернуть временные метки обратно к тому, что ожидает SVN.

Вот такая у меня ситуация (странная, необъяснимая и воспроизводимая): Subversion v1.6.11 и v1.8.8 на двух разных блоках Linux (ядра 2.6.32 и 3.13.0 соответственно). Выглядит как странная ошибка в SVN.

Если я коснусь отметок времени двух конкретных файлов, то SVN сообщит о файлах как измененных и отобразит разность 1: 1 (то есть каждая строка изменилась сама по себе). Большинство других файлов невосприимчивы к этому процессу (это одна «странная» часть).

Если я выдаю «touch -r original copy» (где «original» - это файл с отметкой времени извлечения исходного файла), SVN сообщает о них как об неизменном.

Если я сделаю сумму MD5, du -b, ls -l и diff между двумя временными метками файла, они будут идентичны (очевидно, кроме временных меток). Svn proplist / propget only сообщает svn: eol-style = native (это svg файлы, fwiw).

Так что в моем случае разрывы строк, безусловно, не проблема, но обработка SVN временных меток изменяется только для двух конкретных файлов - это .

0 голосов
/ 19 апреля 2013

- некоторые из ваших пользователей работают с Windows, а некоторые, например, на Linux? тогда, я думаю, вы забыли установить для свойства svn: eol-style значение «native» (см. руководство по subversion)

...