• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

[Dev] Schulung Subversion - Verwendung von Patches

Engywuck

Geowizard
Liebe Gemeinde,

inspiriert von einem Posting von Pfeffer, das mit einem "Hab ich geändert, bitte testen" endete, ohne dass die Änderungen eingecheckt waren, nun - für die, die den Trick noch nicht kennen - eine kleine Unterweisung, wie wir Codeänderungen verteilen können, ohne die Änderungen einzuchecken.

Der Trick wird realisiert mit den Patches von Subversion: Hat man an einer ausgecheckten Working Copy eines Repositories Änderungen vorgenommen und möchte sie aber noch nicht einchecken, so kann man diese Änderungen auch in einer einzigen Datei abspeichern. Dies geschieht sowohl in Subclipse wie in TortoiseSVN mit dem Kommando "Create Patch...".
Der umgekehrte Weg geht natürlich dann auch: Mit "Apply Patch..." kann man eine so erstellte Patch-Datei auf die aktuelle Working Copy anwenden - die Änderungen werden dann entsprechend übernommen.

In der Praxis heisst das: Wenn Pfeffer seine Änderungen noch nicht committen will, kann er sie als Patch abspeichern und hier im Forum veröffentlichen. Dort kann sie ein anderer User runterladen und in seiner Working Copy einspielen.

Praktischerweise sollte man darauf achten, dass keine eigenen Änderungen in der Working Copy vorhanden sind, wenn man den Patch einspielt - man hat nämlich keine Möglichkeit, genau die Änderungen des Patches wieder zu entfernen. Falls man noch eigene Änderungen durchgeführt hat, wäre das Prozedere wie folgt:
  • Eigene Änderungen als Patch abspeichern
  • Änderungen mit "Revert" alle wieder zurücknehmen
  • Patch von Pfeffer anwenden wie oben beschrieben
  • Testen und jubeln/fluchen - je nach dem
  • Änderungen mit "Revert" wieder zurücknehmen
  • Eigenen Patch (im ersten Schritt erstellt) wieder abspeichern

Da alle Änderungen in einer Datei abgespeichert werden, ist das Verfahren wesentlich praktischer, als einzelne Sourcecodedateien (oder gar das ganze Projekt) zu vermailen.

Wie ihr Euch denken könnt, ist das Verfahren natürlich auch gut geeignet, mal eben den Entwicklungsstand in der Working Copy zu switchen: Ihr arbeitet gerade an einem komplizierten Feature und seid mitten drin, da kommt ein dringender Änderungswunsch oder ein heikler Fehler, den ihr ausbauen wollt. Also aktuelle Änderungen als Patch wegspeichern, mit Revert zurücksetzen, andern Fehler bearbeiten, commiten, dann alten Patch wieder anwenden und entspannt weiter entwickeln.

Hope this helps,
Engywuck
 

pfeffer

Geowizard
danke.
Aber was Du schreibst ist längst ( vor Wochen) committet. Ich hatte es wegen eines anderen Bugs gemacht und vermute, dass damit auch das in dem von Dir zitierten Thread beschriebene Problem gelöst wurde.

Gruß,
Pfeffer.
 
Oben