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.