I'm the technical lead for a small company (6 developers). We currently use SVN and we're slowly porting over to Git, after everyone gets their training.
Currently our clients are the ones who "pull the trigger" on branch integration. Meaning that some module or feature is built and then, that feature sits in a branch until the client asks that it go live. When it goes live, we merge the branch into a staging environment and do testing. Then once the testing confirms everything is working as it should, we then merge those changes into the trunk for the live push.
It's done this way because often we have a lot of parallel development and often requirements are always changing on the fly. So, to isolate and control what goes where, we put each module or feature in its own branch.
For a long time we've been having issues for managing branches. So, for example we might build a branch with feature A. Six months will go by and finally the client or the development manager will want to move that change ahead, if either of them remembers. This is where my problem is. What are some ways I can keep track of what branches have been merged? or not merged? A centralized way of keeping an eye on all these changes.
This can be a challenge to manage, because often as a lead at my company, I'm required to do project management, code, code review, integration on several platforms. The leads here are not silo'd, we're required to be part of all development everywhere. So often, at any point I'll have up to 7-10 different items on my ToDo list, and integration and branch management can slip through the cracks.