Let me start by saying that my GIT knowledge is fairly shallow, so I'm guessing that there might be something I'm missing.
THE SETUP:
As an example, we have a project which is being developed as a collection of plug-ins/modules.
Some modules, such as contact management, depend on others, such as validation.
Each module has it's own branch.
CURRENT WORK FLOW:
Our validation module is being concurrently developed with our other modules, just in a separate stream. In doing so, I am finding that I am having to do a lot of checking out back and forth (as well as a lot of stashing (and merging, but that I'm fine with)).
For example, say I'm developing module_x which needs a new validation rule (which will have uses in other modules as well) ... I then:
- stash my work
- checkout the validation branch
- write the rule
- commit
- checkout the module_x branch
- pop the stash
- merge the validation branch into module_x.
Now, if I come up with an improvement for something in the validation branch (or just need to fix a bug), I have to go through all that all over again.
Between new development, refactoring/improvements, and bug fixing, I feel like I'm spending entirely too much time just switching back and forth between developments streams, and can't help but think that there's a better way.
DO's and DONT's:
Is this really how it's done, or am I completely missing the bigger picture? :)
What works for you?