On Mon, Aug 22, 2016 at 5:29 PM, Eric Johnson <e...@tibco.com> wrote:

> Hi Mark,
>
> On 8/22/16 2:06 PM, Mark Phippard wrote:
>
>> On Mon, Aug 22, 2016 at 2:11 PM, Eric Johnson <e...@tibco.com <mailto:
>> e...@tibco.com>> wrote:
>>
>>     So I wrote myself a tool to go through all commit comments, and
>>     verify that no "CRs" appear in the svn:log entry. If I find them,
>>     I rewrite the log entry. That way, I can clean up existing
>>     repositories.
>>
>>     However, I ran into a surprise. CR characters have also snuck into
>>     the svn:ignore property, which is /not/ a revprop, and cannot be
>>     fixed by any of the tools available.
>>
>>     I've seen that other people recommend editing the dump file
>>     directly, but that makes me quite nervous, especially on an 8MB
>>     dump file. Hoping there's a better way.
>>
>>
>> Have you tried creating a new repository with the format you want and
>> then use svnsync to sync the data to it?  I seem to recall that svnsync
>> will fix the line endings as it syncs the log entries.  I could be wrong
>> though because I see that svnsync has a --source-prop-encoding option that
>> we added for fixing non UTF8 log messages.  So it is possible I am
>> confusing with that option.  I would try it though since it is a a simple
>> method to use.
>>
>
> I did just try this - svnsync does fix up the line ending problem. Even
> reports a nice summary at the end of what it did. So that's promising!
>
> So it seems like a sync-based equivalent to dump / load, in order to
> migrate from one repo format to another looks something like this:
>
>  * svnadmin create ... // create target repo
>  * // enable revprop changes
>  * svnsync init ...
>  * svnsync sync
>  * svnadmin pack
>  * svnadmin verify
>  * // remove revprop change script
>  * // remove all the props on revision 0
>  * // copy over all the hooks from the original repo
>  * svnadmin setuuid ... // set the uuid of the new repository to the
>    same as the old.
>  * // move original repo out of the way, move new copy into position.
>
> Is there some utility somewhere that does all of the above? I can go
> change my script to use the above approach instead of dump/load, but it is
> annoying....
>
> Is there any particular reason that the "dump/load" process doesn't fix
> the line-endings? Shouldn't it? Why have the --bypass-prop-validation
> option? Why not just fix the line endings? As it is now, the dump-load
> process is effectively broken, because I have one of two seemingly poor
> choices: I can either "bypass validation" (that sounds bad), or I simply
> keep the old format.
>


You can always just script it, but note that most of these steps apply when
using dump/load too.

 * svnadmin create ... // create target repo
 * svnadmin dump oldrepos > dumpfile
 * svnadmin load newrepos < dumpfile
 * svnadmin pack newrepos
 * svnadmin verify newrepos
 * // copy over all the hooks from the original repo
 * // move original repo out of the way, move new copy into position.


-- 
Thanks

Mark Phippard
http://markphip.blogspot.com/

Reply via email to