A mí me funciona

El blog de Ignacio Cruz
bitbucket

Descargar un Pull Request de Bitbucket y aplicarlo en local

15 mar. 2016
·
  • Git
  • What is code
·
  • bitbucket
  • Git
  • patches

La verdad, el título suena feo pero a saber cómo se dice correctamente en Castellano, esto de trabajar con Git te arma líos con los idiomas.

A veces, revisar un Pull Request con muchos cambios en Bitbucket es complicado. Lo mejor es descargar los cambios como un patch y aplicarlos en local, probarlo y decidir si el Pull Request puede añadirse o si debería ser rechazado.

Es fácil pero Bitbucket no es muy obvio con esto porque como todos sabemos, Bitbucket al igual que Github hacen poco bien a su experiencia de usuario desde la web. Básicamente pasan bastante de nosotros, desarrolladorcitos.

Venga, paso a paso, un, dos, un, dos:

  1. Lo primero es crear una nueva rama (branch) de pruebas en nuestro repositorio. De esta forma, una vez revisado el Pull Request, podemos desechar dicha rama:
    git checkout -b pull-request-test
  2. La URL para descargar el patch es la siguiente:
    https://bitbucket.org/api/2.0/repositories/GROUP/PROJECT/pullrequests/ID/patch

    Claro, que hay que sustituir GROUP, PROJECT e ID por el nombre del grupo, el identificador del proyecto y el ID numérico del Pull Request respectivamente. Es fácil verlo desde el listado de Pull Requests pendientes.

  3. Guardamos esa URL como un archivo, por ejemplo, patch.patch
  4. Ahora nos vamos a la carpeta donde tenemos el proyecto en local y movemos el patch.patch a dicha carpeta. A continuación ejecutamos:
    git apply --stat patch.patch

    Esto nos dirá si el patch viene con algún tipo de problema (conflictos y cosas así)

  5. Por último, aplicamos el patch:
    git am --signoff < patch.patch
  6. Ya sólo queda probarlo. Una vez hemos terminado, volvemos a la rama principal, por ejemplo, master y borramos la rama de pruebas que hemos creado. Dejar por ahí ramas que no sirven para nada está muy feo.
    git checkout master
    git branch -D pull-request-test