I believe I have a very common problem that affects developers with multiple versions of their apps (in my case I have two: paid one and a free one).
To manage both versions I use the same git project with 2 different branches: free and paid
However my source code package names differ from each other (as expected), and with the java restrictions of having the directory names mapping to package names a problem arises: how to tell git to associate the files under a certain directory with each branch ?
Let me give you an example:
I’ve two branches:
- master
- free
In master my source code is under com.zemariamm, however in the “free” branch the source code is under “com.zemariamm.free”, how can I configure git to “tell him” that the source code under directory com.zemariamm (in branch master) maps to the source code under directory com.zemariamm.free (in branch free) ?
Thanks so much in advance,
Ze
In theory, you wouldn’t configure anything in Git:
If the content of
com.zemariamm.free.MyClassis very similar tocom.zemariamm.MyClass, Git should be able to link the history of theMyClassfile between the two directories in the two different branches.In particular, a merge from
freetomastershould report new evolutions (lines added, modified or removed toMyClass) from thecom.zemariamm.free.MyClassto thecom.zemariamm.MyClass.That only works if
MyClassis “similar enough between the two branches though:see “How does Git track history during a refactoring ?“