Tippsammlung

Kleine Tippsammlung für mich und dijenige die sich auf meine Webseite verirrt haben.

Archiv

Know-How
Jahr
Tag(s):
Know-How
Versionskontrollsystem SVN, GIT oder HG auf einer Synology NAS ds211+

Was ist ein Versionskontrollsystem?

Mit einem Versionskontrollsystem kann man seinen Sourcecode/Dateien intelligent speichern. Es wird nicht nur der aktuelle Zustand gespeichert, sondern auch die "Geschichte". Dies ist insbesondere bei der Softwareprogrammierung ein wichtiges Kriterium. Wenn z.B. ein Fehler erst viel später gefunden wird, kann man eine ältere Version des Codes restaurieren. Die bekanntesten und weitverbreitesten Tools GIT, HG und SVN unterscheiden sich im (groben) Grundkonzept nicht. Jedoch unterscheiden sich in den Details (ACL, Server checkin/checkout usw.) und haben dadurch je nach dem Vor- oder Nachteile.

Über diesen Beitrag

In diesem Beitrag wird primär die Installation auf dem Server (Synology NAS) behandelt. Die Handhabung der Software sowie die integration in Entwicklugnsumgebung nur am Rande erwähnt. Sie wird in einem späteren Beitrag erörtert.

Software

Damit man Git, SVN oder Mercurial auf dem NAS installieren kann muss man zwingend IPKG haben.

Software Tool

Server

Windows Client

GIT

Git-1.7.10-1

TortoiseGit-1.7.7.0-64bit.msi
Git for Windows

SVN

SVN-1.6.17-1

TortoisSVN-1.7.4.0-64bit.msi

Mercurial

py25-mercurial_1.9-1

tortoisehg-2.3.1-hg-2.1.1-x64.msi

Tabelle: Stand April 2012

SVN (Apache Subversion)

Apache Subversion wurde erschien 2004 in der Version 1.0. Es wurde aus dem früheren CVS weiterentwickelt. Seit 2010 gehört es zu deb Aoache Top Level Produkt.

  • Vorteile: Einfach in der Bedienung, viele IDE's erhältlich, erprobt.
  • Nachteile: Viele Operationen verschwenden Platz, Braucht einen Server, Es werden nur Deltas verwaltet.
Mehr Infos: http://en.wikipedia.org/wiki/Apache_Subversion
Dreamweaver Plugin: Adobe Exchange

Mercurial (HG)

Mercurial ist ein plattformunabhängiges, verteiltes Versionskontrollsystem zur Software-Entwicklung. Es wird nahezu vollständig in Python entwickelt: lediglich eine diff-Implementierung, die mit binären Dateien umgehen kann, ist in C umgesetzt. Mercurial wird primär über die Kommandozeile benutzt; alle Kommandos beginnen mit "hg", dem Elementsymbol von Quecksilber (engl. Mercury).

  • Vorteile: Portabel, kleiner als GIT, Unabhängig da kein Server benötigt wird
  • Nachteile: Umständlicher zum konfigurieren, Teilweise Shell nötig
Mehr Infos: http://en.wikipedia.org/wiki/Mercurial

Git

Git ist eine freie Software zur verteilten Versionsverwaltung von Dateien, die ursprünglich für die Quellcode-Verwaltung des Kernels Linux entwickelt wurde.

  • Vorteile: Schnell, da lokal arbeitet. Unabhängig da kein Server benötigt wird. Objekt-Orientierte Sichtweise auf den Versionsbaum
  • Nachteile: Kann Teilstücke nicht schützen (ACL), Unter Windows kaum nutzbar, Kaum IDE's

Mehr Infos: http://en.wikipedia.org/wiki/Git_%28software%29

Windows Client

Auf dem Client-PC ist ein Windows 7 (x64) installiert. Damit man mit der Versionskontroll Software kommunizieren kann muss man ein ensprechenden Client installieren. In diesem Beitrag sind das TortoiseGit, TortoiseHG und TortoiseSVN.

Code-Editor

Ich arbeite privat hauptsächlich mit der Programmiersprache C# und PHP. Daher sind meine Editoren SharpDeveloper und  der etwas in die Jahre gekommene Dreamweaver 8. Daher ist mein primäres Versionskontrollsystem SVN, den für GIT und Mercurial habe ich keine ensprechenden Tools/Addin gefunden, bez. werden nicht mehr weiterentwickelt. Neuere Versionen von Dreamweaver arbeiten schon nativ mit SVN.

Mehr Infos: http://www.icsharpcode.net/opensource/sd/

SVN mit einem Synology NAS

