LINUX.ORG.RU

Гит считает текстовый файл бинарным

 


0

2

Вот что делал: добавил файл, внес в этот файл изменения (добавил новую строку)

git commit -a -m 'fix'
[master a405d40] fix
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 mql5/export.mq5
dmitry@dmitry-home:~/web/trading/trading$ git diff
diff --git a/mql5/export.mq5 b/mql5/export.mq5
index dc15301..e8fee63 100644
Binary files a/mql5/export.mq5 and b/mql5/export.mq5 differ

Чтобы такого эффекта не было, создал файл .gitattribute с таким содержимым:

*.mql utf16 diff merge -crlf

http://yadi.sk/d/7WzVRvkHMVpna — сам файл

Этот файл был создан в среде MetaTrader 5

Что нужно сделать, чтобы гит считал файлы не бинарными, а текстовыми?

★★

Последнее исправление: dicos (всего исправлений: 1)

ты сам-то в тот файл заглядывал?

anonymous
()
Ответ на: комментарий от dicos

значит ты не тот файл выложил на яндекс, у нас, анонимусов, в файле бинарный мусор

anonymous
()
pinkbyte@phantom ~ $ cat ~/Desktop/export.mq5 

 pinkbyte@phantom ~ $ hexdump ~/Desktop/export.mq5 
0000000 000d 000a 0020                         
0000006

Эм.... шо?

Pinkbyte ★★★★★
()

я бы для начала заменил *.mql на *.mq5 а потом уже пробовал проверять файл на бинарность

mm3 ★★★
()
Ответ на: комментарий от tailgunner

Не получилось

В каталоге создал 2 файла:

.gitattributes с таким содержимым:

*.mq5 utf16

.gitconfig с таким содержимым:

[filter "utf16"]
    clean = iconv -f utf-16le -t utf-8
    smudge = iconv -f utf-8 -t utf-16le
    required

затем выполнил такие действия:

git rm --cached mql5/export.mq5
rm 'mql5/export.mq5'

git commit -am "removed utf16 files"
[master 433ae36] removed utf16 files
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 mql5/export.mq5

git add mql5/export.mq5

git commit -am "added utf16 files as utf8"

[master 498a34c] added utf16 files as utf8
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 mql5/export.mq5

// добавил новую строку в файл mql5/export.mq5

git diff
diff --git a/mql5/export.mq5 b/mql5/export.mq5
index 9db8a64..8b179c9 100644
Binary files a/mql5/export.mq5 and b/mql5/export.mq5 differ

Этот способ мне не помог.

dicos ★★
() автор топика
Ответ на: комментарий от dicos

теперь делаем file export.mq5, видим там utf-16 и отправляемся в гугль на тему гита и распознавания файлов utf-16 как текстовых:

http://stackoverflow.com/questions/777949/can-i-make-git-recognize-a-utf-16-f...

http://stackoverflow.com/questions/6855712/git-treats-text-file-as-a-binary

и тому подобное

anonymous
()
Ответ на: комментарий от andreyu

При чем тут bom? Он описывает только порядок байт.

Не только

quest ★★★★
()

cat export.mq5 | iconv -f UTF-16LE -t utf8 > body

quest ★★★★
()

Нашел решение

в файл .git/config добавляем такие строки:

[diff "l10n"]
    textconv = "iconv -f utf-16 -t utf-8"

в файл .gitattributes добавляем такие строки:

[diff "l10n"]
    textconv = "iconv -f utf-16 -t utf-8"

dicos ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.