質問

ひどくフォーマットされたPERLコードを含む既存のSubversionリポジトリをクリーンアップしたいと思います。かなり古いコードとの比較が必要かどうかはわかりませんが、理想的には、すべての改訂に同じフォーマットが必要です。

一方、すべての古いリビジョンをチェックアウトし、Perltidyで再フォーマットしてチェックインすることにより、新しいリポジトリを作成するには、元のログメッセージを保持する必要があります。

それを行うためのツール/レシピはありますか?

役に立ちましたか?

解決

正確に何をしたいですか?古い改訂をすべてクリーンアップしますか?

それをしないでください。あなたはあなたの歴史を破壊し、あなたが同じPerlスクリプトを生成する必要があるにもかかわらず(ちょうど今整理されています)、あなたは以前にリリースされたいくつかの改訂を楽しむことができます。それに加えて、努力する価値はありません。

現在の改訂をチェックアウトし、Perl Tidyを実行してから変更を確認することをお勧めします。古いコードを変更することはありませんが、これからはきれいなものを提供します。

もちろん、Perlコードのフォーマットが非常に低いため、Perl Tidyで全体を実行したい場合は、さらに問題が発生します。誰かが再びコードを混乱させることを妨げるものは何ですか?

私もあなたが見ることをお勧めします ジェンキンス 継続的なビルドプロセスの一部として。あなたはそうしない コンパイル Perlコードですが、Jenkinsを使用してテストを実行して、Perlスクリプトの新しいPerlスクリプトと変更が整理されていることを確認できます。 Perlスクリプトに悪いフォーマットがある場合は、 失敗 自分自身と開発者をビルドとメールで送信します。

開発者は、新しいPerl Code of Faceのコードをチェックする前に、Perl Tidyを使用することをすぐに学びます。 ビルドに失敗しました.

ちなみに、開発チームの残りの部分はあなたの努力をサポートしていますか?そうでない場合、最初にしなければならないことは、優れたPerlのフォーマットがバグを減らし、フォーマットの取り組みを自動化するのに役立つツールを提供できることを彼らに納得させることです。

他のヒント

将来には、お勧めします SVN事前コミットフック スクリプトを実行します テスト:: 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 古いバージョンを見たいとき。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top