5

リポジトリをと同期するときに、UTF8でエンコードされていないsvn:logレコードを修正/バイパスすることは可能svnsyncですか?

バックグラウンド

私は、大規模な(10,000をはるかに超えるリビジョン)subversion(1.5.5)リポジトリ内に格納されているオープンソースモジュールのメンテナンスを引き継ぐ過程にあります。モジュールをダンプ/フィルタリング/ロードするためのリモートリポジトリへの管理者アクセス権がありません。古いリポジトリは廃止されており、元のサブモジュールをsvnsyncを使用してローカル(1.6以降)リポジトリに同期しようとしています。例えば:

svnsync file://home/svn/temp-repo/ http://path.to.repo/modulename/

問題は、古いリポジトリがUTF8エンコーディングを強制しておらず、次のようなエラーが発生していることです。

svnsync: Cannot accept 'svn:log' property because it is not encoded in UTF-8

ソースリポジトリのログプロパティを変更できないため、エンコーディングが不明/無効の場合は、プロパティ値を何らかの方法で変更または無視する必要があります。

何か案は?

例えば:

  • pre-revprop-changeスクリプトは転送中にログプロパティを変更できますか?
  • git-svnはそれを処理できると言われていますが、中間のgitリポジトリを使用しています-これはどのように正確に行われますか?
  • ログのプロパティを完全に無視すること、または特定のリビジョンを無視することは可能でしょうか
4

3 に答える 3

2

Subversionの次のバージョンを待つ必要があります。非UTF8エンコーディングのサポートをに追加するための保留中のパッチsvnsyncがあります。

于 2011-01-15T22:49:05.827 に答える
2

変更する必要がありますpre-revprop-change.tmpl

# cp pre-revprop-change.tmpl pre-revprop-change.tmp
# vim pre-revprop-change.tmp
exit 1 ==> exit 0

それ以外の場合はsvnadmin setrevprop、リポジトリを変更するために使用できます

于 2012-10-11T06:12:09.583 に答える
1

これには簡単な修正があります。次のステートメントを使用して、ソースリポジトリのログエントリを変更します。

リビジョン10281と/home/ svn/reposのリポジトリの例

svn proplist -v --revprop -r 10281 file:///home/svn/repos | iconv --to-code UTF8//IGNORE -o /tmp/iconv.out

svn propset svn:log --revprop -r 10281 -F /tmp/iconv.out file:///home/svn/repos

于 2011-03-23T07:01:56.637 に答える