2008-10-02 2 views
7

Один из моих коллег попросил меня просмотреть некоторые из моего кода, и он прислал мне файл diff. Я не новичок в управлении версиями или версиями вообще, но файл diff был очень трудным для чтения из-за изменений, которые он сделал. В частности, он использовал функцию «extract method» и переупорядочил некоторые методы. Концептуально, очень легко понять, но, глядя на diff, было очень сложно сказать, что он сделал. Мне было намного легче проверить предыдущую версию и использовать функцию сравнения «Eclipse», но она все еще была довольно неуклюжей.Рефакторинг красиво с контролем версий

Есть ли какая-либо система контроля версий, в которой хранятся метаданные, связанные с рефакторингом. Конечно, это будет IDE и язык программирования, но мы все используем Eclipse и Java! Возможно, может быть какой-то стандарт, на котором могут реализоваться реализации IDE и реализации управления версиями?

ответ

4

Eclipse может export refactoring history (см. 3.2 release notes).). Затем вы можете просмотреть изменения рефакторинга через предварительный просмотр в Eclipse.

+0

Мне нравится эта идея, если они версии для других, чтобы увидеть их, и есть какая-то ссылка в комментариях! – oreoshake 2008-10-02 19:10:23

2

Не знаю, как сравнивать инструменты, которые делают хорошую работу, когда файл был перестроен. В общем, это плохая идея из-за этого типа проблемы. Слишком часто люди делают это, чтобы просто соответствовать своему стилю, что является плохой, плохой причиной для изменения кода. Он может эффективно разрушить историю, точно так же, как переформатировать весь файл и никогда не должен выполняться, если это необходимо (т. Е. Оно уже беспорядочно и нечитаемо).

Другая проблема заключается в том, что рабочий код, скорее всего, сломается из-за предпочтений стиля someones. Если это не сломано, не исправляйте это!

+0

Рефакторинг - это, как правило, плохая идея? Интересно! (Адвокаты дьяволов, но вы сделали это с помощью «файла, который был устроен») – 2012-09-19 23:38:28

0

Я спросил similar question некоторое время назад и никогда не получал удовлетворительного ответа. Я буду смотреть на ваш вопрос, чтобы узнать, что люди придумали.

Для вашей конкретной ситуации лучше всего просмотреть последнюю версию файла, используя diff как руководство. Это то, что я делал и в своей ситуации.

0

Функция История рефакторинга нова для меня, но мне нравится, как она звучит. Для менее специфичного для инструмента метода мне нравится отправлять файлы патчей. Человек, просматривающий, просто применяет патч и проверяет результаты, а затем они могут вернуться к версии в управлении версиями, когда они будут выполнены.

Смежные вопросы