2015-01-31 2 views
1

Я использую extdiff в моем ~/.hgrc ...Mercurial бок о бок дифференциалы (при макс срок ширины)

[extensions] 
pager = 
hgext.extdiff = 

[extdiff] 
# add new command that runs GNU diff(1) in 'side-by-side' mode 
cmd.sdiff = sh 
opts.sdiff = -c 'diff -dbB --left-column -y -W `tput cols` $0 $1' 

[pager] 
pager = LESS='FRX' less 
attend = cat, diff, sdiff, glog, log, incoming, outgoing, lg, show, lga 

Это означает, что я могу использовать hg sdiff README и использовать diff в side-by-side mode для файла README; однако по какой-то причине вывод tput cols выше по-прежнему дает оболочку 80 символов, когда я запускаю ее через hg sdiff.

Если удалить sdiff с расширением [pager], мой sdiff охватывает всю ширину вывода ...

[pager] 
pager = LESS='FRX' less 
## Removing sdiff fixes the problem with terminal width 
attend = cat, diff, glog, log, incoming, outgoing, lg, show, lga 

Даже если удалить sdiff из секции [pager] и трубы вручную через less в hg sdiff | less -FRX, то разница еще охватывает полную ширину терминала. Как я могу получить [extdiff] и [pager], чтобы разрешить динамическую ширину терминала для боковых различий?

ответ

0

Единственный способ решения проблемы я нашел

[extdiff] 
# add new command that runs GNU diff(1) in 'side-by-side' mode 
cmd.sdiff = sh 
opts.sdiff = -c 'diff -dbB --left-column -y -W `tput cols` $0 $1 | less -FRX' 

Я также удалить sdiff из раздела [pager]. На данный момент это выглядит как ошибка Mercurial.

+0

Не могли бы вы сообщить об ошибке в http://bz.selenic.com/? – Mathiasdm

+1

Это [Mercurial Bug 4521] (http://bz.selenic.com/show_bug.cgi?id=4521) –

Смежные вопросы