Grundvoraussetzung zum Einchecken: der Code muss kompilierbar sein. Sonst wird es für andere lästig, wenn sie ein Update der Quellen durchführen und zum Testen ihrer Änderungen den neuen Code erst einmal kompilierbar machen müssen.
Tests müssen meiner Ansicht nach nicht grün sein. Rote Tests sind ein guter Indikator, dass noch etwas angepasst werden muss.