Ich arbeite mit einem Team von Programmierern als Business Analyst. Wir haben gerade Version 2.0 unseres Produkts veröffentlicht und arbeiten an der nächsten Version, die in 3 Monaten veröffentlicht wird (es ist ein internes Softwareprodukt). Leider hat Version 2.0 einige Probleme, die behoben werden mussten, und wir werden diese Korrekturen in ein paar Wochen bereitstellen. Das Problem ist, dass wir die Änderungen, an denen noch gearbeitet wird und die erst in drei Monaten veröffentlicht werden sollen, auch nicht bereitstellen möchten.
Die Programmierer entschieden, dass dies so gehandhabt werden sollte, dass nur der Code für die Fehler eingecheckt und der Code für die neuen Verbesserungen auf den lokalen Computern des Entwicklers aufbewahrt wird, bis sie fertig sind. Ich muss lokale Builds von ihren Rechnern zum Testen bekommen, denn wenn sie den Code einchecken und wir einen weiteren Patch herausbringen müssen, um Fehler zu beheben, möchten wir diese Verbesserungen noch nicht einbeziehen. Es gibt auch das Problem, dass dieselbe Codedatei sowohl Fehlerkorrekturen als auch Verbesserungen enthält. Sie müssen daher die Codedatei lokal kopieren, dann eine Änderung vornehmen, um einen Fehler zu beheben und diesen einzuchecken. Anschließend können Sie die Arbeit an den Verbesserungen fortsetzen, indem Sie die übernehmen lokale Kopie, die sie gemacht haben.
Es scheint ziemlich verworren zu sein - gibt es eine bessere Möglichkeit, mit dieser Art von Szenario umzugehen? Wir verwenden Team Foundation Server und Visual Studio 2010.
Antworten:
In V2.0 sollte ein sogenannter "Steady-State-Branch" (wir haben Perforce und nicht TFS verwendet) erstellt worden sein, sobald er veröffentlicht wurde. Alle Korrekturen für v2 wurden an diesem Zweig vorgenommen und dann in den Entwicklungszweig von v3 übertragen, während auch an v3-Features gearbeitet wurde. Dh ein Fehler auf v2 würde auch auf v3 zu einem Fehler führen.
Wenn Änderungen lange Zeit auf den Computern der Entwickler gespeichert bleiben, wird dies wahrscheinlich zu einem Integrations-Albtraum führen.
quelle
Nun, es gibt mehrere Möglichkeiten , mit solchen Problemen umzugehen, die im Allgemeinen durch Verzweigungs-Tags abgedeckt werden und jeweils unterschiedliche Vor- und Nachteile haben.
Aber von Ihren Entwicklern gewählter Ansatz ... Ich zitiere ihn mündlich, um sicherzustellen, dass ich nicht falsch verstanden habe ...
... der Weg wie oben ist wahrscheinlich der einzige, der völlig falsch ist!
Was es für mich kriminell macht, ist, dass es für TFS eine hervorragende, leicht verständliche Microsoft Team Foundation Server - Verzweigungsanleitung gibt - ein umfangreiches und detailliertes Dokument mit Empfehlungen für Verzweigungsstrategien, das sorgfältig auf alle Arten von Projekten zugeschnitten und erklärt wurde ( HTML - Version) hier ).
quelle
bearbeiten
Sie fungieren nicht als De-facto-Team-Repository. Es ist für die Verwaltung Ihrer eigenen Arbeit, Refactoring-Bemühungen usw. und CYAing selbst, während das Team weiterhin die Codebasis FUBAR.
Bearbeiten beenden
quelle
Was Sie beschreiben, ist eine schreckliche Möglichkeit, die Versionskontrolle zu verwenden. Es hätte eine Verzweigung für Release 2.0 oder ein Tag oder eine Kennung geben müssen. Auf diese Weise können Änderungen an dieser Version eingedämmt und weitere Entwicklungen durchgeführt werden.
Dieser Artikel kann Ihnen einige Ideen geben. Es wurde mit dem
git
Gedanken geschrieben, aber es gibt keinen Grund, warum es nicht auch funktionieren könntemercurial
. Mir ist klar, dass Sie keines von beiden verwenden, aber das ist auch ein Problem, das Sie in Betracht ziehen sollten, zu beheben.quelle
Kurzes Antwort: Entwicklungsteam sollte einen hat getrennten Produktionszweig zu entfalteten Code-Basis V2.0 getrennt von dem halten Hauptstamm.
Alle Fehlerkorrekturen müssen zuerst in diesem Zweig durchgeführt und dann getestet und in anderen Zweigen bereitgestellt werden, damit der Code synchron bleibt .
Ihr Projekt sollte auch mehrere Umgebungen
for health development
wie Prod, Staging, QA und Dev (manchmal UAT) haben. Diese Umgebungen sollten eingerichtet werden, bevor Sie mit der Produktionsfreigabe beginnen.Alles in allem ist die Bereitschaft zu Fehlern und Änderungen die Möglichkeit, eine freigegebene Anwendung zu unterstützen.
Da TFS als Versionskontrolle erwähnt wurde, habe ich auch eine Liste von Artikeln zusammengestellt, die hilfreich sind, um die Entwicklungsumgebung (en) für den Gesundheitszustand festzulegen:
quelle
Nein, denn während Sie ein VCS verwenden, führen Sie keine Versionskontrolle durch.
Das zentrale Konzept für die Versionskontrolle ist die Verfolgung von Unterschieden im Zeitverlauf. Sie planen, einige Unterschiede aufzuzeichnen, aber im Moment werden die meisten Änderungen nicht aufgezeichnet.
Wie andere gesagt haben, sollten Sie Zweige verwenden. Sobald Sie dieses Setup haben, sollten Sie alle funktionalen Änderungen einchecken (dh nicht jeden Tastendruck, sondern jedes Mal, wenn Sie einen Fehler beheben, eine Funktion hinzufügen, eine Funktion löschen oder eine Änderung auf andere Weise abschließen, sodass sie weiterhin erstellt wird und funktioniert).
quelle
Ich bin ein Entwickler, und wir erhalten einen anderen Zweigcode und eine andere Datenbank für die Korrekturen der aktuellen Version sowie einen anderen für Verbesserungen und für eine spätere nachfolgende Version.
Sobald unsere Fixes fertig sind, werden sie mit der Produktion zusammengeführt und bereitgestellt. Wir erhalten einen neuen Zweig, der wieder mit den Verbesserungen arbeitet.
Außerdem folgen wir einer Übung, wie wenn ich 10 Fixes für meine aktuelle Version habe
Ich schreibe als
In ähnlicher Weise mache ich dies bei anderen Korrekturen nur für jede Zeile, die ich zur Korrektur ändere oder hinzufüge. Und einfach vergleichen und festschreiben. Wenn sie parallel auf demselben Zweig arbeiten, können sie dies auch tun
Ctrl+Shift+F
Befehl und Typ//Start Iteration 2, Fix No-1, Branch No-"ABC"
für die Suche in der gesamten Lösung helfen sehr, genaue Positionen, Dateien mit geändertem Code und frischen Code zu finden, nur dieser Teil kann zum Festschreiben verwendet werden.quelle