Чи існують інструменти для виправлення, які добре працюють з ртуттю, коли робочі процеси на основі патчів не справляються з причиною .rej відбиває ваші репо

Я шукаю кращий інструмент для виправлення, ніж ті, що вбудовані в Mercurial, або візуальний інструмент, який допоможе мені редагувати патчі, щоб вони були прийняті в Mercurial або Gnu патч.

Рекруалістська вікі має тему HandlingRejects , яка показує, наскільки нескладно патч простий. Я намагаюся запровадити робочий процес на базі mercurial для керування версіями філіалу, який базується на гілках функцій, і спирається на експорт та перегляд патчів, перш ніж вони будуть інтегровані. У моєму початковому тестуванні цієї ідеї найменш слабке посилання в моєму "виправленні", а також "огляд і прийняття та зміна" патчів - це спосіб відхилення патча, який закриває мене.

Ось деякі загальні випадки, коли імпульс ртутного патча на мене не працює:

Тривіальні зміни як в upstream repoA, так і у функціональній гілці repoB, де де-небудь додано один рядок на обох гілках. Оскільки обидві гілки мають історію, інструменту об'єднання повинно бути можливо, щоб побачити, що "хтось додав одну лінію в repoA, а хтось ще додав один рядок у repoB". Однак у випадку імпорту патча це призводить до відхилення імпорту патча і перезавантаження файлу .rej у вашому сховищі, яке потрібно ремонтувати вручну (шляхом редагування файлу .rej, доки його не можна застосувати).

На сторінці wiki згадується інструмент mpatch, який знаходиться тут . Я шукаю інші Інструменти для кращого злиття, які (а) працюють з ртуттю, і (б) можуть обробляти тривіальний випадок, зазначений на сторінці вікі обробки обробки вище. Зверніть увагу, що mpatch не працює для моїх цілей, мені здається, що мені потрібно щось, що є інструментом перебудови, а не інструментом патча, і в моєму випадку мені, можливо, доведеться зробити інструмент патча синтаксичним (і, отже, специфічним для одна мова програмування).

Я шукаю інструменти, доступні для роботи на Windows, як спочатку, так і навіть через щось подібне cygwin. Я не використовую середовище Unix/Linux, хоча мені зручно використовувати інструменти стилю Linux/Unix.

Наразі я не використовую розширення mq , просто експортуючи діапазони змін за допомогою експорту hg та імпортуючи за допомогою імпорту hg, а решта творів - це мої винаходи, однак я позначив цей mq , оскільки користувачі mq знайомі з цією проблемою для обробки .rej .

Пов'язане питання тут показує шляхи вирішення таких проблеми при використанні TortoiseHg.

1

1 Відповіді

Emacs цілком здатний обробляти файли .rej .

Однак, якщо взагалі практично, я намагаюся використовувати hg pull -rebase , коли це можливо. Часто я відчуваю бажання переробити деякі походження патчів на інші набори змін, які я вже витягнув. У цих випадках я просто знімаю набір змін і знову витягую його з .hg/strip-backup , що дозволяє мені використовувати - rebase .

2
додано
Другий біт - це правильна відповідь; Я роблю це неправильно, якщо зосереджуюсь на патчі. Реалізація - це те, що робить більшість людей.
додано Автор Warren P, джерело
ІТ КПІ - Python
ІТ КПІ - Python
625 учасників

Канал обговорень про всякі штуки зі світу пайтону. Прохання: 0. мати повагу одне до одного; 1. не матюкатися в сторону людей; 2. не захламляти тред повідомленнями по одному слову;