Cómo hacer un cherry-pick sin descargar todo el histórico de un proyecto en GitHub

Categorías: Control de versiones Programación
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: En cuanto a GitHub, para cada commit o pull request, siempre podemos a√Īadir a la URL:

Lee Mas ‚Üí

Cómo usar autosquash en Git

Categorías: Control de versiones Programación
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.

Lee Mas ‚Üí

C√≥mo a√Īadir ramas remotas en git si clonaste con –depth o –single-branch

Categorías: Control de versiones
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? Por qu√© sucede Si no hubi√©ramos clonado con --depth 100, la cosa funcionar√≠a as√≠:

Lee Mas ‚Üí

Cómo actualizar un backport modificado con Git

Categorías: Control de versiones Programación
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.

Lee Mas ‚Üí

Transferir código entre repositorios, con archivos renombrados

Categorías: Control de versiones Opinión Programación Tutoriales
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: En el repositorio Antiun/antiun-odoo-addons, el módulo fue creado como crm_department. Más tarde se renombró a crm_partner_department para evitar conflictos con un módulo llamado crm_department de la OCA. Ahora yo tenía que moverlo al repositorio OCA/partner-contact renombrándolo a partner_contact_department (aparte de otros cambios que no vienen a cuento).

Lee Mas ‚Üí

Convierte tu tableta Android en un puesto de trabajo

Categorías: Administración de sistemas Android Opinión Programación
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: Terminal Termux es una terminal con apt-get y un repositorio con muchos paquetes. Como lo lees. Puedes hacer cosas como: $ apt-get install ssh git nano vim emacs ruby perl php gcc fish w3m zsh lua nodejs python python2 Por ejemplo, para instalar Mercurial (aunque hay un workaround que aplicar hasta el 1 de febrero de 2016):

Lee Mas ‚Üí

Los dogmas de Windows y por qué lo odio

Categorías: Opinión Windows
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. El reinicio m√°gico Pregunta a cualquier inform√°tico, soporte t√©cnico o administrador de sistemas Windows sobre cualquier problema, y la primera cosa que te preguntar√°n es: ¬ŅHas reiniciado el equipo?

Lee Mas ‚Üí

Cómo juguetear con Linux y no morir en el intento

Categorías: Administración de sistemas Empaquetado de software GNU/Linux Seguridad Virtualización
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). Haz las pruebas en una máquina virtual Todas las distribuciones Linux vienen con alguna herramienta de virtualización.

Lee Mas ‚Üí

Mercurial y Git pueden ser amigos

Categorías: Control de versiones Empaquetado de software Programación
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. Permite trabajar con Mercurial (y TortoiseHg, claro está) contra repositorios Git de forma casi transparente. Las ramas locales de Git se traducen a bookmarks de Mercurial (que, por cierto, no conocía, y es un método fantástico para trabajar), y las ramas remotas de Git se traducen a etiquetas locales de Mercurial (bueno, algo parecido).

Lee Mas ‚Üí

Cómo migrar un repositorio de Bazaar a Git

Categorías: GNU/Linux Programación
Recientemente habl√°bamos de c√≥mo escoger un control de versiones. Suponiendo que hayas escogido Bazaar y luego hayas querido cambiar a Git, esto te ser√° √ļtil: # yum -y install git bzr-fastimport $ git init nuevo-repo.git $ cd nuevo-repo.git $ bzr fast-export ../viejo-repo.bzr | git fast-import Por supuesto, si usas otra distro, cambia la primera l√≠nea por su instalador de paquetes correspondiente.