Aquí un áspero rápido corrige al código en el acoplamiento antedicho. Esto debe trabajar para usted. No lo he probado sin embargo (no tengo repo de SVN ahora para probarlo).
¡#! pitón de /bin/env
La “subversión del ejemplo precompromete el gancho. ”
command_output del def (cmd):
“Capturar la salida estándar de un comando. ”
importar el subproceso
volver el subproceso. Popen (
cmd.split (), stdout=subprocess.PIPE) .communicate () [0]
el def files_changed (look_cmd):
Lista del """ que los archivos agregaron o que se pusieron al día por esta transacción.
el “svnlook cambiado” da salida como:
Tronco/file1.cpp de U
Un tronco/file2.cpp
"""
nombre de fichero del def (línea):
línea de vuelta [4:]
el def added_or_updated (línea):
línea de vuelta y línea [0] en (“A”, “U”)
volver [
nombre de fichero (línea)
para la línea en el command_output (look_cmd % “cambiado”) .split (” \ n ")
si added_or_updated (línea)]
check_filesname del def (look_cmd):
“Comprobar para saber si hay nombres de fichero inválidos. \
Permite alfabetos, números, rociadas (-), las rayas (_) y los puntos (.) “
allowedRegex=re.compile (“^ [a-zA-Z0-9 \ - _ \.]*$")
invalid_files = [
FF para el FF en files_changed (look_cmd)
si no allowedRegex.match (FF)]
si len (los invalid_files) > 0:
sys.stderr.write (“los archivos siguientes tienen nombre de fichero inválido: \ n%s \ n”
% “\ n” .join (invalid_files))
volver len (los invalid_files)
cañería del def ():
uso = uso del """: %PROG REPOS TXN
Funcionar precomprometen opciones en una transacción del depósito. """
de la importación OptionParser del optparse
programa de análisis = OptionParser (usage=usage)
parser.add_option (“- r”,”--revisión ",
modo de prueba del help= ". TXN refiere realmente a una revisión. “,
action= " store_true ", default=False)
errores = 0
intento:
(opta, (los repos, txn_or_rvn)) = parser.parse_args ()
look_opt = (“--transacción”,”--revisión ") [opts.revision]
look_cmd = “svnlook %s %s %s %s” % (
“%s”, repos, look_opt, txn_or_rvn)
check_filesname de los errores += (look_cmd)
excepto:
parser.print_help ()
errores += 1
errores de vuelta
si == “__main” del __name:
sistema de la importación
sys.exit (principal ())