What tools to gain visibility on multiproject feature development?

63 views Asked by At

As is: I have 10+ projects (each is repo) that are sometimes interdependent when it comes to developing a feature.

Currently naming each story branch the same way across projects to clearly see when there are dependencies in different git repos regarding particular story. E.g. you cannot have the story by just deploying project1, you need project2 as well.

Example naming:

  • Project1 story branch - "[TASK-1] New login process"
  • Project2 story branch - "[TASK-1] New login process"

The problem:

  1. Not sure if better way to represent this dependencies across multiple projects. Seems bit weird at first as you rely on some naming convention but then again I don't see better solution.

  2. Having in mind this solution of following naming convention for branch naming I'd like to gain better visibility of what is where. Consider this commit history within a single project.

http://www.kdgregory.com/images/scm.git/03-sprint.gif

Let's say we made a release on the black dot in master. Then there we started developing new stories. I would like to get visibility on:

  • which stories are fully merged in dev
  • which stories are fully merged in master
  • which stories are partially merged (it was merged but someone continued coding in the story branch and there are commits in dev/master and there are not-merged commits in the story branch)
  • are there extra commits in dev or master that does not come from story branch.

Basically what I have as input is two refs in git. "From" and "To" and I'd like to build a tool to get better picture what is where between those two ref points in time.

Ultimately I will be able to tell featureX has propagated through dev/master in project1 but still not merged in project2 etc...and gain better visibility and avoid troubles in development.

1

There are 1 answers

0
Raoul On

I suggest that you look into Git submodules, as it is the usual solution to automatically integrate a project from a repo into another project from another repo. You could divide your work so that each sub repo contains a single feature, but that would be quite tedious as compared to simple branching. With submodules you can define a particular sub repo commit as a dependency. No need for a new tool.