web-dev-qa-db-de.com

Wie führe ich SVN-Befehle von einem Python-Skript aus?

Grundsätzlich möchte ich ein Python-Skript schreiben, das mehrere Dinge ausführt. Eine davon besteht darin, ein Checkout mit Subversion (SVN) für ein Repository auszuführen und vielleicht ein paar weitere svn-Befehle vorzuformen. Was ist der beste Weg dies zu tun? Dies wird als Crond-Skript ausgeführt.

17
Ricardo Parro

Würde das funktionieren?

p = subprocess.Popen("svn info svn://xx.xx.xx.xx/project/trunk | grep \"Revision\" | awk '{print $2}'", stdout=subprocess.PIPE, Shell=True)
(output, err) = p.communicate()
print "Revision is", output
19
ovidoo83

Versuchen Sie pysvn

Bietet Ihnen einen hervorragenden Zugang, soweit ich es getestet habe ... Hier einige Beispiele: http://pysvn.tigris.org/docs/pysvn_prog_guide.html

Der Grund, warum ich sage, soweit ich es getestet habe, liegt darin, dass ich zu Git gewechselt bin. Aber wenn ich mich erinnere, ist pysvn die einzige Bibliothek für svn.

14
Torxed

Schauen Sie sich das python xonsh-Modul an: http://xon.sh/tutorial.html

Es kann Shell-Befehle plus Piping und Ausgabeumleitung aufrufen, wobei der native python geschachtelter) Code genauestens berücksichtigt wird, ohne dass mit python= Bullshet- und Escape-Zeichen ausgetauscht werden müssen um.

Beispiele :

env | uniq | sort | grep PATH

COMMAND1 e>o < input.txt | COMMAND2 > output.txt e>> errors.txt

echo "my home is $HOME"

echo @(7+3)

0
Andry