Puede obtener el número de revisión actual de un pago usando, en la línea de comando, "svn info
".
Por ejemplo:
$ svn info
Chemin : .
URL : http://.../trunk
Racine du dépôt : http://...
UUID du dépôt : 128b9c1a-...-612a326c9977
Révision : 185
Type de nœud : répertoire
Tâche programmée : normale
Auteur de la dernière modification : ...
Révision de la dernière modification : 185
Date de la dernière modification: 2009-09-28 20:12:29 +0200 (lun. 28 sept. 2009)
Nota que está localizada; si estás en Linux, se podría tratar de usar:
$ LANG=en svn info
svn: warning: cannot set LC_CTYPE locale
svn: warning: environment variable LANG is en
svn: warning: please check that your locale name is correct
Path: .
URL: http://.../trunk
Repository Root: http://...
Repository UUID: 128b9c1a-...-612a326c9977
Revision: 185
Node Kind: directory
Schedule: normal
Last Changed Author: mzeis
Last Changed Rev: 185
Last Changed Date: 2009-09-28 20:12:29 +0200 (Mon, 28 Sep 2009)
Si se usa esto desde PHP, sin embargo, conseguir que como XML podría ser más útil (más fácil de analizar, y no locale-consciente):
$ svn info --xml
<?xml version="1.0"?>
<info>
<entry
kind="dir"
path="."
revision="185">
<url>http://.../trunk</url>
<repository>
<root>http://...</root>
<uuid>128b9c1a-...-612a326c9977</uuid>
</repository>
<wc-info>
<schedule>normal</schedule>
<depth>infinity</depth>
</wc-info>
<commit
revision="185">
<author>...</author>
<date>2009-09-28T18:12:29.130307Z</date>
</commit>
</entry>
</info>
Sólo tiene que utilizar simplexml_load_string
en que, a buscar el atributo de la etiqueta revision
entry
.
Tenga en cuenta que no haría eso en cada vista de página: no tan rápido como uno esperaría para su aplicación.
En cambio, obtendría ese número de revisión al crear el archivo que luego enviaré al servidor de producción y lo almacenaré en algún tipo de archivo de configuración.
De esta manera, no necesita usar el comando svn
en su servidor de producción, y tampoco necesita hacer el pago en ese servidor.
¿Por qué 'shell = True'? Ver https://docs.python.org/2/library/subprocess.html#frequently-used-arguments – lorenzog
@lorenzog: Esta respuesta tiene casi 7 años, así que no recuerdo. Si ha verificado que funciona sin shell = True, hágamelo saber y lo editaré. –
Parece que funciona bien al menos para mí: http://stackoverflow.com/a/37157630/204634 (por alguna razón, no puedo @ -su nick ...?) – lorenzog