3.958 Bytes hinzugefügt
, 04:52, 21. Aug. 2017
Siehe [[oldCt:Versionsmanagement-Tipps]]
Das Versionsmanagementsystem CVS wird nach und nach von [http://subversion.tigris.org/ Subversion (SVN)] oder auch verteilten Systemen wie Mercurial abgelöst.
== Subversion-Server ==
Folgende Schritte sind für einen einfachen Subversionserver mit einem Repository nötig:
=== Einrichten eines Repository ===
* Einrichten eines Repository auf dem Server mit Hilfe des Utility svnadmin:
svnadmin create myRepo
** Dadurch wird unterhalb des aktuellen Verzeichnisses ein neues Repository angelegt (im Prinzip eine Verzeichnisstruktur für SVN-Verwaltungsdaten und die eigentlichen Inhalte).
=== Zugriffsberechtigungen ===
* Editieren der Datei <code>conf/svnserve.conf</code>:
** <code> password-db=passwordDatei </code> Name der Passwort-Datei
** <code> realm=AuthUmgebung </code> wird als Teilschlüssel zwischen Server und Client ausgetauscht
** <code> anon-access=none </code> kein anonymer Zugriff
** <code> auth-access=write </code> authentifizierte User können Lesen und Schreiben
* Erstellen der <code>passwordDatei</code> (im selben Verzeichnis wie <code>svnserve.conf</code>:
[users]
user1=passwort1
user2=passwort2
=== Serverstart ===
* Starten des Servers mit
svnserve -d --foreground
** bzw. mit Angabe des Wurzelverzeichnisses:
svnserve -d --foreground -r /wurzelverzeichnis
* In der Firewall muss der betroffene Port freigegeben werden.
=== Automatischer Start bei Systemboot ===
* Anlegen eines speziellen Users für svnserve mit
useradd svnserve
* Erstellen einer Datei <code>/etc/init.d/svnserve.sh</code> mit folgendem Inhalt:
#! /bin/sh
REPOS_DIR=/home/svnserve/repos
start-stop-daemon --start --chuid svnserve --exec /usr/bin/svnserve -- -d -r $REPOS_DIRvs20067:
* Ausführbar machen (als root):
chmod +x /etc/init.d/svnserve.sh
* Installieren für die User-Runlevel:
update-rc.d dhSvnServe.sh defaults
* Siehe auch das [http://benrobb.com/2007/01/15/howto-start-subversion-at-boot-on-ubuntu/ automatische Starten von svnserve] jedenfalls unter [[Debian]]
== Subversion-Client ==
* Der Zugriff mittels des Clients <code>svn</code> erfolgt dann z.B. so:
svn --editor-cmd joe --username user1 --password passwort1 --import meinBestehendesArbeitsverzeichnis svn://IP-AdresseDesServers/myRepo
* Danach muss übrigens ein Checkout erfolgen.
== Mercurial ==
Mercurial ist wie [[Git]] ein verteiltes Versionsverwaltungssystem.
* [http://hgbook.red-bean.com/ Mercurial: The Definitive Guide] (Englisch) von Bryan O'Sullivan
* [http://wiki.netbeans.org/HgHowTos Zusammenarbeit ] zwischen [[Netbeans]] und Mercurial
== Git ==
[http://git-scm.com/ Git] ist ein verteiltes Versionskontrollsystem.
=== Git Konfiguration ===
Es kann man auch als Server-Client-System einsetzen:
* Einrichten des GIT-Systems
git config --global user.name "Max Mustermann"
git config --global user.email "muster@mann.de"
=== Einrichten eines Git-Repository ===
* Einrichten eines GIT-Repository auf einem Server server.de
cd ~
mkdir myproject
git init
touch README.txt
git add .
git commit -a -m "Erstversion"
git checkout -b tmpBranch #Wechsel weg vom Master, sonst ist dieser für Remote-Schreibzugriffe gesperrt
* Einrichten eines GIT-Repository auf dem Client
git clone user@server.de:myproject/.git
=== Arbeiten im Projekt ===
* Hinzufügen von Dateien
git add .
git commit -a -m "Kommentar"
git push origin master
* Holen von Änderungen vom Server
git pull
=== Git Merge ===
Siehe [https://git-scm.com/book/de/v1/Git-Branching-Einfaches-Branching-und-Merging Anleitung zum Einfachen Branching und Merging]
=== Weiteres zu Git ===
* [http://nvie.com/posts/a-successful-git-branching-model/ Verzweigungsmodell] für [[Git]]
* [http://git-scm.com/book/en/Getting-Started-First-Time-Git-Setup Getting started]
----
<references/>
[[Category:Softwareentwicklung]]
[[Category:Debian-Tipps]]