我首先会说这完全有可能是不可能的——如果不是,那很好(好吧,这很糟糕,但我会活下去)。我知道可能会有一些“好吧,那无论如何会如何工作?” 围墙在做我想做的事,但是嘿嘿。
我想做的是在不更改任何所有权数据的情况下重新格式化 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,我也愿意就此提出建议。