In our project we try to stay close to the "official" git workflow as it is suggested here: http://www.kernel.org/pub/software/scm/git/docs/gitworkflows.html
We use a master
and next
branch, start our topic branches off from master
, regularly do test integration into next
, and if a branch is complete, we merge it into master
.
Now sometimes it happens, that there's some development on topic-X
. A developer creates somefile.c
and adds code there that he needs for his topic. After a while another developer works on topic-Y
and finds out, that he also needs to create somefile.c
and even would need some parts of that file from topic-X
- but not the complete file, as it also contains code, which is only related to topic-X
. He may also have to add other code to that file.
If topic-X
would be complete and merged into master
, it would be easy: We could rebase topic-Y
to master
to make that code available. But what, if both topics are still incomplete?
Because topic-X
and topic-Y
are really unrelated, except for this minor shared code in somefile.c
, how can we avoid to merge them into each other and still provide both developers with the shared parts from somefile.c
?
If we create a fresh copy of somefile.c
in topic-Y
with only the relevant parts, we found that we get merge conflicts later, when we do test integration in next
. Is there any alternative?