开发者

Best practice for changing opensource used in commercial application? [closed]

开发者 https://www.devze.com 2023-03-23 14:33 出处:网络
Closed. This question is opinion-based. It is not currently accepting answers. Want to improve this question? Update the question so it can be answered with facts and citations by editing th
Closed. This question is opinion-based. It is not currently accepting answers.

Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.

Closed 7 years ago.

开发者_JAVA技巧 Improve this question

probably basic conduct but still vague for me:

We're developing a commercial application using an open source component (apache hive), and we're using the latest 'stable' version (0.7.1), not the bleeding edge trunk.

We need to make some changes to the component, as there are some bugs we need fixed. We want to contribute them, but we can't be dependent on the opensource commiters. So we want to make changes in a local copy, compile the jar and use it in our app.

How should we deal with our local changes? do we maintain a copy of the opensource project in our own svn? do we copy it from the "branches" or from the "tags" of the hive svn? how do we then merge our changes back to the opensource svn - as their branch might be different from ours by the time we get there, and if we create a patch from our svn it might not fit their svn...

Thanks, ido

edit: what do you guys say about using git? could the answer to our process challenge be techy? it seems that this particular opensource also exposes a git repository, will it help us to create a local copy of it? if so, do we create it from the tag/branch/trunk? remember that we need to use and do our patches on a stable version but contribute to the bleeding edge trunk.


If you make a patch for one version it may or may not improve/be applicable to another version. The bug may already be fixed or the functionality addressed already removed. At the very least some effort will be needed to integrate the changes.

That said I think your best bet is to go with cloning their git repo on an intranet server. Then you can create a branch from the stable tag (say our_stable_branch). Your devs will be able to clone this intranet repo and push whatever changes they make into our_stable_branch. Then when you want to you can merge the changes into master and push them to the main apache hive repo.

0

精彩评论

暂无评论...
验证码 换一张
取 消