Consider having a project which you would want to release as open-source.

There are parts which you have removed, but still remain in version control history. License of those parts is not compatible with the license you intend to use to release the project.

How to solve this?

  • Just release source tree as is. Possibly illegal option.
  • Strip changes/modify history to remove unwanted parts. Breaks compatibility with existing copies of repos. Old versions no longer compile, because important part is missing.
  • Create new repo without unwanted parts. Same problems as above.

I have a Mercurial in mind, but I think this applies to any DVCS.


1 Answer 1


Create a new repo, probably with no old revision history in it.

No "old versions fail to compile" because there are no old versions (and old versions make no sense as you're deleted half of their source code!)

This doesn't preclude you from using the old repo yourself, though migrating changes from OSS devs into your copy will require you to manually make a new branch, populate with a copy of their code, and merge rather than simply merge.

You could keep the old repo for the historical versions, while they're still needed, and close it to new development.

The last idea is still to create a new repo, and populate it with all but the copyright parts. Put those into a different repo that only you have access to.

  • hg convert could help with the last bit if wanted, but mostly i'd just go with a completely new repo
    – jk.
    Sep 16, 2014 at 13:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.