Versionsmanagement-Tipps
Siehe oldCt:Versionsmanagement-Tipps
Das Versionsmanagementsystem CVS wird nach und nach von 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
conf/svnserve.conf
:password-db=passwordDatei
Name der Passwort-Dateirealm=AuthUmgebung
wird als Teilschlüssel zwischen Server und Client ausgetauschtanon-access=none
kein anonymer Zugriffauth-access=write
authentifizierte User können Lesen und Schreiben
- Erstellen der
passwordDatei
(im selben Verzeichnis wiesvnserve.conf
:
[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
/etc/init.d/svnserve.sh
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 automatische Starten von svnserve jedenfalls unter Debian
Subversion-Client
- Der Zugriff mittels des Clients
svn
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.
- Mercurial: The Definitive Guide (Englisch) von Bryan O'Sullivan
- Zusammenarbeit zwischen Netbeans und Mercurial
Git
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
Zweige
Einen Branch/Zweig erzeugt man am einfachsten so:
git checkout -b NEUERZWEIG
Zu einem anderen Zweig wechselt man mit
git checkout ZWEIG
Der Standard-Zweig nennt sich normalerweise master
oder main
.
Git Merge
Siehe Anleitung zum Einfachen Branching und Merging
Ändern des letzten commits
Manchmal vergisst man eine Datei beim Commiten. Wenn es den letzten commit betrifft, ist die Fehlerbehebung einfach:
git add FEHLENDE_DATEI git commit --amend --no-edit