svnsync: Cannot accept 'svn:ignore' property because it is not encoded in UTF-8
The error looks straightforward, something fishy about the svn:ignore property possibly from a pre-1.6.x commit where the check for UTF-8 was not that strict.
In the db/transactions dir the dead transaction is saved as 54270-xxxx, so I supposed the revision with wrong svn:ignore was 54270, but svn info on the synced repository says 54271 is the latest revision.
I have tried to find the offending sn:ignore in the source repository, but svnproget doesn't list any svn:ignore for those revisions. This is how I run the svn proget.
[root@alp-edbbfsvn db]# svn pg --revprop 'svn:ignore' -r 54270 file:///source/java
[root@alp-edbbfsvn db]#
Nothing is returned, and the same for revision 54271.
Could anyone explain what I do wrong here?
( I also noticed something special about this revision 54270 (and 54271) they both lacked svn:log, although that is compulsory in our repository, enforced by a pre-commit, but that could have been manipulated by an admin though)
Any pointers would be helpful!
Geir
Note : All inquiries regarding Subversion, MKS and general Development servers should be directed to "EDB SourceControl System"
Y:\util>svn pg svn:ignore https://svn.edb.com/repos/java/cards/cap/cap_client/trunk@54271
?\216stmarka
-
Golf.url
And then it is obvious that it contains non UTF-8 characters, "?\216" but how can I get svnsync to tolerate this, or find another workaround. As I understand Subversion there is no way to modify the svn:ignore property as it is in revision 54271?
Geir
Note : All inquiries regarding Subversion, MKS and general Development servers should be directed to "EDB SourceControl System"
svn:ignore is normally not a revision property (revprop), but a
*versioned* property (see the book for explanation about the
differences between those two). I.e. it's attached to a file or
directory, and was added or edited in either 54270 or 54271.
So, I think you'll find it by first examining which files had
properties added/updated in those revisions, and then propgetting on
those files (with a peg revision). Something like this:
# svn log -v -r 54270 file:///source/java
<check which files/dirs had properties added/updated (A or U in second column)>
# svn propget svn:ignore file:///source/java/the/path/to/the/file/or/dir@54270
I'm not sure how you would be able to fix them though (since it's a
versioned property, you can't just edit it like a revision property;
it's part of the history).
Maybe some of the folks on this list with more svnsync experience know
how to cope with this...
HTH,
--
Johan
Indeed, you are right, as I found iouyt and posted in another mail. The error was due to Norwegian characterset not in UTF-8 in svn:ignore but how to fix this is now the question.
One possibility is dump/fix/load, but the repository is quite large (180000 revisions and 20 Gb, so I fear the size of the dump file!)
I have seen some references to a fixed svnsync that can take encoding as a parameter, but I don't know if this is in an official Svn release. We are running 1.6.5 now.