我正在尝试拆分现有的svn存储库,因为它有多个项目。我希望每个都有单独的存储库。然而,分割的最后一步是将过滤后的转储文件加载到新的存储库我有一个问题,即它们已成功加载但不知何故我没有看到它们。知道为什么会这样吗?
事先谢谢
答案 0 :(得分:0)
我看到交易已经提交。您是如何访问新的存储库的?你是否在该目录上启动svnserve?您使用的是file:///
吗?
你的系统上有svnlook吗?我们可以使用它来查询该特定目录。由于我们在该目录中,因此非常简单:
$ svnlook youngest .
这应打印出该存储库的最新修订版。它应该与你的svnadmin负载一致。
$ svnlook tree .
这应打印出存储库的整个目录树。
如果这不起作用。试试这些:
$ svnlook log .
这将打印出最后一条日志消息。
$ svnlook changed
打印出改变的内容。
如果svnlook tree .
没有打印出任何内容,则转储可能会填充空修订。如果您使用svndumpfilter
来过滤掉您不喜欢的交易,则尤其如此。
如果repo确实根据svnlook
进行了交易,请使用svnserve运行您的仓库的本地副本:
$ svnserve -r .
然后打开另一个窗口,试试这个:
$ svn log -v svn://localhost
看看是否打印出交易日志。
我看到你拥有的东西,你可以看到它丢弃了你的标签,树枝,甚至树干。
看起来问题是你没有指明你的想法。指定include A
时,您需要指定位于回购ROOT的文件。
你有:
$ svndumpfilter include A < repo.dump > A.dump
你想要做的是这样的事情:
$ svndumpfilter include trunk/A tags/A branches/A < repos.dump > A.dump
请注意您必须提供要包含的目录树的 完整路径 名称。你可以做这样的事情:
$ svndumpfilter include --pattern&#34; * / A&#34; &LT; repo.dump&gt; A.dump
您的转储会显示svndumpfilter
所有排除的目录。您可以使用它来验证您是否保留了您认为自己保留的内容。