Есть ли инструмент для автоматического извлечения общих подпрограмм из файлов? - PullRequest
3 голосов
/ 05 июля 2011

У меня есть две более 1000 строковых программ на Perl, в каждой по 20 подпрограмм.Один был разветвлен от другого некоторое время назад, и я хочу выделить общие части (перед переносом объектов назад.) Существует ли инструмент сравнения, который будет обрабатывать подпрограммы (и предыдущие комментарии) как единицы, и извлекать общие единицы вновый файл?(если одна строка подпрограммы отличается, модуль не совпадает.)

Мой SCM в настоящее время является Subversion, если это помогает.Скрипт Perl, который обрабатывает код, будет круто.

Ответы [ 3 ]

6 голосов
/ 05 июля 2011

Вы можете попробовать использовать модуль PPI ;насколько мне известно, нет инструмента для рефакторинга, как тот, который вы упомянули.

1 голос
/ 05 июля 2011

Если у вас 500 000 строк кода, может быть полезно иметь или написать такой инструмент.Для 1000 строк это не должно быть слишком сложно с помощью простого инструмента визуального сравнения, такого как BeyondCompare ($) или WinMerge (бесплатно).

0 голосов
/ 05 июля 2011

Вы пытаетесь сравнить две разные версии файлов?

Я использую VIM , который поставляется со встроенной программой diff vimdiff и полностью графическим интерфейсом.один называется gvimdiff .Это будет сгиб общих линий и просто покажет вам линии, которые отличаются и где.

С gvim , вы можете открыть три разделения в одном окне (дваверсии и бланк), а затем скопируйте различные строки, которые вы хотите.Если вы используете Subversion, вы можете использовать встроенный инструмент слияния (если вы говорите о разных версиях одного и того же файла).Слияние Subversion довольно хорошо и, вероятно, поможет вам с проблемами слияния.

...