
Poniendo las fuentes del kernel en CVS
Mantener las fuentes del kernel en un arbol CVS es algo util si estas trabajando
en tu propio conjunto de cambios al kernel. hacerlo es algo facil, pero puede
mirarse un poco dificil cuando no sabes el truco. Esta pagina explica como.
La idea basica detras de estas guias es que tratas las fuentes del kernel de
Linus o Alan como ramas de vendedor, y que la rama es
tu propio arbol de desarrollo de la rama del vendedor.
Estas lineas de guia en esta pagina asumen que ya tienes un conociento basico acerca de CVS y que has creado un modulo milinux. Si no tienes
conocimiento, hay muchas formas de aprender más acerca de CVS:
Importando las fuentes del kernel
Pre requisitos:
- Repositorio CVS
- Fuentes de arbol Kernel
Ahora vamos a asumir que el kernel que quieres importar es
linux-2.4.7:
cd linux
cvs import -ko -I '!' -m "import linux-2.4.7" mylinux linus linus_2_4_7
Esto importa linux-2.4.7 dentro del modulo mylinux
usando la rama vendedor linus y el tag vendedor
linus_2_4_7. También le decimos a CVS que importe todos los archivos
(-I '!') y no haga sustitución del keyword
(-ko).
Importando un arbol de kernel -ac es
facil:
cd linux
cvs import -ko -I '!' -m "import linux-2.4.7-ac10" mylinux alan alan_2_4_7_ac10
Añadir más ramas vendedor queda como ejercicio para el lector.
Creando tu propia rama de trabajo
Pre requisitos:
Para crear una rama para hacer hacking de tu propio kernel de una de las ramas vendedor, usa:
cvs rtag -r linus_2_4_7 -b my_2_4_7 mylinux
Esto crea una rama my_2_4_7 del arbol de kernel
linux-2.4.7.
Chequeando tu propia rama de trabajo
Pre requisitos:
chequeemos tu nueva rama recien creada:
cvs checkout -r my_2_4_7 mylinux
Ahora cd mylinux y comienza el hacking en tu propio arbol de kernel.
Actualizando a una version más reciente de kernel
Pre requisitos:
- Repositorio CVS
- CVS sand box
Si quieres actulizar a una nueva version de kernel, primero importa
la version de kernel y crea tu propia rama de trabajo para esto, como se describio anteriormente.
Ahora compromente los cambios a tu actual rama de trabajo:
cd mylinux
cvs commit
Actualiza tu sand box a la nueva rama de trabajo (asumiendo que se llama
my_2_4_8):
cvs update -dP -r my_2_4_8
Combina las diferencias de la rama de trabajo previa :
cvs update -dP -j linus_2_4_7 -j my_2_4_7
Ahora comienza a solucionar los conflictos de combinacion (si hay alguno) y continua el hacking en la nueva rama de trabajo.
Creando un diff
Pre requisitos:
- Repositorio CVS
- CVS sand box
Un diff entre versiones arbitrarias del kernel pueden hacerse sin ninguna sand box:
cvs rdiff -u -r linus_2_4_0 -r alan_2_4_7_ac10 mylinux > mydiff
Esto crea un archivo diff unificado (-u) entre
linux-2.4.0 y linux-2.4.7-ac10.
También puedes hacer un diff entre tu actual sand box y una version arbitraria de kernel:
cd mylinux
cvs diff -u -N linus_2_4_6 > mydiff
(Note que la bandera -N solo funciona con versiones recientes de CVS. Versiones previas producen un parche de solo que los archivos que se han modificado.)
Problemas con los tags existentes de CVS.
Algunos desarrolladores de kernel usan CVS reservadamente, y los diffs que envian a Linus para inclusion contienen tags tales como $id: $
Si añades un archivo sin usar la opción -ko, CVS realizara sustitución en ese archivo
, los cuales hacen diffs molestos para los arboles de kernel vainilla.
Si olvidaste usar la opción -ko, no todo esta perdido.
Puedes 'corregir' el repositorio usando cvs admin -ko
Pero acostumbrate a tomar el habito de importar/añadir archivos con la opción -ko
|