私はこれが不可能である可能性が完全にあると言うことから始めます-そうでなければ、それは問題ありません(まあ、それはひどいですが、私は生きます)。「まあ、とにかくそれはどのように機能するのでしょうか?」私がやりたいことをするのに壁がありますがねえ。
私がやりたいのは、所有権データを変更せずに、Subversionリポジトリ内の多数のファイルを再フォーマットすることです。これにより、次のようになります。
username | commit number
------------------------------------------------
john_smith | 1 | <?php
john_smith | 1 | echo 'Hello world';
joe_bloggs | 2 | if (isset($user)) {
john_doe | 3 | echo ', and hello ' . $user;
joe_bloggs | 2 | }
これに(新しい行が所有されていない場合):
username | commit number
------------------------------------------------
john_smith | 1 | <?php
| |
john_smith | 1 | echo 'Hello world';
joe_bloggs | 2 | if (isset($user))
| | {
john_doe | 3 | echo ', and hello ' . $user;
joe_bloggs | 2 | }
またはこれ(新しい行は私が所有していますが、変更された行は所有していません):
username | commit number
------------------------------------------------
john_smith | 1 | <?php
mr_man | 4 |
john_smith | 1 | echo 'Hello world';
joe_bloggs | 2 | if (isset($user))
mr_man | 4 | {
john_doe | 3 | echo ', and hello ' . $user;
joe_bloggs | 2 | }
または他の順列。
リポジトリには不適切な形式のコードがたくさんあるので、これを実行したいと思います。Blameをヒットできると便利なので、(ほとんど)すべての所有権を取得せずにクリーンアップしたいと思います。ファイルの横に移動して、各行の最後の変更と、それらの変更の理由を確認します。コミットメッセージと所有権を使用して再フォーマットすると、リポジトリの大部分のそれが削除され、実際の人のログを調べて、確認のために差分をとる必要があります。
誰かがBlameを台無しにすることなくコードを再フォーマットするための別の方法を考えることができれば、私もそれについての提案を受け入れます。