LINUX.ORG.RU

interactively merge files line-by-line


0

3

Как сделать инерактивный построчный мёрдж? vimdiff и meld оперируют слишком большими кусками. Для vimdiff нашёл какие-то извратные команды, но мне это неудобно.

Пробовал команду eb в sdiff passwd.pacsave passwd -o passwd.mine, но после этого на результат без слёз смотреть невозможно — одна каша.

Короче, что-то типа git add -p в котором можно выборочно выхватывать куски и разбивать большой патч на маленькие.

★★★★★

Мне неизместны программы, делающие именно построчный мерж (я даже не очень понимаю, что это); думаю, это противоречит самой идее LCS.

типа git add -p в котором можно выборочно выхватывать куски и разбивать большой патч на маленькие.

Если это hg qrecord, то оно тоже работает по ханкам, а не строкам.

tailgunner ★★★★★
()

Если речь о git, то tig вроде умеет это делать. В окне типа diff клавиша 1 добавляет в stage ровно одну строку (или удаляет, зависит от изменения).

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

Попробую описать проблему яснее. Представь что один и тот же файл изменили в двух ветках и теперь их надо смёрджить. Мне нужно из двух версий файлов сделать третий в который войдёт часть изменений из одной ветки и часть из другой.

Более конкретно, обновился дефолтный /etc/passwd и мне нужно его смёрджить с тем что есть в системе. Если я просто сделаю mv /etc/passwd.pacnew /etc/passwd то я потеряю пользователей которых насоздавал в системе. Мне нужно что-то более интелектуальное. Возможно, работающее даже на уровне кусков строки.

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

Тебе нужна специальная мержилка /etc/passwd, а не абстрактный «line-by-line merge». Напиши сам %) Или тупо отсортируй оба файла и сливай их обычным kdiff3 (или что там у тебя - meld).

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