Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2016, 00:56   #1
iva_tm
Новичок
Джуниор
 
Регистрация: 14.01.2016
Сообщений: 2
По умолчанию Автоматическое сравнение кода и мержинг

Здравствуйте уважаемые программеры,

Возникла необходимость смержить два похожих проекта. Суть работы, как вы понимаете, состоит в сравнении кода.
Привык пользоваться BeyondCompare для этих целей. Но увидел в нем недостаток: он совершенно не задумывается структурными элементами кода. Т.е. где тут объявление переменных, где хедеры а где процедуры- его не интересует.
Так мне запала в душу эта идея, что собрался было сам такой себе парсер наваять. Думаю дело не очень хитрое и наверняка полезное.

Но потом успокоился, т.к. наверняка такой сравниватель (по блокам) уже должен быть. Даже не сомневаюсь.
Короче говоря, поделитесь, пожалуйста, опытом, кто как мерджит код.
iva_tm вне форума Ответить с цитированием
Старый 14.01.2016, 06:43   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Всё важное и мудрёное всё равно мёрджу ручками, открываешь тулзень (хоть просто сравнивалку внутри тоталкомандера, хоть tortoise'овскую, хоть kdiff3) и двигая блоки чтобы они были сопоставлены, нужные строки тудым-сюдым кидаешь.
Благо, такой работой приходится заниматься очень редко, на тулзу-автомат вряд ли можно положиться, скорее всего сломает код, т.к. она банально не знает какой результат надо, и логика кода получится неправильная (даже если блоки правильно разделит), что потом всё равно руками идти. Сейчас предпочтительно использовать наборы патчей, если проекты лежат в СКВ, просто применять патчи на нужные файлы, ну или ветками с перемещением.

Собственно для именно Вашей задачи, советую покурить kdiff3, по сути одна из самых ходовых тулз. Не скажу насчёт блоков, но сравнивает хорошо. Или же TortoiseMerge.
phomm вне форума Ответить с цитированием
Старый 14.01.2016, 11:24   #3
iva_tm
Новичок
Джуниор
 
Регистрация: 14.01.2016
Сообщений: 2
По умолчанию

Спасибо большое за подсказку в расширении поиска подходящей программы. kdiff3 имеет больше возможностей, пока пробую их освоить.
Но всеравно не ясно почему эти сравниватели не разделяют структуру Си-файла. Я так понимаю она в большом числе случаев типовая:
1. Сначала комментарий-шапка;
2. объявления/хедеры;
3. процедуры.

Думается если знать в какой области лежит отличие - многое можно упростить. Например, в объявления/хедеры скорее всего можно добавлять не парясь, и процедуры если целиком. А внутри процедуры, там уже какая-то логика, и никуда не денешься, нужно вникать.
iva_tm вне форума Ответить с цитированием
Старый 14.01.2016, 11:26   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

таких утилит нет потому что конкретно такие слияния разовы, а обычное ведение репозитория проблем не создает обычно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.01.2016, 12:10   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Специализированных утилит сравнения кода, как правило отдельно от IDE нет. Хотя и IDE в общем-то использует сторонние средства. не думая о структуре кода.

Руками сравнивайте.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компиляцию кода MAtlab в C++Builder и использование преобразованного кода .м в C++Builder Leg1oner C++ Builder 0 07.01.2014 18:15
Распознавание Аски кода и скан кода MyLastHit Общие вопросы Delphi 8 06.12.2010 18:34
Delphi. Автоматическое добавление кода клиента Neroaz Помощь студентам 5 14.04.2010 21:24
Выдернуть куски кода из html-кода trafbite Помощь студентам 7 18.08.2007 13:51