Orlando: Subversion lokal installiert → als »externer« Benutzer arbeiten?

Werte Gemeinde,

ich habe zwecks Vermeidung des Bisses in den eigenen Hintern Subversion installiert. Man weiß ja nie und das meist erst zu spät. Künftig sind unsinnige Änderungen leicht rückgängig zu machen. Was aber, wenn ich beispielsweise Software heruntergeladen habe, selbst Änderungen vornehme und dann ein Update des Anbieters veröffentlicht wird? Konflikte sind dann nicht zu vermeiden, allerdings schlecht mit mir selbst, oder? Überschreibe ich die Dateien entstehen logischerweise keine. Wie spiele ich also solche Updates als »fremder« Nutzer ein und löse Konflikte anschließend zwischen »theirs« und »mine«? Oder stehe ich jetzt gerade völlig auf dem Schlauch?

Roland

  1. echo $begrüßung;

    wenn ich beispielsweise Software heruntergeladen habe, selbst Änderungen vornehme und dann ein Update des Anbieters veröffentlicht wird?

    Das ist ein allgemein übliches Problem, das und dessen Lösung im Subversion-Buch beschrieben ist: Vendor branches (Ich hoffe, ich hab die richtige Stelle gefunden, denn bisher hatte ich das Thema nur unter CVS.)

    echo "$verabschiedung $name";

    1. Hello,

      Du wurdest beim Treffen vermisst.
      Ich hätte Dich auch gerne mal im RL kennen gelernt.

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau

    2. Vendor branches

      Danke, diesen Teil habe ich gesucht und nicht gefunden. Die Begeisterung hält sich allerdings in Grenzen, da ich mir /trunk und /branches gerne ersparen würde. Da ist es vermutlich einfacher, einen neuen Nutzer für externe Updates anzulegen und mit meinem dann etwaige Konflikte zu lösen.

      Roland

  2. hallo Roland,

    ich habe zwecks Vermeidung des Bisses in den eigenen Hintern Subversion installiert.

    Reicht mir als Begründung nicht aus. Was willst du denn erreichen? Daß du deine "eigenen Dateien" in unterschiedlichen Bearbeitungszuständen auf dem eigenen Rechner liegen hast?

    Was aber, wenn ich beispielsweise Software heruntergeladen habe, selbst Änderungen vornehme und dann ein Update des Anbieters veröffentlicht wird?

    Dann überlegst du dir, ob du das Update haben willst, schiebst deine geänderten Konfigurationen (oder was immer es sein könnte) ins Backup und installierst das Update erstmal. Ein Beispiel für den Apache: ich habe (unter Windows) eine Zusatzdatei "virthost.conf" mit allen virtuellen Hosts, die ich gelegentlich zu brauchen meine. Die funktionieren ja eh nur, wenn auch die hosts-Datei die entsprechenden IP-Adressen kennt. Also gibt es eine Kopie in einem Backup, die ich bei Bedarf zurückspielen kann - beispielsweise habe ich mal mit VPN herungespielt, und schwupps, war mein Apache "kaputt". Außerdem gibt es bisweilen Perioden, in denen er relativ häufig erneuert wird - zur Zeit ist da aber relative Ruhe. Aber wenn ich unter Gentoo das System auf den tagesaktuellen Stand bringe, kriege ich fast immer einen Hinweis, ich möfe doch bitte Konfigurationsdateien aktuelisieren. Und da ist so ziemlich immer auch die httpd.conf dabei.
    Ich habe darin aber bisher keine Begründung gesehen, mir Subversion (also nicht nur den Client) lokal einzurichten.

    Wie spiele ich also solche Updates als »fremder« Nutzer ein und löse Konflikte anschließend zwischen »theirs« und »mine«?

    Ich weiß (noch) nicht, wie das auf dem Mac geht. Auf einer Linuxkiste würde ich sowas als Superuser versuchen.

    Oder stehe ich jetzt gerade völlig auf dem Schlauch?

    Ich vermute, du stehst erst zur Hälfte drauf.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. ich habe zwecks Vermeidung des Bisses in den eigenen Hintern Subversion installiert.

      Reicht mir als Begründung nicht aus.

      *lol* Entschuldige bitte, dass ich meine niedrigen Motive nicht hinreichend dargelegt habe. Ich werde dem Hohen Gericht Rede und Antwort stehen. ;-)

      Was willst du denn erreichen? Daß du deine "eigenen Dateien" in unterschiedlichen Bearbeitungszuständen auf dem eigenen Rechner liegen hast?

      Ja. Die handgestrickte Versionierung anhand von Dateinamen ist halt mühsam und eine Dokumentation einzelner Versionen derzeit nicht vorhanden. Es passiert aber recht häufig, dass ich Änderungen verwerfe und dann die Sucherei beginnt.

      Dann überlegst du dir, ob du das Update haben willst,

      Security Patches will ich haben, immer.

      schiebst deine geänderten Konfigurationen (oder was immer es sein könnte) ins Backup und installierst das Update erstmal. [Viel Text über deine HTTP-Saeco]

      Das bedeutet erst wieder unnötige Handarbeit und macht die Vorteile einer Versionsverwaltung zunichte. Mit einem einzigen Benutzer entstehen keine lösbaren Konflikte.

      Oder stehe ich jetzt gerade völlig auf dem Schlauch?

      Ich vermute, du stehst erst zur Hälfte drauf.

      Rück mal ein Stück, bitte.

      Roland

  3. Hallo Orlando,

    Was aber, wenn ich beispielsweise Software heruntergeladen habe, selbst Änderungen vornehme und dann ein Update des Anbieters veröffentlicht wird?

    Das sollte man erstmal soweit wie irgend möglich vermeiden. Fremde Softwarekomponenten kann man auf Basis von dafür vorgesehenen Schnittstellen, Templates u.ä. erweitern. Dann kann man problemlos eine Komponente gegen eine neuere Version austauschen und muss sich nur noch um mögliche Schnittstellenänderungen kümmern (das kann natürlich auch in Arbeit ausarten, dann ist aber die Vorgehensweise des Herstellers mist und man sollte sich nach einer anderen Lösung umsehen).

    Wenn man wirklich eine eigene Version fremder Software pflegen muss (bei irgendwelchen Webanwendungen ist das leider oft so, weil sie schlicht nicht vernünftig erweiterbar sind), dann ist meines Erachtens der im SVN-Buch vorgeschlagene weg, die Version ins eigene SVN einzuchecken und die Änderung in den eigenen Entwicklungszweig zu mergen, noch die praktikabelste Variante. Dabei behält man wenigstens den Überblick über die Unterschiede und muss nur an den Stellen Hand anlegen, bei denen es zu Konflikten kommt. Bei größeren Änderungen an der Software kann das aber natürlich immer noch sehr viel Arbeit sein.
    Mit ein grundsätzliches Problem ist, dass natürlich die Entwickler diese Art der Anpassung nicht vorsehen und daher auch keine Rücksicht nehmen. Eine Erweiterung kann also plötzlich einfach nicht mehr so umsetzbar sein, wie das bislang möglich war.

    Grüße

    Daniel