Von Gast (nicht überprüft) , 29 April 2026

Zwei Modelle, zwei Kosten

SVN-Branches sind Verzeichniskopien im Repository. Git-Branches sind Zeiger.

Branching-Befehle

# SVN
svn copy ^/trunk ^/branches/feature -m "Create feature branch"
svn switch ^/branches/feature

# Git
git checkout -b feature
git switch feature

Merge-Tracking

Bis SVN 1.5 war Merging manuell. SVN 1.5+ fugte svn:mergeinfo hinzu. Git verfolgt Merges nativ im Commit-Graph.

Merging in der Praxis

# SVN merge feature back to trunk
svn switch ^/trunk
svn merge ^/branches/feature
svn commit -m "Merge feature"

# Git merge feature back to main
git checkout main
git merge feature

Konfliktauflosung

Beide Systeme verwenden Drei-Wege-Merge.

Wiederholtes Mergen

Git handhabt trivial "Ich habe letzte Woche von main gemerged, was hat sich geandert?".

Cherry-picking

# SVN
svn merge -c 12345 ^/trunk

# Git
git cherry-pick <sha>

Branch-Hygiene

Da Git-Branches gunstig sind, verwenden Teams sie freigiebig.

Sichtbarkeit

Git's git log --graph --all rendert den gesamten Branch- und Merge-Graph in Sekunden.

Wo SVN seinen Stand halt

  • "Trunk only" mit seltenen Release-Branches.
  • Per-Verzeichnis-Zugriffskontrolle.

Migrationsauswirkung

Die grosste kulturelle Verschiebung beim Wechsel von SVN zu Git ist Branching.