可能是基本的行为,但对我来说仍然含糊不清:
我们正在使用开源组件(apache hive)开发商业应用程序,我们正在使用最新的“稳定”版本(0.7.1),而不是最前沿的主干。
我们需要对组件进行一些更改,因为我们需要修复一些错误。我们想要贡献他们,但我们不能依赖于开源的提交者。因此,我们希望在本地副本中进行更改,编译jar并在我们的应用程序中使用它。
我们应该如何应对当地的变化?我们在自己的svn中维护一个开源项目的副本吗?我们从蜂巢svn的“分支”或“标签”中复制它吗?然后我们如何将我们的更改合并回opensource svn-因为我们到达那里时它们的分支可能与我们的不同,如果我们从svn创建一个补丁,它可能不适合他们的svn ......
谢谢,ido
编辑:你们对使用git有什么看法?我们的流程挑战的答案可能是技术性的吗?似乎这个特定的开源还暴露了一个git存储库,它会帮助我们创建它的本地副本吗?如果是这样,我们是否从标签/分支/主干创建它?请记住,我们需要在稳定版上使用并执行我们的补丁,但会对前沿主干做出贡献。
答案 0 :(得分:1)
如果您为一个版本制作补丁,则可能会或可能不会改进/适用于其他版本。该错误可能已经修复或已解决的功能已被删除。至少需要一些努力来整合变化。
那就是说我认为最好的办法就是在内网服务器上克隆他们的git repo。然后,您可以从稳定标记创建分支(例如our_stable_branch
)。您的开发人员将能够克隆此Intranet仓库,并将他们所做的任何更改推送到our_stable_branch
。然后,当您需要时,可以将更改合并到master中,并将它们推送到主apache hive repo。