Tiding Subversion Perl РЕПО с PerlTidy? - PullRequest
2 голосов
/ 29 апреля 2011

Я хотел бы очистить существующий репозиторий Subversion, содержащий плохо отформатированный код Perl.Так как я не уверен, понадобятся ли некоторые сравнения с довольно старым кодом, в идеале я хотел бы иметь одинаковое форматирование для всех ревизий.

С другой стороны, создание нового репо путем проверки всех старых ревизий, переформатирования с помощью perltidy и регистрации должно будет сохранять исходные сообщения журнала.

Есть ли инструменты / рецепты для этого?

Ответы [ 2 ]

4 голосов
/ 29 апреля 2011

В будущем я бы порекомендовал svn pre-commit hook для скрипта, выполняющего Test :: PerlTidy , чтобы заставить всех держать код в чистоте.

Вместо того, чтобы пытаться изменить все предыдущие коммиты, вы можете рассмотреть пользовательскую команду svn diff для случаев, когда вы хотите сделать сравнение со старыми версиями. Что-то вроде:

#!/bin/bash
# tidydiff.sh for tidying code before diffing
perltidy "$1" > "/tmp/$1"
perltidy "$2" > "/tmp/$2"
diff "$1" "$2"
rm "/tmp/$1" "/tmp/$2"

, а затем используйте svn diff --diff-cmd=tidydiff.sh, если хотите посмотреть старые версии.

3 голосов
/ 29 апреля 2011

Что именно вы хотите сделать? Очистить все старые ревизии?

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

Я бы порекомендовал вам проверить ваши текущие ревизии, запустить Perl Tidy, а затем проверить ваши изменения. Вы не измените свой старый код, но он даст вам чистые вещи для работы с этого момента.

Конечно, если ваш Perl-код настолько плохо отформатирован, что вы хотите запустить все это с помощью Perl tidy, у вас есть больше проблем. Что мешает кому-то снова напутать код?

Я бы также порекомендовал вам взглянуть на Jenkins как часть непрерывного процесса сборки. Вы не компилируете код Perl, но вы можете использовать Jenkins для запуска тестов, чтобы убедиться, что все новые сценарии Perl и любые модификации ваших сценариев Perl были убраны. Если сценарий Perl имеет плохое форматирование, вы Fail соберетесь и отправите электронное письмо себе и разработчику.

Разработчики быстро научатся использовать Perl Tidy, прежде чем проверять новый Perl-код лица, приводящий в замешательство публичную неудачную сборку .

Кстати, остальная часть вашей команды разработчиков поддерживает ваши усилия? Если нет, первое, что вам нужно сделать, это убедить их, что хорошее форматирование Perl может помочь уменьшить количество ошибок, и дать им инструменты, которые помогут автоматизировать их усилия по форматированию.

...