Änderungen

Zur Navigation springen Zur Suche springen
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]]

Navigationsmenü