LINUX.ORG.RU

Чем ещё можно работать с патчами

 ,


0

1

Попробовал shelve из tortoisehg. А что есть ещё для перекидывания изменений между разными (временными) патчами и предстоящим коммитом?

На mq уже смотрю, но что-то пока не очень ясно.

Да и можно не привязываться к конкретной vcs, ведь от нее надо только уметь делать diff.

Спасибо.

★★

Посмотрел на mq, не то, что мне надо. Больше подходит shelve (тоже hg extension но надо брать с bitbucket), но без gui я не знаю как им пользоваться. Интерактивный режим выбора блоков в патче совсем не годен. А из-за одного shelve не хочется тащить tortoisehg вместе с qt.

Можно vim-ом патчи редактировать, но это все же не то.

Уточню, вопрос в том какие есть хорошие способы прекидывать блоки (hunk) между патчами и рабочей директорией.

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

какие есть хорошие способы прекидывать блоки (hunk) между патчами и рабочей директорией

Делать более мелкие патчи изначально.

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

На это есть следующий сценарий. Работаю над чем-то, правлю файл foo.c, вижу случайно баг не относящийся к этотому чему-то, исправляю, и т.д. В результате к моменту коммита имею несколько исправленных проблем и возможно завершонную исходно задуманную работу. Хотя неудобства начинаются ещё до коммита, например нельзя нормально потестить исправления, т.к. основная работа встала в промежуточном состоянии и исходники даже не компилятся.

Есть ещё вот такие задачи.

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

вижу случайно баг не относящийся к этотому чему-то, исправляю, и т.д.

Сразу завожу под исправление патч. Да, нудно, надо об этом помнить, немножко рвется контекст, но зато потом его можно двигать без проблем.

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

Работаю над чем-то, правлю файл foo.c, вижу случайно баг не относящийся к этотому чему-то, исправляю, и т.д. В результате к моменту коммита имею несколько исправленных проблем и возможно завершонную исходно задуманную работу.

Можно, используя mq, делать qrefresh на текущий патч и создавать новый для исправлений. Затем убирать новый (qpop) и продолжать работу со старым. Ну а в конце пересортировать патчи да превратить в коммиты.

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

Ну или можно просто прерваться на середине работы (сохранив результат в патче), убрать его, закоммитить изменения и воткнуть патч обратно.

risenshnobel ★★★
()

Чем ещё можно работать с патчами

patchutils

quilt

man git

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