Ankündigung

Einklappen
Keine Ankündigung bisher.

SVN verstehen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SVN verstehen

    Hi. Ich hatte bereits bei mehreren Projekten mit SVN zu tun. Jedoch habe ich aussschliesslich ausgecheckt, geupdatet und commited usw....
    Sprich: Einen SVN-Server aufgesetzt habe ich noch nie. Ich will demnächst mich da etwas reinarbeiten, und versuche gedanklich nachzuvollziehen, wie ich es am besten für ein kleines Testprojekt umsetzen kann.
    Überlegt habe ich mir, dass ich den SVN Server auf einen virtuellen Ubuntu Server installiere. So könnte ich auf meinem Rechner die Dateien auschecken, entwickeln/ändern und wieder einchecken. Und auf dem Webserver das gleiche nochmal. In meinem httpdocs könnte ich die Daten auschecken, und nach jeder Änderung einfach nur updaten. Den SVN Client könnte ich ja hier vor einem Update starten, und anschliessend wieder stoppen.

    Ist diese Handhabung sinnvoll? Oder habe ich das System doch missverstanden?

  • #2
    Ich verstehe nicht so recht was du willst.

    SVN dient eigentlich der Teamentwicklung wenn mehrere Leute an einem Projekt entwickeln.

    Mit einem Release auf den Liveserver hat SVN dann nur bedingt was zu tun.
    Es wird bei einem Release nur die aktuelle Version ins Livesystem released.

    Zumindest läuft das bei uns in der Firma so, da dürfen auch nur die Portalleiter und Temaleiter releasen.

    Wenn ich dich falsch verstanden habe, stelle die Frage bitte noch mal genauer.

    Kommentar


    • #3
      Zitat von litterauspirna Beitrag anzeigen
      Mit einem Release auf den Liveserver hat SVN dann nur bedingt was zu tun.
      Es wird bei einem Release nur die aktuelle Version ins Livesystem released.
      Genau so ist es auch geplant.Wir arbeiten mit maximal 3 Leuten an einem Projekt. Der Liveserver updatet (mit svn update) die letzte (stable) Version vom SVN Server.
      Meine Idee dahinter ist, dass ich die Repository auch als Testingumgebung nutzen will. Z.B fällt mir geradeein, dass es eventuell Probleme mit Dateiberrechtigungen auf dem Liveserver geben könnte.

      Ich will nur die gängige Vorangehensweise verstehen.

      Kommentar


      • #4
        Zum Einrichten:
        http://wiki.ubuntuusers.de/Subversion

        Auf dem SVN-Server läuft bei uns meistens auch der dev-Webserver. Dort wird üblicherweise mit jedem commit im webserver-directory des Projects ein svn update gemacht, so dass man jederzeit sehen kann, was so los ist. Auf dem Live-Server liegt nur ein svn export, so dass dort patches eingespielt werden.

        Hier als Vorlage ein reduziertes post commit hook script - zum Updaten eines Repos:

        PHP-Code:
        #!/bin/sh
        ## config
        EXPORTDIR="/srv/www/htdocs/foo/"
        LOCKFILE=$EXPORTDIR"/.post-commit.lock"
        LOGFILE=$EXPORTDIR"/svn.log"
        MAXTRIES=10
        WAITTIME
        =20

        ## export
        REPO="$1"
        REV="$2"
        T=0
        (
        while [ 
        $T -lt $MAXTRIES ]
        do
            if [ ! -
        e $LOCKFILE ]; then
                trap 
        'rm -f "$LOCKFILE"; exit $?' INT TERM EXIT
                
        touch "$LOCKFILE|| true
                sleep 2
                
        echo '=== post commit hook started === ' >> $LOGFILE
                
        echo `date -R` >> $LOGFILE
                
        echo '' >> $LOGFILE
                cd $EXPORTDIR
                svn update
        ## evtl make aufrufen, ant call, was auch immer..
                
        rm -"$LOCKFILE"
                
        trap INT TERM EXIT
                break
            else
                echo 
        "sleepin"
                
        sleep $WAITTIME
                
        if [[ -`pgrep -f "post-commit"` ]]; then
                    rm 
        -"$LOCKFILE"
                
        fi
                let T
        ++
            
        fi
        done
        ) >> $LOGFILE 2>&
        Falls du der Anleitung folgst, gehört das nach /var/www/local/svn/post-commit. Benutzer/Gruppe in www-data ändern, chmod +x nicht vergessen. Ich hab da jetzt einiges gekürtzt, wenn dus nicht hinbekommst, gib Bescheid.

        Zugriff auf .svn-Metadaten kannst du bswp. per mod_rewrite unterbinden:

        Code:
        RewriteEngine On 
        RewriteCond %{SERVER_PORT} 80 
        RewriteRule ^(.*)$ https://example.com/$1
        Grüße


        Basti

        Kommentar

        Lädt...
        X