I'll start off by saying that it's entirely possible that this isn't possible - if it's not, that's fine (well, it sucks, but I'll live). I know there are potentially some "well, how would that work anyway?" walls in doing what I want to do, but hey.
What I'd like to do is to reformat a large number of files in a Subversion repository without changing any of the ownership data, either turning this:
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 | }
into this (where the new lines are unowned):
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 | }
or this (where new lines are owned by me but changed lines aren't):
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 | }
or any other permutation.
I'm wanting to do this as there's a lot of badly formatted code in the repository, and I'd like to get it cleaned up without taking ownership of (pretty much) the entire thing, as it's handy to be able to hit Blame down the side of a file and see the last changes for each line, and the reasons for those changes. Re-formatting with a commit message and ownership would remove that for a large chunk of the repository, and force us to look in the log for the actual person, then diff it just to make sure.
If anyone can think of an alternative way to get the code reformatted without ruining the Blame, I'm open to suggestions on that too.