¿Cómo puedo actualizar kernel source a uno nuevo sin perder el código agregado?

Tengo una instantánea del código fuente del kernel de Android de hace un time, al que he agregado algunas características. Ahora tengo una versión más nueva de la fuente publicada por el fabricante. ¿Cómo puedo actualizar mi fuente sin perder mis cambios? Si uso

diff -Naur old/ new/ > new1.patch 

"" luego aplicar el parche

 patch -p1 < new1.patch 

Perderé el código modificado y los files adicionales que estaban disponibles en la fuente anterior, pero si los uso

 diff -Naur new/ old/ > new2.patch 

Conserva mi código modificado y los files adicionales, pero no sé si la fuente está actualizada o no. ¿Hay alguna solución para esto? Tal vez usando git rebase o merge? Gracias.

¿Lo entiendo correctamente? ¿Tuviste una versión kernel proporcionada por tu fabricante, a la cual hiciste tus propias modificaciones?

Entonces, ¿desea actualizar su versión del kernel, pero todavía tiene su modificación?

La forma más natural es trabajar con twigs y fusiones. Por ejemplo, puede actualizar su master sucursal de acuerdo con las entregas de su fabricante, y mantener una bifurcación my_code_branch (por supuesto, necesita un nombre de bifurcación mucho mejor que este) al que fusiona las actualizaciones del kernel aguas arriba.

 a---b---c---d - master (from manufacturer) \ +---x - my_branch (your own changes) 

Luego, cuando una actualización proviene de su fabricante, actualice su principal con:

 $ git checkout master $ git pull origin master # or whatever your remote is called 

y obten:

 a---b---c---d---e - master (from manufacturer) \ +---x - my_branch (your own changes) 

A continuación, combine los cambios de su fabricante, en su propia sucursal:

 $ git checkout my_branch $ git merge master 

Llegar:

 a---b---c---d---e---+ - master \ \ +---x---y - my_branch 

Si no necesita la twig master local, también puede permanecer en my_branch y get directamente:

 $ git pull origin master # while on my_branch 

Tenga en count que también podría hacer lo contrario: su código en el master mientras mantiene un manufacturer sucursal que mantendría actualizado con el fabricante.