Hier redigieren ein schnelles raues zum Code in der oben genannten Verbindung. Dieses sollte für Sie arbeiten. Ich habe es nicht zwar geprüft (ich habe nicht das SVN repo, zum es jetzt zu prüfen).
#! /bin/env Pythonschlange
„Beispiel-Subversion vorverpflichten Haken. “
def command_output (cmd):
„Den Standardausgang eines Befehls gefangennehmen. “
Subprozeß importieren
Subprozeß zurückbringen. Popen (
cmd.split (), stdout=subprocess.PIPE) .communicate () [0]
def files_changed (look_cmd):
""" Liste, welche die Akten durch diese Verhandlung hinzufügten oder aktualisierten.
„das geänderte svnlook“ gibt Ausgang wie:
U-Stamm/file1.cpp
Ein Stamm/file2.cpp
"""
def Dateiname (Linie):
Rückleitung [4:]
def added_or_updated (Linie):
Rückleitung und Linie [0] in („A“, „U“)
zurückgehen [
Dateiname (Linie)
für Linie im command_output (look_cmd % „geändert“) .split (“ \ n ")
wenn Sie added_or_updated (Linie)]
def check_filesname (look_cmd):
„Auf unzulässigen Dateinamen überprüfen. \
Es erlaubt Alphabete, Zahlen, Schläge (-), Unterstreichen (_) und Punkte (.) „
allowedRegex=re.compile („^ [a-zA-Z0-9 \ - _ \.]*$")
invalid_files = [
FF für FF, in files_changed (look_cmd)
wenn nicht allowedRegex.match (FF)]
wenn (invalid_files) > 0 len:
sys.stderr.write („die folgenden Akten haben unzulässigen Dateinamen: \ n%s \ n“
% „\ n“ .join (invalid_files))
zurückgehen len (invalid_files)
def Hauptleitung ():
Verbrauch = """ Verbrauch: %PROG REPOS TXN
Laufen vorverpflichten Wahlen auf einer Behälterverhandlung. """
vom optparse Import OptionParser
grammatische Definition = OptionParser (usage=usage)
parser.add_option („- r“,“--Neuausgabe ",
help= " Testmodus. TXN bezieht wirklich sich eine auf Neuausgabe. „,
action= " store_true ", default=False)
Störungen = 0
Versuch:
(entscheidet, (repos, txn_or_rvn)) = parser.parse_args ()
look_opt = („--Verhandlung“,“--Neuausgabe ") [opts.revision]
look_cmd = „svnlook %s %s %s %s“ % (
„%s“, repos, look_opt, txn_or_rvn)
Störungen += check_filesname (look_cmd)
ausgenommen:
parser.print_help ()
Störungen += 1
Rückholstörungen
wenn __name == „__main“:
Importsystem
sys.exit (hauptsächlich ())