6 Stimmen

Geht es bei der Versionskontrolle um den Verlauf der Bereitstellung oder den Verlauf der Entwicklung?

... sagen wir, ich checke etwas Code aus, mache ein wenig Entwicklung oder Refactoring oder was auch immer ... checke ich es erst wieder ein, wenn ich völlig zufrieden bin? ... was ist, wenn ich meine Meinung über etwas ändere, während ich kodiere? kann ich zu einer früheren lokalen Version zurückgehen? gibt es einen Verlauf meiner lokalen Entwicklung?

Geht es bei der Versionskontrolle um den Verlauf der Bereitstellung oder den Verlauf der Entwicklung?

0voto

Dan Vinton Punkte 25571

Wann Sie sich wieder melden müssen, hängt von den Richtlinien Ihres Teams ab. Einige Teams verwenden Tools zur kontinuierlichen Integration, um sicherzustellen, dass die aktuelle Version des Codes kompiliert wird und die Tests besteht, was bedeutet, dass Sie normalerweise keinen fehlerhaften Code committen sollten. Die Arbeit in einer Verzweigung kann das Risiko verlorener Arbeit in dieser Situation mindern.

Was die lokale Historie betrifft, so ist diese bei der Versionskontrolle nicht kostenlos, obwohl einige IDEs ihre eigene lokale Historie pflegen.

0voto

Nick DeVore Punkte 9373

Jeff meint, Sie sollten Früh einchecken, oft einchecken . Ich dann auf die gleiche Art der Idee zu abonnieren. Allerdings verwende ich meinen Stamm als mein Haupt-Respository, das "produktionssicher" ist, während meine Zweige der Ort sind, an dem ich alle meine Entwicklungen vornehme. Auf diese Weise kann ich alle meine Änderungen einchecken, wann immer ich will, ohne mir Sorgen machen zu müssen, dass sie in die Produktion gelangen. Wenn ich mit einer bestimmten Verbesserung fertig bin, führe ich sie von diesem Zweig zum Stamm zusammen.

0voto

FireClaw Punkte 155

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.

-1voto

BenAlabaster Punkte 37617

Das hängt davon ab, wie Ihr Versionskontrollsystem verwendet wird...

Meiner Erfahrung nach verwenden die meisten Unternehmen sie für die Einsatzhistorie in den meisten Bereichen. Das heißt, es sollte nur funktionierender Code eingefügt werden. Wenn man etwas auscheckt und dann dabei ist, einen Codeblock hinzuzufügen, der noch nicht funktioniert, bedeutet das, dass die Möglichkeit besteht, dass jemand anderes ein fehlerhaftes Produkt auscheckt.

Ich habe schon Situationen erlebt, in denen Unternehmen es so handhaben, dass man seinen Code jeden Morgen auscheckt und am Ende des Tages wieder eincheckt, egal in welchem Zustand man sich befindet. Wenn jemand anderes etwas hinzufügen möchte, kann er das auf diese Weise tun, unabhängig davon, in welchem Zustand er sich gerade befindet... und ich kann zwar sehen einige Sinn in der Logik, das funktioniert für mich einfach nicht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X