2

我发现了一个在我的项目中似乎非常有用的开源库。然而,该库处于 alfa/beta 状态并且有点不成熟。碰巧我不得不手动应用补丁或完全自己进行一些更改,以消除该库中的一些小错误。

问题是:如何在我的 SVN 存储库中存储和管理我的自定义“分支”?

我想保留我的自定义更改(最终可能会被项目所有者签入主干)以及我希望能够将我的版本与官方主干合并(他们可能已经改进了某些东西等)。

我已经做的是用适当的 svn:externals 属性标记一个文件夹(比如说资源)。然后我可以从官方主干“从内部”更新绑定到我的仓库的工作副本。显然我不能做的是提交更改。似乎没有什么(临时搬迁,切换,...​​)有效。我什至尝试导出到其他文件夹,然后进行更改,然后“以某种方式”合并它,但唯一的结果是一堆错误,其中大多数人抱怨 repo guids 不匹配。但也许我错过了一些细节:)。

那么有什么想法如何使用始终保持最新的第三方开源库并管理自己的定制?我不考虑在我的存储库中仅存储 .patch 文件作为选项;)。

4

3 回答 3

3

虽然您无法准确地在存储库之间进行分支,但您可以将代码导入您自己的存储库中,然后在存储库之间执行合并。(链接的帖子暗示此功能存在问题,但我相信它在最新的 SVN 版本中得到完全支持。SVN 1.6.1修复了与此方案相关的错误。)

SVN 书描述了一种更通用的策略,它不使用跨存储库合并。如果 3rd 方代码根本不在 SVN 存储库中,它也可以工作。请参阅供应商分支部分。

于 2009-05-12T23:36:14.587 回答
1

查看活塞,它可以轻松完成您想要的工作。

http://piston.rubyforge.org/

我用它来维护一个上游存储库,它工作得很好。

于 2009-05-12T23:36:55.100 回答
0

您可以使用分布式版本控制软件代替 SVN。例如, Git支持将分支与 SVN 存储库同步。

于 2009-05-12T23:45:15.553 回答