Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software_entwicklung:subversion:start [2010-06-23 11:58] zueger1software_entwicklung:subversion:start [2010-10-13 15:18] (aktuell) – gelöscht zueger1
Zeile 1: Zeile 1:
-====== Subversion am NTB ====== 
-<box 30% right green | QuickLinks> 
-  * [[TortoiseSVN | Kurzanleitung TortoiseSVN]] 
-</box> 
-Subversion (kurz SVN) ist eine freie Software zur Versionsverwaltung von Dateien und Verzeichnissen. 
- 
-===== Übersicht ===== 
-SVN verwendet für die Versionierung eine einfache Revisionszählung. Diese findet in einem zentralen (engl. repository) Projektarchiv statt. Der Entwickler arbeitet mit einer lokalen Kopie der Daten. Diese werden jeweils mit dem Server synchronisiert. Dabei wird zwischen einem //Commit// und einem //Update// unterschieden. Beim Update wird die lokale Kopie auf die selbe Revision wie der Server gebracht. Führt man ein Commit durch, so werden alle Änderungen die man lokal getätigt hat zum Server übertragen. Dabei kann es zu einem Konflikt kommen, wenn der folgene Fall eintritt: Die lokal geänderte Datei wurde zwischenzeitlich von jemand anderem ebenfalls verändert und bereits wieder hinzugefügt. Aus diesem Fall muss vor jedem Commit ein Update ausgeführt werden. Somit kann SVN sicherstellen, das keine der lokal geänderten Dateien bereits auf dem Server geändert wurden. Ist dies der Fall, kann man beim Update die lokale Kopie mit der auf dem Server zusammenführen (engl. merge). 
- 
-Am NTB ist auf allen Rechnern [[Software Entwicklung:Subversion:TortoiseSVN]] installiert. 
- 
-===== Dokumentation ===== 
-  * [[.:TortoiseSVN | TortoiseSVN Kurzeinführung]] 
-  * [[.:Richtlinien | Richtlinien für den richtigen Umgang mit SVN]] 
-  * [[.:NTB SVN-Server | Der NTB SVN-Server]] 
- 
- 
-===== Richtlinien für den richtigen Umgang mit SVN ===== 
-Diese Richtlinien stützen sich auf [[http://svnbook.red-bean.com/en/1.4/index.html]] 
-  * Die aktuelle und gemeinsame Version befindet sich stets im Verzeichnis trunk. Trunk beinhaltet also immer die Hauptlinie der Entwicklung. 
-  * Branches sollen erstellt werden für Entwicklungen, die relativ radikale und weitergehende Änderungen von der Hauptlinie bedingen. Ein Branch wird stets im Verzeichnis Branches angelegt. Das wesentliche Merkmal eines solchen Branches gibt dem Branch den Namen. In Branches wird ein Unterverzeichnis mit diesem Namen angelegt. Also z.B. branches/NewMath/. trunk und branches sind nun zwei unabhängige Entwicklungslinien. Achtung: Die Revisionsnummern in trunk und branches laufen gemeinsam weiter (siehe p80 in [[http://svnbook.red-bean.com/en/1.4/index.html]]). Mit zunehmender Entwicklungszeit wird es schwieriger, einen Branch wieder in die Hauptlinie der Entwicklung zu integrieren. 
-  * Tags sind eine Momentaufnahme eines Projektes in der Zeit. Das leistet natürlich bereits das Konzept einer Revision in svn. Als Tag wird eine Version, z.B. Release 1.2 markiert und im Verzeichnis tags/release-1.2/ abgelegt. In diesem Verzeichnis darf kein "commit" erfolgen. 
- 
-===== NTB SVN-Server ===== 
-Das NTB betreibt unter https://svn.ntb.ch einen eigenen SVN-Server. Die meisten Repositories auf diesem sind jedoch weder öffentlich noch für Studenten der NTB zugänglich. Ausgenommen sind Studierende, die für ihre Abschlussarbeit (Bachelor- oder Masterarbeit) ein SVN Verzeichnis benötigen. 
- 
-Am NTB entwickelte OpenSource-Projekte werden üblicherweise bei [[http://sf.net | SourceForge]] gehostet. 
- 
-===== NTB Projekte bei SourceForge ===== 
- 
-^ Projekt     ^ Beschreibung            ^ Webseite ^ SVN ^ 
-| libusbJava | Java Wrapper for libUSB | [[http://libusbjava.sourceforge.net | libusbjava]] (Projektseite bei sf.net) | [[https://libusbjava.svn.sourceforge.net/svnroot/libusbjava/trunk | Trunk ]] |