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 |
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.
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
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 #SubversionAls 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=allJetzt 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....auch noch interessant
- Programmiersprache Csharp // 23.04.2024KomorebiCms (v5)
- Programmiersprache Csharp // 23.01.2024Wadoku mit verbessertem Responsive Design und Copy Paste
- Programmiersprache Csharp // 07.04.2023Wadoku: Neue Version Online, neu mit deutscher Kanjireferenz
- Programmiersprache Csharp // 01.07.2022Contrast Color Generator: Schwarz oder Weiss
Tippsammlung
Kleine Tippsammlung für mich und dijenige die sich auf meine Webseite verirrt haben.Archiv
- Jun 2024 (1)
- May 2024 (1)
- Apr 2024 (2)
- Feb 2024 (3)
- Jan 2024 (1)
- Sep 2023 (1)
- Jul 2023 (1)
- Apr 2023 (1)
- Feb 2023 (1)
- tipps (31)
- synology (27)
- linux (22)
- Windows (19)
- tool (19)
- Powershell (15)
- Windows 10 (13)
- csharp (c#) (10)
- coding (9)
- Ubuntu (6)
- security (6)
- ad (6)
- Windows 2012 R2 (5)
- vpn (5)
- Pi (5)
- gitea (5)
- git (5)
- Windows 2012 (4)
- Ubuntu 22.04 (4)
- opnsense (4)
- openpgp.js (4)
- mysql (4)
- docker (4)
- Xubuntu (3)
- Windows 2016 (3)
- web2 (3)
- seo (3)
- LMS (3)
- Japanisch (3)
- ipkg (3)
- bash (3)
- app (3)
- Android (3)
- Zertifizierungsstelle (2)
- www (2)
- wsus (2)
- Windows Updates (2)
- windows 2022 (2)
- Windows 2008 (2)
- wadoku (2)
- VMware (2)
- verschlüsselung (2)
- Scripts (2)
- php (2)
- pgp (2)
- perl (2)
- openvpn (2)
- Kanji (2)
- javascript (2)
- GnuPgP (2)
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)2025 stastka.ch // help system