如何从包含多个项目的 SVN 存储库中转储一个项目?

发布于 2024-07-09 13:31:56 字数 197 浏览 5 评论 0原文

我正在使用一个包含许多项目的 SVN 存储库。 我需要将一些项目从该存储库移到单独的存储库中,每个项目一个,并保留历史记录。

我已经能够使用 svnadmin dump 转储整个存储库并将其 svnadmin load 到另一个存储库中,但我找不到一种仅转储一个项目的方法原始存储库,以便我可以将其加载到新存储库中。 这可能吗? 如果是这样怎么办?

I am working with an SVN repository with many projects. I need to move a few of the projects out of that repository into individual repositories, one for each project, keeping the history.

I've been able to use svnadmin dump to dump the entire repository and svnadmin load it into another repository, but I can't find a way of dumping only one project from the original repository so I can load it into the new one. Is this possible? If so how?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

捂风挽笑 2024-07-16 13:31:56

您可以使用 svndumpfilter 实用程序来执行此操作。 SVN 书有一个 很好的解释 如何做到这一点。

例如,一种方法是:


$ svnadmin dump /path/to/repo 
     | svndumpfilter include /proj > dump-file
$ svnadmin create /new/proj/repo
$ svnadmin load --ignore-uuid /new/proj/repo < dump-file
$ svn rm file:///path/to/repo/proj

You can use the svndumpfilter utility to do this. The SVN book has a good explanation of how to do this.

For instance, one way would be:


$ svnadmin dump /path/to/repo 
     | svndumpfilter include /proj > dump-file
$ svnadmin create /new/proj/repo
$ svnadmin load --ignore-uuid /new/proj/repo < dump-file
$ svn rm file:///path/to/repo/proj
噩梦成真你也成魔 2024-07-16 13:31:56

只是对 @Avi 答案和 @Kit 评论的一小部分补充。

如果您使用 svndumpfilter,您可能会丢失加载存储库所需的提交 (来源)。

就我而言:

cat dump | svndumpfilter --drop-empty-revs --renumber-revs include trunk/project > project.dump 
svnadmin load --ignore-uuid /opt/svn/newlocation < project.dump
<<< Started new transaction, based on original revision 1 
svnadmin: File not found: transaction '0-0', path 'trunk/project'

解决方案是首先提交上层目录trunk

Just an small addition to @Avi answer and @Kit comment.

If you use svndumpfilter, you may lose a commit that is necessary for loading the repository (source).

In my case:

cat dump | svndumpfilter --drop-empty-revs --renumber-revs include trunk/project > project.dump 
svnadmin load --ignore-uuid /opt/svn/newlocation < project.dump
<<< Started new transaction, based on original revision 1 
svnadmin: File not found: transaction '0-0', path 'trunk/project'

The solution was to commit an upper directory trunk first.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文