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
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.
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
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.
Ich versuchte 'svn status -q' und ich bekam den Status' m'. – Radek
Geben Sie 'svn help status' ein, um eine Liste der einzelnen Zeichen anzuzeigen. (Es gibt ein paar Dutzend verschiedene Buchstabencodes) –
- 1. Wie finde ich heraus, ob eine Klasse instanziiert wurde?
- 2. Wie finde ich heraus, ob ein Timer läuft?
- 3. Finde heraus, ob eine Funktion hat
- 4. Wie finde ich heraus, welche Zeichentaste gedrückt wurde?
- 5. Wie finde ich heraus, wann eine Webseite zuletzt geändert wurde?
- 6. Wie finde ich heraus, wann Apache zuletzt neu gestartet wurde?
- 7. Wie finde ich heraus, dass meine Abhängigkeitseigenschaft geändert wurde?
- 8. Wie finde ich heraus, ob eine bestimmte Taste wie Boxen in Schach geklickt wurde
- 9. Wie finde ich heraus, ob ein Prozess in C läuft?
- 10. Wie finde ich heraus, ob DStream leer ist?
- 11. Wie finde ich heraus, ob ein Objekt gesperrt ist? C#
- 12. Wie finde ich heraus, ob ein Element in jquery existiert?
- 13. Wie finde ich heraus, ob ein Steuerelement gerade ungültig ist?
- 14. Wie finde ich heraus, ob das Blatt leer ist?
- 15. Wie finde ich heraus, ob Element von jQuery umschlossen ist?
- 16. ActiveDirectory: Wie finde ich heraus, ob eine Domain verfügbar ist?
- 17. Wie finde ich heraus, ob die Zeit vergangen ist? Swift
- 18. Wie finde ich heraus, ob die Kamera verwendet wird?
- 19. Wie finde ich heraus, ob ein Termin privat ist
- 20. Wie finde ich heraus, ob Cookie in Flask App
- 21. Wie finde ich heraus, ob die App schon einmal installiert wurde?
- 22. Wie finde ich heraus, ob App im Hintergrund läuft oder Android getötet wurde?
- 23. Wie finde ich heraus, ob eine Datei bereits in einem StorageFolder erstellt wurde
- 24. Linux: Wie finde ich heraus, ob eine Datei von einem anderen Prozess aktualisiert wurde?
- 25. Wie finde ich heraus, ob eine Goroutine durchgeführt wurde, ohne zu blockieren?
- 26. Wie finde ich heraus, ob ein Skript als Nohup ausgeführt wurde oder nicht?
- 27. Wie finde ich heraus, ob Argparse-Argument tatsächlich in der Befehlszeile angegeben wurde?
- 28. git svn: Die Deltaquelle wurde unerwartet beendet
- 29. Wie finde ich den aktuellen Überlaufprüfkontext heraus?
- 30. Wie kann ich feststellen, ob ein Realm erfolgreich aktualisiert wurde?
Ich starte Svn und dann Rational-Skripte. Kann Jenkins dazu? Ich habe bereits eine funktionierende Sinatra-Anwendung, um das zu tun. – Radek
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. –
Nach 'svn up' starte ich' svn --username radek status -qu', um den Status der Codebasis herauszufinden. – Radek