dumpfilter svn repo中的一个项目

时间:2014-10-09 14:46:40

标签: svn svndumpfilter

我有一个整个AFS svn存储库的转储文件。我正在尝试从大型转储中转储过滤掉hadoop项目。这是我的命令:

svndumpfilter include --drop-empty-revs --skip-missing-merge-sources /hadoop < svn-asf-public-r0\:1164363 > hadoop_dumpfile1

然后我得到了这样的标准:

...
Revision 614268 skipped.
Revision 614269 skipped.
Revision 614270 skipped.
Revision 614271 skipped.
Revision 614272 skipped.
Revision 614273 skipped.
Revision 614274 skipped.
Revision 614275 committed as 614275.
Revision 614276 committed as 614276.
...

但问题出现了:

Revision 614328 skipped.
svndumpfilter: E200003: Invalid copy source path '/lucene/hadoop/site'

我认为它可能是repo中的旧移动/复制操作,因为原始转储文件非常庞大。并且svn文件结构树中可能有很多变化。我现在应该怎么做?

1 个答案:

答案 0 :(得分:0)

修订版614329会影响这些路径:

  • hadoop/core/site/
  • lucene/hadoop/site/

因此,您必须将/lucene/hadoop/site包含在svndumpfilter include命令行中。

阅读SVNBook!您遇到的问题似乎在SVNBook | Filtering repository history

中有所描述
  

此外,复制的路径可能会给您带来一些麻烦。 Subversion支持复制   存储库中的操作,通过复制创建新路径   一些已存在的路径。有可能在某些时候   存储库的生命周期,您可能已经复制了文件或目录   从svndumpfilter排除的某个位置到某个位置   它包括在内。要使转储数据自给自足,请使用svndumpfilter   需要仍然显示新路径的添加 - 包括   由副本创建的任何文件的内容 - 并不代表该文件   另外,作为来自过滤器中不存在的来源的副本   转储数据流。但是因为Subversion存储库转储格式   仅显示每个修订中更改的内容,副本的内容   来源可能不容易获得。如果你怀疑你有   您的存储库中有任何此类副本,您可能需要重新考虑   您的包含/排除路径集,可能包括路径   也是你麻烦的复制操作的来源。