Question

This is a bit unusual situation. I try to explain the background

A big commercial company (I cannot say which) have IP for a framework they don't maintains for years. The framework have still many frustrated users that want progress.

I have successfully started a dialog with the company and suggested that they released it as opensource. They refused and say it is not possible due to business requirements. But they could release the source to Github to paying customers as a service for them. This means that customers can also commit changes to the repository.

But the problem is the IP. The company wants to keep full IP both for the original code and all future changes. I don't think many developers commit changes with that conditions. It would feel like working for free for a commercial company. Work for free in an opensource project is a completely different thing.

So my question

Is it possible with Git or any other software to keep original source in one place and changes on another? If it is technically possible then it would be easier to let them keep the IP for the original source and let them release the IP for the changes.

Edit 1

So the requirement for the change-repository is that users that have only access to that can not rebuild the full source. You must also have access to orginal-repository.

Was it helpful?

Solution

You might try with Gerrit, please have a look there: Andorid Code Review

Everyone is allowed to cherry-pick particular changes and apply them as a patches. Changes are stored in a non-standard Git reference directory (refs/changes) and with Gerrit's access right module you can easily control access to it.

So, in short, with Gerrit you might define 3 user groups:

  • people having full access to the IP secured repository
  • people having access only to the changes (so they are allowed to cherry-pick)
  • people having access to both (if needed)

OTHER TIPS

Is it possible with Git or any other software to keep original source in one place and changes on another?

Perhaps I'm misreading the question, but this seems like it can be done very easily using two separate git repos -- one for the original source, and one for whatever changes are made moving forward with the codebase.

You can keep these remote repos in separate locations, with possibly different access restrictions, so they don't ever interfere with each other.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top