2012-04-04 20 views
4

Ich lasse jede Nacht sudo svn --username radek update ".$codebase." --force"; von meinem PHP-Skript (auf SuSE) laufen, bevor Automatisierungstests beginnen. Der Test wird mit dem neuesten Code durchgeführt, der heute eingecheckt wurde. Wie kann ich sicher wissen, dass svn up erfolgreich beendet wurde? Also, falls es nicht war, wird der Test nicht ausgelöst?Wie finde ich heraus, ob 'svn up' erfolgreich beendet wurde?

Antwort

4

in der Befehlszeile haben sollte, ich laufe svn status -q in der Regel die nichts gedruckt werden soll, wenn alles auf dem neuesten Stand ist. Andernfalls wird entweder ein Fehler ausgegeben oder angezeigt, welche Dateien noch nicht aktualisiert wurden.

Wie andere erwähnt haben, sollte svn up einen Wert ungleich null zurückgeben, wenn es aus einem bestimmten Grund fehlgeschlagen ist.

Sie sollten sich mit einem kontinuierlichen Build-System wie Jenkins beschäftigen. Sie könnten Jenkins Ihre Tests bei jedem Commit ausführen lassen oder automatisch zu einem bestimmten Zeitpunkt während des Tages ausführen lassen. Auf diese Weise erfinden Sie das Rad nicht neu. Außerdem könnte Jenkins die Testergebnisse per E-Mail senden und Ihnen einen Platz zur Verfügung stellen.

+0

Ich starte Svn und dann Rational-Skripte. Kann Jenkins dazu? Ich habe bereits eine funktionierende Sinatra-Anwendung, um das zu tun. – Radek

+0

Jenkins wird das 'svn up' kostenlos machen. Sie können ein Shell-Skript oder eine Befehlszeile von Jenkins ausführen. Solange Ihre Rational-Skripts über die Befehlszeile ausgeführt werden, sollten keine Probleme auftreten. Die Ausführung von Rational-Skripts muss jedoch auf dem System mit Jenkins installiert werden. –

+0

Nach 'svn up' starte ich' svn --username radek status -qu', um den Status der Codebasis herauszufinden. – Radek

3

Verwenden Sie entweder den Rückkehrcode des Befehls svn (sollte Null sein), oder überprüfen Sie die letzte Zeile der Standardausgabe. Es sollte so etwas wie:

At revision 123. 

Denken Sie daran, dass Sie die richtige LOCALE

5

svn update sollte einen von Null verschiedenen Wert zurück, falls es irgendwelche Ausfälle waren (beispielsweise Netzwerkfehler/Plattenfehler)

jedoch eine zusätzliche Überlegung ist, Konflikte verschmelzen. svn update betrachtet als "Erfolg" das Aktualisieren der Arbeitskopie mit Zusammenführungskonflikten.

Daher kann es für Sie wichtig sein, auch svn status -q ausführen und suchen Sie nach Dateien mit "C" Status, abhängig von Ihrer Anwendung - Ich nehme an, Sie möchten eine andere Aktion ausführen, wenn das Update mit Konflikten abgeschlossen ist.

+0

Ich versuchte 'svn status -q' und ich bekam den Status' m'. – Radek

+0

Geben Sie 'svn help status' ein, um eine Liste der einzelnen Zeichen anzuzeigen. (Es gibt ein paar Dutzend verschiedene Buchstabencodes) –

Verwandte Themen