4

Python SVN バインディング (pysvn) を使用してリポジトリでエクスポートしようとすると、次のエラーが発生します。

python: subversion/libsvn_subr/dirent_uri.c:955: svn_dirent_join: Assertion `svn_dirent_is_canonical(base, pool)' failed.
Aborted (core dumped)

コード例は次のとおりです。

import pysvn
client = pysvn.Client()
uri = 'https://svn.mycompany.com/myproject/trunk/'
# This works fine
print client.list(uri)
# This crashes with the above error
r = client.export(uri, './temp', force=True)

ただし、svn export --force https://svn.mycompany.com/myproject/trunk/シェル プロンプトから実行すると問題なく動作します。

私は使用しています:

  • パイソン 2.7.3
  • サブバージョン 1.7.5
  • CentOS 6.0 x64

何かアイデアはありますか?

4

2 に答える 2

3

Subversion API は、正規の URL とパスを内部的に使用します。URL の末尾にスラッシュがあり、これは正規の URL ではありません。Subversion API 関数を呼び出す前に、末尾のスラッシュを削除するか、svn_uri_canonicalize() 関数を使用して URL を正規化してください。

詳細については、Subversion API ドキュメント ( http://subversion.apache.org/docs/api/latest/svn_ dirent _uri_8h.html)を参照してください。

于 2012-07-24T19:16:52.663 に答える
1

svn+ssh://スキームを使用してみましたが、同じエラーが発生しました。これにより、アサーションの失敗は実際にはリポジトリ URI に関連していない可能性があると考えるようになりました。気まぐれに、エクスポート ディレクトリを に変更する/tmp/と、すべてが正常に機能しました。以前使用しようとしていたディレクトリ ( ./temp) は、"root squash" オプションが有効になっている NFS マウント上のホーム ディレクトリに存在します。これは、以前に奇妙なアプリケーションの問題を引き起こすことが知られていました.

于 2012-07-24T05:26:27.520 に答える