¿Estrategia para mantener git branches que con diferentes versiones de una API?

¿Existe alguna forma efectiva de usar git para administrar dos twigs basadas en la misma lógica de código pero que soportan diferentes API? Aquí hay un ejemplo concreto: supongamos que tengo un repository con un file de Python 2 llamado abc.py En la confirmación A en la twig py2 , el contenido del file es:

 print 'A' 

Ahora me py3 de A con una nueva twig py3 y hago commit A3 con este contenido:

 print('A') 

De vuelta en la twig py2 , alguien hace una nueva confirmación B con contenido

 print 'A' print 'B' 

En py3 , py3 para get la actualización B y get este conflicto de fusión:

 <<<<<<< HEAD print('A') ======= print 'A' print 'B' >>>>>>> 9d898 

Entonces, el conflicto sobre la print 'A' se vuelve a plantear. Resuelvo esto para

 print('A') print('B') 

Ahora en py2 hay commit C con

 print 'A' print 'B' print 'C' 

y fusionar esto en py3 da el conflicto

 <<<<<<< HEAD print('A') print('B') ======= print 'A' print 'B' print 'C' >>>>>>> 2c5a5 

Así que de nuevo todos los cambios se vuelven a plantear como un conflicto de fusión.

Parece que con este enfoque de fusionarse frecuentemente de py3 a py3 cada fusión será más complicada y dolorosa que la anterior. ¿Hay alguna manera de usar git para mantener dos twigs como esta, donde el historial de fusión anterior se puede incorporar mejor? De lo contrario, creo que es mejor que realice tan pocas fusiones de "scope" como sea posible, en lugar de realizar pequeñas fusiones frecuentes, que generalmente es el mejor enfoque.

Antecedentes: bash portar un proyecto de Python 2 a Python 3. Si pudiera hacer esto de forma instantánea, lo haría y soltaría el soporte de Python 2, pero no puedo hacerlo al instante, así que tengo que permitir el desarrollo en Python. 2 twig mientras que el puerto Python 3 se realiza en otra twig. Sé que muchos proyectos grandes pasaron por una fase de compatibilidad de 2 y 3 simultáneamente con una base de código. Como no necesito admitir Python 2 una vez que Python 3 funciona, pensé que el process de portabilidad sería más simple si solo hiciera un puerto de una vía, pero el process de portar actualizaciones desde Python 2 parece más difícil de lo que pensé al principio. .

Descargo de responsabilidad: Sé que mi ejemplo es trivial y podría solucionarse utilizando la function de printing de __future__ en Python 2, pero no hay una solución tan fácil para todo. Además, creo que esta pregunta es más ampliamente aplicable a otros casos aparte de Python 2/3.