Moin!
Warum wird vom branch in den trunk gemerged?
Ich hätte nun gedacht, umngekehrt würde ein Schuh daraus. Im trunk steht doch der fix des Bugs drinne?
Kann mir das jemand erklären?
Ich möchte mal voraus schicken: Auch mit Subversion ist das Mergen eine Quelle ständigen ekligen Arbeitsaufwands. Grundsätzlich ist die Theorie, welche Änderungen wann von wo nach wohin übertragen werden müssen, natürlich klar. Das Problem mit Subversion ist, dass es extrem schwierig ist festzustellen, was denn schon alles geändert übertragen wurde, und was bislang noch fehlt.
Tatsächlich hört man auch allen möglichen Entwicklerkreisen, dass zwar das Branchen tatsächlich relativ gut funktioniert, aber das Mergen wird nur genau EINMAL vernünftig funktionieren, nämlich wenn man einen Branch wieder zurück in den Trunk führen will. Danach sollte man, um Probleme zu vermeiden, diesen Branch sterben lassen, und bei Bedarf einen neuen Branch anlegen.
Alternativ darf man, ausgestattet mit dem entsprechenden Expertenwissen, eine nicht ganz unaufwendige Planung veranstalten und entsprechende Hilfs-Tags anlegen, damit das sauber funktioniert. Alternativ: Bugfixes, die in mehr als einem Zweig (egal ob ein branch oder trunk) hinzugefügt werden müssen, werden manuell mehrfach appliziert.
Meine persönliche Konsequenz daraus: Ich nutze keine Branches, wenns vermeidbar ist - und dankenswerterweise ist das beim Entwickeln von internen Webapplikationen sehr simpel vermeidbar, weil man keine Produktpflege für mehrere Versionen betreiben muss, sondern alles immer im Trunk lassen könnte. Allerdings geht sowas nicht immer.
Die freundlichere Alternative ist ein verteiltes Versionskontrollsystem wie Git, Mercurial oder Bazaar. Bei diesen Systemen ist das Branchen und Mergen alltäglich, und es funktioniert dort extrem gut. Wenn du daher erst einsteigst in Versionskontrolle, solltest du Subversion direkt überspringen und die vernünftigen Tools verwenden.
- Sven Rautenberg