Skip to content

Instantly share code, notes, and snippets.

@ivansjg
Last active December 23, 2015 05:59
Show Gist options
  • Save ivansjg/6591242 to your computer and use it in GitHub Desktop.
Save ivansjg/6591242 to your computer and use it in GitHub Desktop.
Hacer un pull request al repo oficial de Play! con solo un commit, y hacer custom release de Play!.
El estado inicial es:
[jenkins@localhost play1]$ git branch
* 1.2.x
- Se hace nueva funcionalidad en la rama en la que estemos
- Hacemos commit de esa funcionalidad (apuntamos el SHA del commit porque luego lo necesitaremos)
- git push origin 1.2.x
- Hacemos una rama nueva temporal para hacer el pull request solo con el commit deseado
git checkout -b upstream origin/1.2.x
Ahora en la rama upstream tenemos lo siguiente:
commit ab6a765850c525ce5fcfbb5ac631827cdc35cd1d
Author: Jenkins user <[email protected]>
Date: Tue Sep 17 08:48:06 2013 +0200
[#1726] Support for Long in @InPast/@InFuture
commit 9d3e19ec3d70bd14ac6858eb140163cc75f7f8ca
Author: Ivan San Jose Garcia <[email protected]>
Date: Thu Sep 12 09:49:06 2013 +0200
Undo an official commit because it is incompatible with Cobertura module
commit e22350f9355386af9bd73b4c2e15eed4885ee402
Author: Ivan San Jose Garcia <[email protected]>
Date: Tue Sep 10 12:37:59 2013 +0200
Screenshots opened in a new browser tab/window
commit 03c10a1d3f5cf98071bf33632491fec03d1dcfda
Author: Ivan San Jose Garcia <[email protected]>
Date: Tue Sep 10 12:31:10 2013 +0200
Added link to failed Selenium 2 tests screenshots in test results
commit c68b6eb662205a65491efd5091796414cf396807
Author: Matthias Kurz <[email protected]>
Date: Mon Sep 2 12:08:11 2013 +0200
[fix cloubees timeouts] Increased pause(...) for a selenium test in the zencontact project
Slow connections can cause the tests to fail
Supongamos que no queremos meter los commit referentes al Cobertura, a los screenshots, y al Selenium, ya que son míos y no los van a integrar en la rama oficial.
Por tanto, en la rama upstream, borramos esos commits con "git reset --hard HEAD~4".
Ahora añadimos solo el commit que queremos hacer pull request a la rama oficial, que es el de @InPast/@InFuture:
git cherry-pick 76ad273
NOTA: El 76ad273 es el identificador del commit de cuando hicimos el commit en la rama 1.2.x al principio.
Ahora ya solo tenemos el commit deseado junto con los oficiales, así que ya podemos hacer push a nuestro repo de github:
git push --force origin upstream
Y ya podemos hacer el pull request a la rama oficial 1.2.x de Play!.
Borramos la rama upstream local:
git branch -d upstream
Y cuando nos acepten el pull request la borramos del repo remoto.
Partimos de que el directorio play1/ es donde tenemos el repo de GitHub.
cp -R play1/ play-1.2.x-1.2.6-36-g76ad273/
cd play-1.2.x-1.2.6-36-g76ad273/
rm .gitignore
rm -rf .git
cd .. && tar cvfz play-1.2.x-1.2.6-36-g76ad273.tgz play-1.2.x-1.2.6-36-g76ad273/
rm -rf play-1.2.x-1.2.6-36-g76ad273/
scp play-1.2.x-1.2.6-36-g76ad273.tgz [email protected]:~
rm play-1.2.x-1.2.6-36-g76ad273.tgz
En .120: sudo mv play-1.2.x-1.2.6-36-g76ad273.tgz /var/www/play/repo/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment