Schnelle Frage, wie man mit einem Hotfix-Szenario in SVN und GIT umgeht, bitte korrigieren Sie mich, wenn ich falsch liege.GIT-Tags im Vergleich zu SVN-Tags und HotFix-/Patch-Management
Ich komme aus einer soliden Erfahrung mit SVN, ich habe weniger Erfahrung mit GIT und ich möchte vor allem wissen, ob meine Übersetzung in GIT in Ordnung ist (nicht die beste überhaupt!), Aber nur wenn es wie erwartet funktionieren sollte.
SVN:
ich auf den Stamm zu entwickeln, fragt der Kunde mich auf eine Besonderheit zu arbeiten, und ich entscheiden, auf einem Zweig
Das Merkmal dieses Feature zu entwickeln ist in Ordnung, ich bin dabei, es mit dem TRUNK zu verschmelzen, der in der Zwischenzeit mit einigen Änderungen aktualisiert wurde, aber der Kunde fragt mich sofort nach einer Freigabe und dass sie den Test auf den BRANCH konzentriert haben, so dass sie nicht wollen um das Feature in den TRUNK zu integrieren, aber sie wollen, dass ich den BRANCH direkt freigebe .
OKAY, weit genug, ich TAG der BRANCH und ich lasse es zur PRODUKTION, dann werde ich die nächsten Tage verbringen das Feature in die TRUNK für die nächste Version verschmelzen, wenn meine TRUNK Änderungen live gehen wird, außerdem entscheide ich um den BRANCH zu löschen, weil ich das nicht mehr möchte, weil die Funktion entwickelt wurde und in den TRUNK integriert wird (und ich habe den TAG, um den Basiscode zu speichern)
OH MEIN GOTT! Es gibt einen Fehler in der neuen Funktion, ich muss es reparieren, aber ich habe nicht die BRANCH mehr, keine Sorgen "Version der Kontrolle" sind dafür gemacht, nur Branch der Tag gerade veröffentlicht, entwickeln Sie Ihre Fix und dann freigeben es wieder, dann vergiss nicht, den Fix wieder in den TRUNK zu verschmelzen.
GIT:
ich auf dem MAIN_DEV Zweig bin zu entwickeln, die Kunden bitten, mich auf eine Besonderheit zu arbeiten, und ich entscheiden, auf einem FEATURE_BRANCH
diese Funktion zu entwickeln
Die Funktion ist in Ordnung, ich bin dabei, es mit dem MAIN_DEV zusammenzuführen, das in der Zwischenzeit mit einigen Änderungen aktualisiert wurde, aber der Kunde ist in meine neue Funktion verliebt und bittet mich, sie sofort zu veröffentlichen und sie habe sein de Fokussieren der Tests auf die FEATURE_BRANCH, so dass sie nicht wollen, dass die Feature in den Zweig MAIN_DEV zusammengeführt, aber sie wollen, dass ich direkt die FEATURE_BRANCH freigeben und ich es freigeben zur Produktion, dann werde ich die nächsten Tage damit verbringen, das Feature in MAIN_DEV für die nächste Veröffentlichung zu verschmelzen, wo meine MAIN_DEV-Änderungen live gehen, außerdem entscheide ich mich, den Feature_branch zu löschen, weil ich ihn nicht mehr möchte, weil ich die Funktion entwickelt habe ..
OH MEIN GOTT! Es gibt einen Bug in der neuen Funktion, ich muss es reparieren, aber ich habe nicht mehr die FEATURE_BRANCH, und ich kann es nicht in den MAIN_BRANCH beheben, da es neue Updates enthält, die ich nicht veröffentlichen möchte ... keine Sorge "version of control" wird dafür gemacht, verzweigen Sie einfach das gerade veröffentlichte Tag, entwickeln Sie Ihr Update und geben Sie es dann wieder frei. Vergessen Sie dann nicht, das Update wieder in MAIN_DEV zusammenzuführen.
Fragen:
- Es ist meine die GIT Übersetzung meines SVN Flow richtig?
- Wenn ich mein Tag aus meinem feature_branch, dann lösche ich meine feature_branch, weil die Funktion entwickelt wurde, kann ich immer HotFix oder Patches auf einem neuen Zweig aus dem Tag gerade veröffentlicht, es gibt keine Notwendigkeit, gespeichert zu halten Feature-Zweig, weil ich alles in den TAG (Code, Geschichte und so weiter) bekam. Habe ich recht?
Tut mir leid, ich habe nur korrigiert ... Tag sind unveränderlich auch in SVN, es war ein Tippfehler :) Ich würde mich freuen, wenn Sie Ihre Antwort ändern können ... ich will nicht, dass jemand denkt, dass ich glaube Ich kann einen TAG modifizieren, was ein Mord an der Version des Kontrollprinzips ist! XD – ivoruJavaBoy
@ivoruJavaBoy: Seit wann sind Tags in SVN unveränderlich? –
Das Ding, das technisch SVN Ihnen die Chance gibt, ein Tag zu ändern, bedeutet nicht, dass es vorgeschlagen oder richtig ist! Es wäre wie gesagt, dass jeder überall schreiben kann, wenn Sie ein Repo erstellen, aber als Sie Berechtigungen verwalten, wer zu entscheiden hat Recht zu schreiben wo, und in diesem Moment schließen Sie die Schreibrechte in TAGS. Ich habe in vielen Unternehmen mit SVN gearbeitet und ich habe noch nie jemanden gesehen, der TAGS beschreibbar ließ, also hast du recht: Ich war nicht präzise in meiner Antwort: TAG sind unveränderlich für ihre Natur, aber das andere Werkzeug (CVS, GIT, SVN und so weiter) verwalten sie auf verschiedene Arten – ivoruJavaBoy