我试图将一个项目从一个存储库迁移到它自己的存储库中,以便更容易地通过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
我得到的输出是:
中的
转储文件的第一部分失败:
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
有没有人见过这种情况,或者知道为什么会发生这种事?
发布于 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
https://stackoverflow.com/questions/3110545
复制相似问题