LINUX.ORG.RU

Сценарии Emacs'а при использовании в качестве инструмента слияния.

 3way, , ,


0

1

Захотел я использовать Emacs в качестве three way merge tool для Mercurial'а. В вики последнего есть рецепт что нужно сделать.

Добавить строчку в ~/.hgrc

[ui]
merge = emacsclient-merge

И некий сценарий:

save it as e. g. 'emacsclient-merge' and configure it like this

Не могу понять, куда нужно сохранить:

#!/bin/bash

 if [ $# -lt 1 ]; then
    echo 1>&2 "Usage: $0 local other base output"
    exit 1
 fi

 local=$1
 other=$2
 base=$3
 output=$4

 OUTPUT=`emacsclient --no-wait --eval "(ediff-merge-with-ancestor \"$local\" \"$other\" \"$base\" nil \"$output\")" 2>&1`
 echo $OUTPUT | grep -v "Ediff Control Panel"

 if echo "$OUTPUT" | grep -q '^*ERROR*'; then
    exit 1
 fi

чтобы оно использовалось меркуриалом? В какое место? Какой путь к файлу?

★★★★★

Последнее исправление: CYB3R (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Всем сразу?

Вот прямо так в /usr/local/bin и записать? Чё-то я очкую писать свои сценарии в системные директории.

Camel ★★★★★
() автор топика
Ответ на: Всем сразу? от Camel

Чё-то я очкую писать свои сценарии в системные директории.

Не понимаю, чем таким системный каталог отличается, но ты можешь записать сценарий в ., отладить его с помощью PATH=$PATH:. hg merge, а потом уже скопировать готовый в /usr/local/bin (или ~/bin).

Ну а если ты совсем уж параноик, сделай как-то так:

[alias]
emacsmerge = !PATH=$PATH:~/somewhere hg merge $@
tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 2)
Ответ на: Всем сразу? от Camel

Ты чо как целочка? ~/bin, епт.

anonymous
()

Хотя, немного подумав... думаю, в [ui] можно тупо прописать абсолютное имя скрипта :)

tailgunner ★★★★★
()
Ответ на: Всем сразу? от Camel

Вот прямо так в /usr/local/bin и записать? Чё-то я очкую писать свои сценарии в системные директории.

facepalm.lisp

А кто мешает добавить в $PATH не системные директории?

AnDoR ★★★★★
()

ИМХО если в емаксе работаешь больше, чем в терминале, то этот приём со скриптом избыточен, тк проще при необходимости слияния переключиться в emacs и запустить оттуда vc-merge.

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

vc-merge.

ИМХО если в емаксе работаешь больше, чем в терминале, то этот приём со скриптом избыточен, тк проще при необходимости слияния переключиться в emacs и запустить оттуда vc-merge.

Об этом я не подумал.

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