Folgenden Einzeiler habe ich geschrieben, da svn bei einigen Verbindungen (z.B. Proxy, Mobilfunk) gerne mal mit einem Fehler abbricht und die Synchronisierung nicht abgeschlossen wurde.
error=1; while [ $error -ne 0 ]; do svn update http://part-db.googlecode.com/svn/trunk/ part-db-read-only; error=$?; done; unset error
Die Schleife wird solange ausgeführt, bis svn keinen Fehler mehr meldet. Damit die Schleife aber überhaupt erstmal ausgeführt wird, wird die Variable error mit einem beliebigen Wert ungleich 0 vorbelegt. Der Rückgabewert wird dann in dieser Variable gespeichert. Erst wenn der Rückgabewert gleich 0 ist, wird die Schleife verlassen und die Variable gelöscht. Natürlich lässt sich auch ein anderer Befehl oder ein Script aufrufen, sofern es einen Rückgabewert gibt.