管理第三方API的代码更改

时间:2009-03-20 23:51:59

标签: version-control

我正在使用作为源代码分发的第三方API。这很棒,因为我可以自己解决问题,但是我也收到了第三方的大量更新。

我的代码库有自己的svn存储库,包括我的API版本。我通过查看第三方svn存储库中的版本来获得官方API更新。

合并这些变化是一个痛苦的过程。有一个更好的方法吗?使用分布式源代码控制系统会更容易吗?

3 个答案:

答案 0 :(得分:3)

问题在于您将自己与API结合在一起。如果可以的话,找一种扩展API而不是修改它的方法。将它放在单独的模块或其他编译输出中(即.JAR,.DLL,.SO文件)。试着脱离它。

如果你不能这样做,那么每次发布都会遇到合并问题。

当然,如果API是开源的,您可以考虑提交您的更改......

答案 1 :(得分:1)

我不认为分布式版本控制系统会对您的场景有很大帮助,因为看起来您将成为合并到您自己的存储库的人。如果合并的性质是API和依赖于API的代码,那么没有什么可以帮到你。

答案 2 :(得分:1)

从您的代码中提取API。您可以使用许多设计模式(外观,代理等),这些设计模式将帮助您保持代码不受API变化的影响。如果API发生更改,请更改与其交互的代码,而不是API本身。每次更新代码时,您仍然需要对代码进行更改,但至少它会很少并且可以隔离到一个地方。