Таинственная неизменность появляется в TortoiseSVN / TortoiseMerge - PullRequest
1 голос
/ 24 октября 2009

Я использую TortoiseSVN для контроля версий. В рабочем состоянии, с которым я работал несколько недель, я внезапно вижу ряд «измененных» файлов, отображаемых в диалоге «SVN commit ..», которые я определенно не коснулся и которые не содержат любые реальные различия:

альтернативный текст http://www.pekkagaiser.de/TortoiseMerge.gif

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

РЕДАКТИРОВАТЬ: Поведение появилось снова. Черепаха требует «изменения текста», хотя их не было:

альтернативный текст http://www.stadtpflanzen.de/images/StackOverflow1.gif

альтернативный текст http://www.stadtpflanzen.de/images/StackOverflow2.gif

это вряд ли может быть концом строки, не так ли? Это не срочно, так как сейчас это происходит очень редко, но мне все еще интересно.

Редактировать: Ладно, ребята, пора разобраться. Это действительно неловко, но я узнал, что это было. На что я не указал, потому что я думал, что это не важно, так это то, что я не работал в диалоге "commit ..." Tortoise, но в "проверял наличие изменений «. Я думаю, вы можете собрать все остальное: я много переключался между IDE и Tortoise, проверяя различные файлы, и всякий раз, когда я проверял файл, not нажимал кнопку Обновить, делать что-то еще и проверять это снова, потому что я забыл, это не будет работать - но, конечно, все еще будет в списке. Спасибо за ваше время! +1 отвечаю на каждый ответ и принимаю того, кто застрял со мной дольше всех:)

Ответы [ 4 ]

3 голосов
/ 24 октября 2009

Возможно, вы использовали новую функцию отслеживания слияний в SVN 1.5+? При объединении будет добавлено / изменено свойство svn:mergeinfo для задействованных файлов, даже тех, которые не были изменены. Затем они отображаются в виде изменений, которые необходимо внести.

См. http://svnbook.red -bean.com / ru / 1.5 / svn.branchmerge.basicmerging.html # svn.branchmerge.basicmerging.mergeinfo .

2 голосов
/ 31 октября 2009

Хорошо, давайте выберем большие пушки. : -)

Извлеките файл (styles.css ревизия 40) в отдельный каталог.

Запустите программу, которая вычисляет md5 (например, md5, md5sum или openssl md5) как для вашей рабочей копии, так и для копии репозитория. Если вы получите разные ответы, файлы будут другими, и TortoiseMerge не покажет вам что-то важное. Если в итоге вы получите один и тот же ответ (пренебрегая маловероятно вероятным случаем, когда два разных, но очень похожих файла имеют два идентичных хеша md5), то файлы, очевидно, идентичны, и у TSVN есть некоторая проблема. (может быть, он смотрит на дату файла?)

edit: единственный патологический случай, который приходит мне в голову, это то, что, возможно, файл имеет другую кодировку (например, UTF-8 против ASCII) ... Я обновился с WinXP SP2 до SP3 несколько месяцев назад, и иногда я сталкиваюсь со странными вещами (очевидно, UTF-8 метки порядка байтов ), где первые несколько символов странно отображаются в текстовых редакторах.

Дайте нам знать, что вы найдете!

2 голосов
/ 24 октября 2009

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

2 голосов
/ 24 октября 2009

Окончания строк могут измениться, если в ваших текстовых файлах свойство svn:eol-style не установлено на native, и если вы только что открыли их в редакторе, то сохранили их.

Некоторые редакторы и инструменты автоматически конвертируют файлы в их собственную версию EOL (например, изменяя конец строки LF на CRLF).

Проверьте эту ссылку, чтобы получить полное описание этого имущества .

svn:eol-style должен быть установлен вручную для каждого текстового файла, поэтому есть способ сделать это автоматически по расширению файла путем редактирования файла конфигурации клиента - использовать настройки TortoiseSVN, общие настройки, редактировать файл конфигурации Subversion; или проверьте эту ссылку и найдите запись enable-auto-props.

...