Es ist definitiv eine persönliche Entscheidung, wann man eincheckt und was man eincheckt. Einige Faktoren, die bei der Entscheidung helfen können, sind, ob Sie ein zentrales oder verteiltes Versionskontrollsystem verwenden und ob ein Team oder eine Einzelperson an dem Code arbeitet.
Bei verteilten Systemen ist alles, was Sie einchecken, lokal für Sie und nur das, was Sie anderen zur Verfügung stellen, ist das, was sie sehen. Wenn Sie also einen kaputten Tree haben, weil Sie häufig einchecken, spielt das keine Rolle, während es bei einem zentralen Repository, wenn Sie in den Trunk einchecken, generell eine gute Idee ist, nur funktionierenden Code einzuchecken. Wie würden Sie sich fühlen, wenn Sie Ihren Baum aktualisieren und jemand anderes in Ihrem Team den Code beschädigt und Ihre Kopie nicht mehr kompilieren kann. Eine einfache Möglichkeit, dieses Problem in einem zentralen Repository zu umgehen, wäre es, den Stamm-Code zu verzweigen, Ihre Änderungen häufig einzubringen und dann, wenn Sie zufrieden sind, dass es korrekt funktioniert, können Sie Ihren Zweig wieder in den Stamm einbringen. Auf diese Weise halten Sie den Stamm nicht davon ab, immer in einem lauffähigen Zustand zu sein, was ein nützlicher Zustand ist, um ihn zu erhalten. Dies wird umso wichtiger, je mehr Leute Sie zu Ihrem Team hinzufügen.
Das Zurückgehen auf frühere Versionen ist kein Problem, wenn sie in das Repository eingecheckt worden sind. Sie können so viele Versionen zurückgehen, wie Sie möchten, indem Sie sich das Übergabeprotokoll ansehen und dann den entsprechenden Befehl verwenden, um zu einer bestimmten Revision zurückzugehen.