![]() |
DVCS: Bunnyhopping noch notwendig?
Anfängerfrage:
Szenario: Man arbeitet in einem Zweig und findet einen Bug. Bis dieser Bug gefixed ist kann man nicht weitermachen. Der Bug muss natürlich im Stamm korrigiert werden. In SVN sah mein Vorgehen so aus:
Ist das in, sagen wir, Mercurial noch notwendig? In einem kleinen Test konnte ich lustig hin- und hermergen und alles schien reibungslos zu klappen. Meine Frage: Ist die Welt hier wirklich so unbeschwert oder steuere ich auf einen Abgrund zu, den ich erst in Monaten sehen werde? |
AW: DVCS: Bunnyhopping noch notwendig?
In SVN sah das eigentlich so aus. :stupid:
Solange man die Merge-Infos committet hat, konnte SVN später recht gut bestimmen was bereits wo ist und hatte kaum Probleme beim hin- und hermergen. Schwierig wurde es nur, wenn man Revisionen zwischen verschiedenen Brunches rumschob. (über mindestens 2 andere Branches hinweg) Bei sowas sollte man besser immer über den Basispfad (z.B. Trunc) das Ganze verteilen ... also als Baum betrachtet die Ableitungen immer nur direkt die Äste entlang und keine Abkürungen kreuz und quer. |
AW: DVCS: Bunnyhopping noch notwendig?
Ich weiß nicht, das mit den Mergeinfos hat nie wirklich toll geklappt oder ist wohl falsch gemacht worden. Die Änderungen aus dem Trunk in den gleichen Zweig reinzuziehen war immer ein Patentrezept für riesige Mergekonflikte die eigentlich nicht hätten sein müssen. Zumindest habe ich das so in Erinnerung.
Ich habe es immer nur so gemacht, wie mir aufgetragen wurde- ohne Nachdenken. Ich bin ein guter Mitläufer. |
AW: DVCS: Bunnyhopping noch notwendig?
Mergeprobleme zwischen Trunc und Branch sind hier eigentlich immer nur aufgetreten, wenn man schon länger den Branch nicht aktualisiert hatte und sich an den zu mergenden Stellen zwischenzeitlich was geändert hatte, das noch nicht gemerget wurde.
Bei uns gab es anfangs Probleme, da die Mergeinfos einfach verworfen wurden (revert), weil man sich dachte "hier hab ich doch nichts geändert und das sieht nicht nach (absichtlichen) Änderungen von mir aus, also weg damit". |
AW: DVCS: Bunnyhopping noch notwendig?
Zitat:
|
AW: DVCS: Bunnyhopping noch notwendig?
Zitat:
![]() (*) Da steht zwar git aber ich denke, das lässt sich mit Hg genauso benutzen. |
AW: DVCS: Bunnyhopping noch notwendig?
Wenn wir bei meinem Fall "Mich interessiert nur der eine Commit im default der den Bug gefixed hat" bleiben: Wo wäre denn jetzt der Unterschied zu einem "Graft"?
Anhand dieser liebevollen Skizze:
Code:
Nach dem Aufmachen meines Branches hat niemand mehr etwas an Default verändert. Ich fixe in Default diesen Bug. Wie bringe ich den Fix jetzt zurück? Per Merge oder Graft?
? [Ich will den Fix aus default haben]
* | | * | | | * | | | * myBranch | / |/ * Default Spontan hätte ich doch gesagt dass ein "graften" generell die bessere Wahl ist da ich mir hier
|
AW: DVCS: Bunnyhopping noch notwendig?
Wenn in Default nur dieses eine zusätzliche ChangeSet vorhanden ist bleibt es Geschmacksache. Andernfalls wäre ein Graft wohl die bessere Wahl.
|
AW: DVCS: Bunnyhopping noch notwendig?
Wenn du den Branch noch nicht irgendwohin gepusht hast (zm Beispiel für ein Code review), könnte man in Git einfach ein Rebase auf deinen "Default" machen damit dein Feature branch sauber auf dem neuen Changeset aufbaut (eventuelle Konflikte müssen natürlich behoben werden)
Sonst sähe das später so aus: *\ merged fature | * Fix in feature |/| X | Fix in default | * | | | * | | | * myBranch |/ * Default Bei nur einem Fix in der Lebenszeit deines Feature branches mag das Okay sein. Aber irgendwann kriegt man da Augenkrebs. Da macht das dann IMO schon Sinn regelmäßig den Feature-Branch auf den aktuellen Hauptbranch zu stülpen (IOW: rebase) Wenn ihr allerdings Code reviews á la Kiln nutzt, dann würde ich zwar vor dem ersten Review ein Rebase machen, aber von da an den Hauptbranch in den Featurebranch mergen. Sieht dann nicht so toll aus, aber die Changeset ID bleibt erhalten, und somit auch die Reviews deiner Kollegen. |
AW: DVCS: Bunnyhopping noch notwendig?
Zitat:
Bei dem gefragten Fall würd ich wohl zu nem cherry-pick (das ist wenn ich das richtig gelesen habe, das was in hg graft macht) tendieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz