1

I have a project I would like to release in public.

It has a large history and many branches. I do not want to release that. There will be a dreaded, fat "initial commit" on the public repository.

I'm looking for a workflow that would allow me to:

  • develop my software in-house,
  • keep some parts of the software private, not to be released,
  • keep the whole history on the private repo,
  • release at will on a public repo (not necessarily with squashed, single commits per release, I'd probably keep the history "equal" from some point [1]),
  • accept pull requests on the public repo and eventually include them in my private one.

This is of course not suited well for git. I wonder what are my option to keep it as error-free as possible and scriptable.

I think there might be an option to go with patches and manual application. The problem is the selection of patches - how to ensure I upstream only things I want to without manually picking the commits?

It also sounds like a trade-off between cumbersome small releases or occasional releases with an awful lot of work to pick the correct commits.

Are there any standardized approaches to my problem?

[1] "equal" in the sense of same commit messages and content.

Piotr Zierhoffer
  • 5,005
  • 1
  • 38
  • 59

0 Answers0