Apache Subversion ist die einfachste Möglichkeit um eine Versionsverwaltung zu installieren und hat sich bei meiner Arbeit mehrfach bewährt. Das Zusammenspiel mit der Synology NAS und meinem Windows PC klappte auf anhieb.

Installation Server

ipkg update
ipkg install svn

Das erste SVN Projekt

Ich erstelle vor dem erstellen des Repository gleich eine Freigabe //NAS/svn/ mit einem lokalen User "svnuser".

svnadmin create /volume1/svn/repository
chown svnuser:users -R repository

Innerhalb des Repository muss man nun den Zugriff konfigurieren.

/conf/passwd

 developeruser = mypassword

/conf/svnserve.conf

[general]
anon-access = none
auth-access = write
password-db = passwd
realm = Mein Repository

/etc/inetd.conf

 svn stream tcp nowait svnuser /opt/bin/svnserve svnserve -i -r /volume1/svn

/etc/services

svn             3690/tcp                        #Subversion
svn             3690/udp                        #Subversion
Als letzte Aktion muss der Server neu gestartet werden. Jetzt kann man mit dem TortoisSVN ensprechend zusammenarbeiten.

Mercurial (HG) mit einem Synology NAS

Mercurial ist in der Entwicklergemeint besonders in der OpenSource Szene sehr beliebt. Grundsätzlich ist jedes GIT clone auch ein Server. Damit kann man im Team sehr effizient und flexibel arbeiten. Wie bei SVN erstelle ich einen Benutzer und den dazugehörige Freigabe "hg"

Installation Server

Nach der installation des IPKG Packets muss man einen Symlink erstellen und darauf achten das man Optware Verzeichnis (/opt/bin/ im Profil (.profile) hat, damit der Befehl hg funktioniert.

ipkg install py25-mercurial
ln -s /opt/bin/hg-py2.5 /opt/bin/hg

Das erste HG Projekt

Jetzt kann man sein erstes Projekt erstellen, dazu erstellt man die mit „hg init“ sein erstes Repository ein.

hg init /volume1/hg/meinprojekt

Der HG Webserver

Jetzt kann man schon loslegen und via \\NAS\hg\meinprojekt loslegen.
Alternativ geht man auf die Shell und startet im Repository den Webserver.

hg serv

Jetzt kann man bequem das Repository z.B. die Diff anschauen.

GIT mit einem Synology NAS

Auch wenn GIT nicht mit meinen Bedürfnissen enspricht habe ich dennoch versucht einen blick über den Tellerrand zu blicken.

Installation Server

Die installation ist sehr einfach. Man ruft das ensprechende IPKG Packet auf.

ipkg install git

Das erste GIT-Projekt

Nachdem GIT installiert ist kann man das Repository einrichten.

mkdir -p /volume1/git/MeinRepository
cd /volume1/git/MeinRepository
git init --bare --shared=all
Jetzt kann man mit dem Exporermenü das Resporitory lokal klonen.

Will man eine integration im Sharpdeveloper kann man folgenden Wiki-Eintrag anschauen:
http://wiki.sharpdevelop.net/HowToSetUpGit.ashx

Fazit

Es zeigt, dass die drei wichtigsten Vertreter der Kategorie Versionskontrollsystem Software ohne Schwierigkeiten auf dem Synology NAS installiert werden können. Die grösste Arbeit hat man vor allem Clientseitig und bedarf eine intensiven Einarbeitung auf das entsprechende Tool. SVN war mir auf Anhieb am sympathischsten da man eine gute Integration bei meinen Tool vorgefunden hat.

Weitere Blogeinträge

  • 2013/25/01

    Udo Jakobza

    Hallo, wie sind denn die Datenraten beim SVN-Server auf DS211+. Ich habe auf einer DS210j ca. 100kByte Commit-Datenrate bei einer großen Datei. Viele Grüße Udo

  • 2013/25/01

    Udo Jakobza

    Hallo, ich habe gerade mein Test-Commit nachgerechnet. Eine 913MByte Datei wurde in 824s commitet und damit mit ca. 1,1MByte/s. Die Anzeige der Datenrate am TortoiseSVN 1.7.11(23600) war inkorrekt (50 bis 100kByte/s). Udo

Neuer Kommentar:

Werbung oder Ähnliches sind nicht erlaubt, daher wird jeder Beitrag geprüft und freigegeben.
Advertising, etc. are not allowed, so any contribution is reviewed and approved.
Facebook-Webadress are not allowed, Facebook als Webadresse ist nicht erlaubt


* Die E-Mail wird nicht veröffentlicht / The email will not be published
** Bitte Zahl eintragen / Please enter the number
captcha image