Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: bash, git log/diff, cygwin, CP1251 (

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: корректный вывод кирилический текстов
DlTA
Отправлено: 20 Марта, 2014 - 13:59:06
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




прежде работал с гит через контекстное меню гит туртойс, както, решил поюзать консоль для ускорения, и вылезло:

кодировка файлов cp1251, конфиг гит
CODE (htmlphp):
скопировать код в буфер обмена
  1. [i18n]
  2.         commitencoding = CP1251
  3.         logoutputencoding = UTF-8

кирилический текст коммитов и имен файлов отображается норм, но вот кирилица в самомм файле отображается "<EF><E0><F0>"

где то на простохаш нашел что надо в конфиге прописать
PHP:
скопировать код в буфер обмена
  1. [core]
  2.      pager = iconv.exe -f windows-1251 -t utf-8 | less

но тогда кирилица в коменте к коммиту отображается криво

при этом
в cygwin bash
CODE (htmlphp):
скопировать код в буфер обмена
  1. > echo $LANG
  2. ru_RU.UTF-8


может существует возможность указать гиту особые параметры для отобаржения содержимого файла и коментов, или для каждого файла указывать кодировку?
 
 Top
DlTA
Отправлено: 21 Мая, 2014 - 14:27:19
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




спустя столько времени отвечаю на свой же вопрос)

и так суть проблемы в том что кодировка консоли и коммитов одна, а кодировка файлов другая и при этом когда просматриваем содержимое с наличием кирилицы (git diff) видим <F1><FE>... вместо кирилицы

как это победить?! да очень просто
помним установку для конфига
CODE (htmlphp):
скопировать код в буфер обмена
  1. [core]
  2.      pager = iconv.exe -f windows-1251 -t utf-8 | less

заменяем в это дело на ченить свое
CODE (htmlphp):
скопировать код в буфер обмена
  1. [core]
  2.      pager = php gitPaper.php  | less


дальше создаем сам gitPaper.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // перекодирует кирилические символы выдаваемые при операции git diff ...
  3. while(($text = fgets(STDIN))!==false){
  4.         if(!preg_match('/\b[\da-f]{7} /', $text))
  5.                 echo iconv('windows-1251', 'utf-8', $text);
  6.         else
  7.                 echo $text;
  8. }

что делает данный скрипт?! он получает строку вывода, проверяет что эта строка не является отображением имени коммита с коментарием, и проводит перекодирование


часть содержимого .git/config
CODE (htmlphp):
скопировать код в буфер обмена
  1. [core]
  2.         commitencoding = cp1251
  3.         pager = php gitPaper.php  | less
  4. [i18n]
  5.         commitencoding = utf8
  6.         logoutputencoding = utf8



ну и P.S. решение не самое, но рабочее и если найдете косяки в конфига то сильно не ругайтесь)
 
 Top
DlTA
Отправлено: 17 Апреля, 2015 - 13:14:28
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




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

для отображения логов гита у меня такой вот алиас
alias glg='git log --graph --all --topo-order --decorate --oneline --boundary --stat'

при этом выдается красивенькое дерево с помеченными ветками и все вроде хорошо НО
если ветка заканчивается где то очень далеко то в логах ее сложно найти чтоб например глянуть что в ней делалось, какие файлы задело
так как дерево строится по времени, или как то еще
даже если переключиться на нужную ветку то в логах она будет где то очень далеко
а хотелось бы чтоб активная ветка в логах светилась вверху, это можно настроить??
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Апреля, 2015 - 14:31:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




 
 Top
DlTA
Отправлено: 17 Апреля, 2015 - 14:36:13
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




DeepVarvar пишет:
apt-get install tig
cygwin+win
и меня в общем устраивает консольный вывод в том же окне (консли),
внешние графические логеры есть от gitTortoise но его запускать не удобно
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Апреля, 2015 - 14:39:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




 
 Top
DlTA
Отправлено: 17 Апреля, 2015 - 14:54:49
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




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

DeepVarvar у тебя очень короткие заголовки в общем списке лога
дата, кто, коммент
это в тиге настраивается или в гите?
и попутно с кодировкой, где ее настраивать тиге или гите?
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Апреля, 2015 - 15:04:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Дык растяни окно кансоли побольше.
Понятия не имею где настраивается, меня сразу во всем устроило как он по умолчанию работает.
А что тебе еще надо кроме ветки, коммита, автора и комента?

А что не так с кодировкой?
Если ты её уже хукнул, то она и будет нормальная.
 
 Top
DlTA
Отправлено: 17 Апреля, 2015 - 15:08:01
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




у меня фишка в том что коммиты в utf-8 а файлы в cp1251 и для этого всего юзается финт ушами в виде скриптика на пыхе который парсит входную строку определяет что это и по необходимости меняет кодировку
(Добавление)
DeepVarvar глянь плз в гит конфиг у тебя там какието настройки для git paper есть?
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Апреля, 2015 - 15:28:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Нет, нету. И я щас проверил создал файл в цп1251, он в тиге отобразился кракозяблами.
Однако, кракозяьленность отображения - это уже потому что в терминале стоит утф-8 и он все что туда не передашь (даже бинарку) покажет как утф-8.
А несколько кодировок одновременно ты не сделаешь.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Администрирование Windows »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB