Help:Subversion: Difference between revisions

From BlueM
Jump to navigation Jump to search
(→‎svnmerge.py: SvnMergeGui)
Line 60: Line 60:
*# Branch auschecken (d.h. es muss eine lokale Arbeitskopie des branchs vorliegen)
*# Branch auschecken (d.h. es muss eine lokale Arbeitskopie des branchs vorliegen)
*# Eine Kommandozeile im branch-Ordner öffnen
*# Eine Kommandozeile im branch-Ordner öffnen
*# Befehl ausführen: <dos>svnmerge.py init</dos>
*# Befehl ausführen: <code>svnmerge.py init</code>
*# Branch einchecken (Vorschlag für commit-message in Datei <code>svnmerge-commit-message.txt</code>)
*# Branch einchecken (Vorschlag für commit-message in Datei <code>svnmerge-commit-message.txt</code>)
* <u>Branch mit Änderungen aus dem trunk mergen:</u>
* <u>Branch mit Änderungen aus dem trunk mergen:</u>
*# Eine Kommandozeile im branch-Ordner öffnen
*# Eine Kommandozeile im branch-Ordner öffnen
*# Befehl ausführen: <dos>svnmerge.py avail --log</dos> Listet alle im trunk verfügbaren Revisionen auf, die noch nicht in den branch gemerged wurden.
*# Befehl ausführen: <code>svnmerge.py avail --log</code> Listet alle im trunk verfügbaren Revisionen auf, die noch nicht in den branch gemerged wurden.
*# Befehl ausführen: <dos>svnmerge.py merge</dos> Merged alle verfügbaren Revisionen aus dem trunk in den branch. (Selektives mergen von Revisionen auch möglich, siehe [http://www.orcaware.com/svn/wiki/Svnmerge.py#Release_branches Anleitung].)
*# Befehl ausführen: <code>svnmerge.py merge</code> Merged alle verfügbaren Revisionen aus dem trunk in den branch. (Selektives mergen von Revisionen auch möglich, siehe [http://www.orcaware.com/svn/wiki/Svnmerge.py#Release_branches Anleitung].)
*# Eventuelle Konflikte lösen
*# Eventuelle Konflikte lösen
*# Branch einchecken (Vorschlag für commit-message in Datei <code>svnmerge-commit-message.txt</code>)
*# Branch einchecken (Vorschlag für commit-message in Datei <code>svnmerge-commit-message.txt</code>)


[[Kategorie:Hilfe|Subversion]]
[[Kategorie:Hilfe|Subversion]]

Revision as of 04:12, 12 June 2008

Subversion (SVN) ist eine Open-Source-Software zur Versionsverwaltung von Dateien und Verzeichnissen.

Anleitungen

Clients

Es gibt eine Vielzahl von Subversion Clients (siehe Liste). Hier sei nur auf einen hingewiesen:

TortoiseSVN

Tipp
Benutzung von WinMerge als externes Diff-Tool in TortoiseSVN (internes Diff-Tool von TortoiseSVN hat keine Syntax-Hervorhebung):
In den TortoiseSVN Einstellungen, unter External Programs:
Unter Diff Viewer die Option External auswählen und in das Textfeld folgendes eintragen (ggf. WinMerge Installationsverzeichnis anpassen):
C:\Programme\WinMerge\WinMerge.exe /dl %bname /dr %yname %base %mine
Tipp
Benutzung von Perforce Visual Merge Tool als externes Merge-Tool in TortoiseSVN:
In den TortoiseSVN Einstellungen, unter External Programs:
Unter Merge Viewer die Option External auswählen und in das Textfeld folgendes eintragen (ggf. Perforce Installationsverzeichnis anpassen):
C:\Programme\Perforce\p4merge.exe %base %mine %theirs %merged
Tipp
Integration mit Visual Studio

Visual Studio Add-Ins

AnkhSVN

Projektmappenexplorer in VS mit AnkhSVN Add-In

AnkhSVN erlaubt es, die meistbenutzten SVN-Operationen direkt aus Visual Studio heraus zu benutzen.

Integration mit TortoiseSVN

TortoiseSVN Toolbar in Visual Studio

Diese vssettings-Datei fügt eine neue Werkzeugleiste mit TortoiseSVN-Befehlen ins Visual Studio ein.

(Installation von TortoiseSVN ist Voraussetzung!)

Subversion am IHWB

Es gibt verschiedene Möglichkeiten, auf die SVN Repositories am IHWB zuzugreifen:

https://wiki.bluemodel.org/svn/
Direktzugriff auf die SVN-Repositories. Diese URL wird von SVN-Clients benötigt, um SVN-Aktionen wie checkout, update, etc. auszuführen.
Im Web-Browser kriegt man unter dieser URL nur die aktuellsten (letzten) Revisionen der Dateien angezeigt.
https://wiki.bluemodel.org/websvn/
Web-Interface zu den SVN-Repositories
https://wiki.bluemodel.org/viewvc/
Ein weiteres Web-Interface zu den SVN-Repositories (nur für internen Gebrauch zugelassen)

Es sind nicht alle Repositories und auch nicht alle Unterordner der einzelnen Repositories für jeden einsehbar! Externe haben beispielsweise nur Zugriff auf ausgewählte Repositories und Ordner.

svnmerge.py

Um branches auf dem aktuellen Stand vom trunk zu halten, bietet sich das Skript svnmerge.py an (erhältlich als Python Skript und als EXE).

Das Skript legt im branch-Ordner eine svn-property an, in der abgespeichert wird, welche Revisionen bereits gemerged sind und welche noch nicht.

Hinweis
Es gibt auch ein SvnMergeGui!

Kurzanleitung:

  • Installation:
    • Svnmerge.py oder svnmerge.exe herunterladen und in einem Ordner abspeichern, der in der PATH-Umgebungsvariable von Windows angegeben ist (z.B. C:\Programme\Subversion\bin\ oder einfach C:\Windows\System32)
      (Im Folgenden wird davon ausgegangen, dass die Python-Version gewählt wurde. Wenn nicht der Fall, einfach svnmerge.py durch svnmerge.exe ersetzen)
  • Initialisierung von svnmerge in einem branch: Die Initialisierung muss lediglich einmal durchgeführt werden. Geprüft werden kann dies in den svn-properties: nach Initialisierung ist die Eigenschaft svnmerge-integrated eingetragen.
    1. Branch auschecken (d.h. es muss eine lokale Arbeitskopie des branchs vorliegen)
    2. Eine Kommandozeile im branch-Ordner öffnen
    3. Befehl ausführen: svnmerge.py init
    4. Branch einchecken (Vorschlag für commit-message in Datei svnmerge-commit-message.txt)
  • Branch mit Änderungen aus dem trunk mergen:
    1. Eine Kommandozeile im branch-Ordner öffnen
    2. Befehl ausführen: svnmerge.py avail --log Listet alle im trunk verfügbaren Revisionen auf, die noch nicht in den branch gemerged wurden.
    3. Befehl ausführen: svnmerge.py merge Merged alle verfügbaren Revisionen aus dem trunk in den branch. (Selektives mergen von Revisionen auch möglich, siehe Anleitung.)
    4. Eventuelle Konflikte lösen
    5. Branch einchecken (Vorschlag für commit-message in Datei svnmerge-commit-message.txt)