Parece que tomar notas es una tontería, pero no es tan sencillo. Mis requisitos: Soberanía. Mis notas deben ser mías. No quiero a ninguna corporación husmeándolas. Supervivencia. Las aplicaciones de notas van cambiando… se venden y se compran, caducan, evolucionan… No me opongo a cambiar de aplicación en el futuro, pero no quiero tener que reescribir mis notas. Sincronización. Quiero poder escribir en mi ordenador y leer en mi móvil, y viceversa.
Primero, el contexto: quería abrir este backport a OCB 9.0, pero había clonado así:
$ git clone --depth 100 --branch 9.0 https://github.com/OCA/OCB.git
El problema ahora es que para hacer cherry-pick del commit correspondiente en Odoo 10.0, hubiera necesitado mucho tiempo descargando todo ese árbol de código, que es considerablemente grande.
Es por eso que usé un par de herramientas que nos dan git y GitHub para estos menesteres:
Cuando uno trabaja en una rama de desarrollo con git, es bastante habitual que haya que cambiar multitud de detalles hasta que se mezcla en la rama principal. A veces lo que estás desarrollando incluye varios commits lógicos, pero se acaban diluyendo entre multitud de "quitar basura", "wip", "typo", "PR review", etc. Para que luego se quede el historial limpio, normalmente se hará un rebase manual, pero en tales circunstancias es un rollo.
Supongamos que tengo un repo gigantesco y quiero descargar solo 100 commits para clonar más rápido:
$ git clone --branch 9.0 --depth 100 https://github.com/odoo/odoo.git
Guay, pero ahora necesito 100 commits de la rama 10.0 también para poder cambiar a ella. Normalmente haría:
$ git fetch --depth 100 origin 10.0 $ git checkout 10.0
Pero me encuentro con que el checkout
no funciona como era de esperar...
¿Qué hago?
Bueno, esta tarea es bastante compleja, y no se me ocurren muchos ejemplos teóricos, así que vamos con un caso real.
Como muchos sabréis, soy miembro activo de la OCA y un contribuyente habitual a Odoo.
Una de las novedades de Odoo 9.0 fue el
módulo website_slides
, que
fue backporteado por la comunidad a Odoo 8.0.
Sin embargo, desde que se realizó el backport hasta el día de hoy, el módulo ha recibido varios parches upstream 9.0 que la versión backporteada no tenía, así que lo que quiero es actualizarlo, sin perder el historial de Git.
Recientemente tuve que hacer una transferencia de código fuente algo complicada. Tenía que transferir un addon de Odoo desde un repositorio a otro completamente diferente:
crm_department
.
crm_partner_department
para evitar conflictos con
un módulo llamado crm_department
de la OCA.
partner_contact_department
(aparte de otros cambios que
no vienen a cuento).
Veamos cómo se puede hacer con Git y con Mercurial.
Si trabajas como hacker, programador y/o administrador de sistemas, agradecerás tener a mano en tu tableta un kit básico con las 4 herramientas clave que uses a diario, que además son libres:
Es bastante habitual que la gente que me conoce me hable de temas informáticos y acabe surgiendo mi odio a Windows en algún momento, y me pregunten el por qué.
Básicamente, el uso de Windows nos ha implantado dogmas que uno acepta sin más, pero que en realidad no tienen sentido. Veamos algunos.
Conozco gente a quien le encanta Linux, pero que
siempre está reinstalándolo porque se lo ha cargado
intentando hacer algo que no sabía muy bien cómo hacer. Quizá un manazas que
se cree está aprendiendo a ser un manitas, o quizá simplemente le guste
hackear cosas. Aquí va una breve guía para quienes están en esa situación (y empiezan
a hartarse).
Si eres como yo, que me gusta Mercurial por encima de todos los demás VCS que he probado, pero te ves obligado a trabajar con Git muchas veces porque, aceptémoslo, es el más popular de todos, hay una herramienta que te hará feliz: Hg-Git.