at the moment I have one repo (git) for my project and I use branching techniques for development. This is a very new project and I wanted to get things right from the very beginning. I will create this app for Win32, Win64 and OSX. Now, I want to introduce builds (not really nightly as I am sole developer but frequent). How would you set up the above in terms of branching and repos? I have come up with the following options:

A. One repo with master-develop and branching and merging and rebranching for Win32/64/OSX with lots of tagging

B. Three separate repos:

  1. Development: usual practice here with master (which will hold the latest final build per version) and develop with other bug/features...branches

  2. When I want to create a build (not final), the files will be stored in another separate repo for each platform (something like RC-Win32, RC-Win64, RC-OSX) and tags will be used

  3. When I am ready for the final version per platform, I will build everything and push to another repo, say Release-Win32, Release-Win64, Release-OSX

Is this a solid plan? What is common practice when you have builds of different scope (release, nightly, release candidates) and for different platforms?

One question that come in mind for scenario B is where and when I will include other stuff like installers, documentation, etc.... Also, do you trust you VCS and keep everything in there when you have a final package which you deployed? Like for example, if I have MyApp v1.0 (including docs, etc. etc.) do you leave them in the repo or you check everything out in a folder for referencing? (I actually feel more comfortable with this)

  • 2
    What advantages are you expecting to gain from splitting the project across multiple repos? (asking "what do you think" isn't an answerable question, it's just an opinion poll, which we don't do here) I also don't understand the last paragraph at all; if you don't trust your VCS why would you use it at all, much less think that checking out another working copy of it would somehow work around the untrustworthiness?
    – Ixrec
    Commented Jun 9, 2016 at 6:54
  • 1
    One repo! This comment is probably not worthy as an answer, but one repro is usually the simplest. Commented Jun 9, 2016 at 16:24
  • @Ixrec: thanks Ixrec. I reworded the question. Regarding your questions, if I don't have separate repos, how would my RC-xxx and Release-xxx work? In branches in the main development repo? Is this an approach people user? What I meant with the last paragraph is how do teams deal with versions? Do they use tags only or they keep the actual files in archives or folders? Commented Jun 9, 2016 at 17:02
  • 1
    You don't want to use branches to manage different platforms. Commented May 28, 2018 at 5:38

1 Answer 1


I work on a platform which delivers to multiple platforms from a single repo. It works. Make a point of abstracting the parts which need to be OS aware.

If your app will be saving data or communicating to other processes, be religious about defining non-default data types which guarantee a specific size so that the 32 and 64 bit versions can read and write a common data file.

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.