Как объяснить, что SVN должен рассматривать файл как текст, а не как двоичный файл
У меня есть ряд файлов, которые я зарегистрировал в SVN без правильной настройки их типов Mime. SVN изначально классифицировал их как двоичные.
С тех пор я установил их тип Mime в SVN через propset на "text/plain; charset=UTF-8", и я убедился, что все файлы имеют подпись UTF-8. Когда я делаю 'svn blame filename', svn говорит, что файл является двоичным и не дает мне явного вывода типа "вина".
Любые предложения о том, как убедить SVN, что это действительно текстовые файлы?
5 ответов
Установка свойства 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
У меня была та же проблема: я зарегистрировал несколько файлов 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 в этом случае, хотя это легко проверить.
Этот ответ имеет ту же идею, но в обратном направлении. Цитаты там по-прежнему актуальны для вашего запроса.
После того, как вы добавили файл в хранилище, вам, вероятно, также необходимо установить тип в хранилище. Используйте URL-адрес хранилища вместо пути к рабочей копии в вашей команде propset.
Похоже, что манипуляции с MIME-типом не убеждают SVN рассматривать файл как текст. Но если перед первым коммитом был установлен правильный mime-тип, тогда svn будет корректно обрабатывать файл. Например, svn добавляет eclipse .project и.classpath в качестве application/xml и обрабатывает их как bin. Но если перед первым коммитом вы измените его на text/xml, они будут рассматриваться как текст.