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_SubversionDreamweaver 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.
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
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
Information
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
Modal Header
Some text in the Modal Body
Some other text...
(c)2024 stastka.ch // help system