Si la automatización de tareas es uno de los grandes objetivos de Phing, la gestión del control de versiones es un objetivo importante. Las tareas de despliegues sistemáticos, principalmente para el testeo y la integración continua se pueden agilizar utilizando Phing.
Para el caso, veremos las tareas disponibles para las dos herramientas más populares de control de versiones: Git y Subversion. Salvo excepciones notables, las tareas de ambos casos permiten más o menos los mismos objetivos, pero dado que los dos sistemas tienen algunas diferencias estructurales y de nomenclatura, las tareas varían ligeramente.
Los siguientes apartados asumen que ya tienes unas nociones mínimas del concepto de control de versiones, así como de los comandos más habituales. Si no fuera así, visita la documentación de Git o el libro de Subversion.
Subversion en este caso no tiene una rutina de inicialización de repositorios.
since="Sun Jan 23 23:55:42 2013 +0300"
until="Mon Jan 24 09:59:33 2013 +0300"
outputProperty="logs"
repository="/ruta/al/repositorio" />
svnpath="/usr/bin/svn"
workingcopy="/home/user/svnwc"
propertyname="svn.log"/>
repository="git://github.com/path/to/repo/repo.git"
targetPath="/ruta/al/repositorio"/>
svnpath="/usr/bin/svn"
repositoryurl="svn://localhost/project/trunk/"
todir="/ruta/a/copia/de/trabajo"/>
repository="/ruta/a/repo"
branchname="nombre-rama" />
repository="/ruta/a/repo"
remote="nombre-rama-1 nombre-rama-2"
message="merging repos" commit="true" />
repository="/ruta/al/repositorio"
branchname="mi-rama" quiet="true" create="true" />
svnpath="/usr/bin/svn"
username="anony"
password="anony"
nocache="true"
repositoryurl="svn://localhost/project/trunk/"
todir="svn://localhost/project/tags/0.1"/>
svnpath="/usr/bin/svn"
repositoryurl="http://localhost/project/tags/2.4.2"
todir="/ruta/a/copia/trabajo"/>
repository="/ruta/al/repositorio"
refspec="master:foobranch" tags="true" />
repository="/ruta/al/repo" all="true" />
repository="/ruta/al/repo" all="true" />
workingcopy="/ruta/a/copia/local"
message="Comentario del commit" />
svnpath="/usr/bin/svn"
todir="/ruta/a/copia/local"/>
© 2007 and beyond Mario Alberich, licensed under CC-BY-SA unless stated otherwise.