У меня есть несколько файлов, которые я проверил в SVN без правильной настройки их Mime-типов. SVN изначально классифицировал их как двоичные.
С тех пор я установил их Mime-тип в SVN через propset на «text / plain; charset = UTF-8», и я убедился, что все файлы подписаны UTF-8. Когда я выполняю «svn blame filename», svn говорит, что файл является двоичным и не дает мне явного вывода типа «виноват».
Есть ли предложения о том, как убедить SVN, что это действительно текстовые файлы?
Спасибо за взаимодействие! Да, propget возвращает правильный тип. Я только что сделал одно: svn propget svn: mime-type filename Вывод: text / plain; charset = UTF-8
@DWright, просто для подтверждения, svn-propset изменяет тип в локальной рабочей копии и требуется фиксация svn для типа, который нужно изменить в репозитории. Оба типа должны соответствовать и быть "дифференцированными", чтобы svn diff / svn blame мог работать.
Да, я попробовал сделать это в обратном порядке, установив для свойства значение text / plain. Похоже, не сработало.





Установка для свойства svn: mime-type просто «text / plain» помогает:
svn propset svn:mime-type text/plain build.xml
svn commit build.xml
Кроме того, вы можете заставить Subversion рассматривать файл как текст при обвинении:
svn blame file/to/blame --force
Спасибо. Флаг --force сделал то, что мне нужно. Я также пробовал использовать только «текст / обычный», но это не меняло.
Для будущих читателей: svn propset svn: mime-type text / plain build.xml
Используйте find . -name *.proto | xargs svn propset svn:mime-type text/plain, чтобы пометить весь файл proto как обычный текстовый файл:
Глобальная настройка: отредактируйте ~/.subversion/config, добавьте *.proto = svn:mime-type=text/plain одной строкой в раздел файла [auto-props].
После того, как вы добавили файл в репозиторий, вам, вероятно, также потребуется установить тип в REPOSITORY. Используйте URL-адрес репозитория вместо пути к рабочей копии в вашей команде propset.
Это неправильно (или достаточно неясно, чтобы ошибаться). Свойства Subversion фиксируются в репозитории, когда вы их регистрируете, как и любое другое изменение файла.
Похоже, манипуляции с mime-типом не убеждают svn рассматривать файл как текст. Но если перед первой фиксацией был установлен правильный mime-тип, то svn правильно обработает файл. Например, svn добавляет eclipse .project и .classpath как application / xml и обрабатывает их как bin. Но если перед первой фиксацией вы измените его на text / xml, они будут обрабатываться как текст.
У меня была та же проблема: я проверил несколько файлов utf8 (собственная кодировка для Linux), некоторые из которых были ошибочно приняты как двоичные и отображали «(bin)». Я не стал разбираться, как возникла ошибка, а проверил, что там было ...
$ svn propget svn:mime-type *
... отметил, что правильно зарегистрированные текстовые файлы вообще не имеют свойства svn: mime, и просто удалил свойство svn: mime-type из текстовых файлов, ошибочно помеченный двоичным файлом.
$ svn propdel svn:mime-type [mislabeled-text-file...]
$ svn ci -m "zap binary mime-types" [mislabeled-text-file...]
Похоже, это сработало без вредных последствий. Предостережение: я понятия не имею, как Windows будет вести себя в этом случае, хотя это легко проверить.
Возвращает ли propget правильный тип пантомимы?