Inhalt
Mai 2011
Beitrag1492
BeitragGeburtstagsstress
April 2011
Beitrag61147 Nummer 2: Zusammenführen, Mischen, Verbinden
BeitragMühle
BeitragDie Entwickler-Ecke und Spamlisten
März 2011
BeitragServerupdate
Februar 2011
Beitrag61147 Nummer 1: jQuery
Beitrag61147 oder: Wir leben noch!
Dezember 2009
BeitragAGS 2009 - Behind the Scenes
August 2009
BeitragSturmfrei - EE-Teamtreffen
April 2009
BeitragRoadmap für die Forensoftware
Januar 2009
BeitragProfil-Sucht
September 2008
BeitragUpdates: Mehr, aber kleiner
Juli 2008
BeitragErster! Oder: In fünf Monaten ist Weihnachten.
Mai 2008
BeitragKinder, wie die Zeit vergeht...
April 2008
BeitragDer Serverumzug und das liebe Geld...
März 2008
BeitragVon "Hey, wo ist meine Änderung geblieben?" zu Subversion
BeitragMono, Baby, Mono!
Dezember 2007
Beitrag172800000
November 2007
BeitragAdventsgewinnspiel 2007
Juli 2007
BeitragDas Jubiläumsgewinnspiel
BeitragStatusbericht zum neuen Server
Juni 2007
Beitrag8 Std. Downtime heute nacht
BeitragOh Gott, bitte nicht noch ein Browser ...
BeitragAb jetzt haben wir eine Projektverwaltung :-)
Mai 2007
BeitragDowntime am Freitag Abend
April 2007
BeitragDelphi Tage 2007
BeitragVorspiel
BeitragVorfreude
März 2007
BeitragPolitik im Off Topic
Beitragein sehr leeres Forum...
BeitragDie Jagd auf Spammer
Januar 2007
BeitragBackporting
Dezember 2006
BeitragDas Adventsgewinnspiel 2006
BeitragDie nächste Auskopplung
 
Sitemap
Ein Blog-Eintrag von Martok (Sa 23.04.11 23:16)
Views: 1178911
oder
2 x 3 macht 4 widdewiddewitt und drei macht -- ach Mist, wieder nix

Wer in den letzten Tagen die Shoutbox verfolgt hat, wird sich denken können worum es hier geht. Immerhin hat das ganze Thema "Merge" zu einigem Frust geführt...

Aber von vorn.
Ganz von vorn.

Am Anfang war die EntwicklerEcke, und die EE war gleich mehrmals da. Als Entwickler haben wir mehre Umgebungen, die auf jeweils anderer Softwareversion laufen; namentlich "Branch", "Trunk" und (natürlich) das Echtforum. Dabei sind die Begriffe letzlich aus dem verwendeten Versionskontrollsystem SVN abeleitet, auch wenn sie nicht ganz so verwendet werden.
Die im letzten 61147 (siehe Februar) beschriebene Umstellung hat sich zwar über einige Revisionen im SVN hingezogen, ist aber irgendwann dann doch zu einem Ende gekommen. Nun besteht aber die Aufgabe, die im Branch durchgeführen Änderungen auf den Trunk zu portieren. Sollte ja nicht weiter kompliziert sein, nicht wahr?
Naja, sollte.

Wie uns aber schon Murphy lehrt, wird niemals etwas so funktionieren wie es soll, sondern eher maximal schiefgehen. Das gilt insbesondere, je einfacher es sein sollte. Gedacht war das Ganze in TortoiseSVN so: Merge klicken, URL eintragen, Revisionen auswählen, kurz warten und dann die Konflikte auflösen. Dass da welche sind wussten wir schon im voraus, denn während ich an jQuery gearbeitet hab hat sich user profile iconChristian S. mit der Objektorientierung des Trunks beschäftigt. Wäre auch mal einen Blogeintrag wert ;)
Soweit ging das auch alles ganz wunderbar, aber als es dann ans abschließende testen ging, wollte auf einmal nichts mehr funktionieren. Nach kurzer Verzweiflung und viel Codelesen dann das Fazit: da fehlt doch was! :shock:
Ich weiß nicht wirklich, warum das passiert ist, jedoch hat Subversion es geschafft, einzelne Änderungen nicht zu übernehmen. Das Ganze sehr zufällig, aber mit genug Effekt dass eine Mischung aus altem und neuem Code entstanden ist - einen spannende vielleicht, aber definitiv keine funktionierende. Und erst recht keine, die das eingebaute TortoiseMerge versteht. Dieses Tool liest normalerweise die Konfliktmarkierungen ein, die SVN in der problematischen Datei hinterlässt, und lässt mich dann einfach auswählen welche Seite ich für welche Stelle nehmen will. Das funktioniert aber so gar nicht, wenn man 4 Konflikte verschiedener Versionen in der selben Datei hat - und ihr könnt euch denken, was ich hatte? ;)

Also erkundigt man sich mal bei jemandem, user profile iconder öfter SVN macht, was man denn da tun könnte. Revisionen einzeln mergen? Nein, sagt der Experte, das will man nicht wirklich. 30 Minuten und einen weiteren Versuch mit der alt"bewährten" Methode (Stupidity is doing the same thing and expecting a different result) später setzt sich dann selbst bei mir der Verdacht durch, dass die unschöne Variante vielleicht doch besser sein könnte, als eine die gar nicht funktioniert :roll:

Immerhin ein Revert geht bei SVN schnell, so dass man in endlicher Zeit einen neuen alten Zustand erreichen kann. Sehr praktisch. Und offensichtlich auch etwas das man öfter mal braucht. Zum Beispiel, um dann jede Revision einzeln zum Mergen auszuwählen und alle Konflikte sofort zu beheben. Das führt zwar echt zu Arbeit, da man manche Dateien ziemlich oft zu sehen bekommt, hat aber den Vorteil dass man keine verschachtelten Konfliktdateien erhalten kann.

Jedenfalls: eine weitere Stunde und viele manuell aufgelöste Konflikte später steht dann ein simples "Finished" in der Log-Ausgabe und - oh Wunder - alles funktioniert.

Damit können wir dann jetzt endlich weiterarbeiten.

Viele Grüße und bis zum nächsen Mal,
Sebastian
BeitragKommentar von Narses (So 24.04.11 11:27)
Oh du "Held der Arbeit"! :zustimm: Danke für deinen Einsatz. :beer: