首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用svndumpfilter2 (python断言错误)将项目提取到自己的svn存储库中。

使用svndumpfilter2 (python断言错误)将项目提取到自己的svn存储库中。
EN

Stack Overflow用户
提问于 2010-06-24 13:49:57
回答 1查看 1.1K关注 0票数 2

我试图将一个项目从一个存储库迁移到它自己的存储库中,以便更容易地通过ldap处理身份验证/授权。但是,在尝试svnadmin转储程序时,svndumpfilter --包括.我得到的标准错误是,包含路径中的某些文件是从包含路径以外的地方移动或复制的,因此内容不可用。

Google告诉我,我需要使用svndumpfilter python脚本变体之一。我在windows server 2003上通过命令行访问python2.6.5。所有这三个脚本都使用标准输入,但它们各自处理的内容略有不同。svndumpfilter2启动,但在第2版时,断言失败导致窒息。代码显然期望在这一行上有一个冒号,但是没有。我使用的转储文件只是一个简单的svnadmin转储回购文件> out.dump文件。没有对它做任何事。

我使用的命令是: svnadmin转储D:\svn\repo C:\Python26\python.exe "C:\Program \CollabNet\Subversion Server\svndumpfilter2.py“http: //localhost/svn/repo包含项目> D:\svndump\project.dump。

svnadmin转储D:\svn\repo > out.dump

键入out.dump \ C:\Python26\python.exe "C:\Program \CollabNet\Subversion Server\svndumpfilter2.py“http: //localhost/svn/repo包含项目> D:\svndump\project.dump

我得到的输出是:

  • 转储版本0.
  • 转储版本1. C:\Program : md5模块被弃用;使用hashlib代替
  • 导入md5跟踪(最近一次调用):文件"C:\Program \CollabNet\Subversion Server\svndumpfilter2.py",第406行,
  • in import= read_lump(fr) md5 "C:\Program \CollabNet\Subversion Server\svndumpfilter2.py",第23行,
  • in read_lump块= read_rfc822_headers(f)文件"C:\Program \CollabNet\Subversion Server\svndumpfilter2.py",第23行,断言冒号>0 AssertionError

中的

转储文件的第一部分失败:

SVN-fs-转储格式-版本:2

UUID: 880c8176-308 d-ea4f-8680-45ff5ec145

修订-编号:0支持-内容-长度: 56内容-长度: 56

K8 svn:日期V 27 2007-01-30T21:25:29.487250Z道具-结束

修订-编号:1支持内容长度: 151内容长度: 151

K7 svn:添加了log 40文件夹以允许正确的分支。K10 svn:作者V 15公司\用户K8 svn:日期V 27 2007-02-02T21:02:22.321625Z道具-END

节点路径:分支节点类: dir节点-action:添加支持内容长度: 10内容长度: 10

道具端

节点路径:标签节点种类: dir节点操作:添加支持内容长度: 10内容长度: 10

道具端

节点路径:主干节点类型: dir节点-action:添加支持内容长度: 10内容长度: 10

道具端

修订-编号:2支持-内容-长度: 109内容-长度: 109

有没有人见过这种情况,或者知道为什么会发生这种事?

EN

回答 1

Stack Overflow用户

发布于 2011-06-02 19:07:32

发生此错误的原因可能是Windows上的Python正在执行换行符转换(将stdin作为文本文件处理)。

因为"svnadmin转储“使用Unix换行符生成转储文件(即使在Windows上运行),所以您不希望python执行换行符转换。解决方案是使用"-u“选项调用python。

另外,svndumpfilter2.py的第一个参数应该是本地REPOS_PATH,而不是http:// string。为了便于讨论,让我们说您的存储库名为foo_bar,驻留在c:\svnrepos\foo_bar。假设您已经在foo_bar上运行了"svnadmin转储“,并生成了一个名为out.dump的文件

那么正确的python调用是:

C:\Python26\python.exe -u "C:\Program \CollabNet\Subversion Server\svndumpfilter2.py“c:\svnrepos\foo_bar项目D:\svndump\project.dump

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3110545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档