Por Anónimo (no verificado) , 29 Abril 2026

Dos filosofías

Subversion (SVN), lanzado en 2000, es un sistema centralizado de control de versiones. El repositorio vive en un servidor; los clientes hacen checkout, commit al servidor, y update desde él. Git, lanzado en 2005, es distribuido.

Modelos mentales

El modelo mental de SVN es el archivero: un lugar compartido. El modelo de Git es más como email: cada participante tiene la historia completa.

Lo que SVN hizo bien

  • Simple de explicar.
  • Control de acceso granular a nivel de directorio.
  • Bloqueo de archivos para binarios que no se pueden mergear.
  • Números de revisión lineales y monotónicos.
  • Estable para repositorios muy grandes con contenido mixto.

Lo que Git hizo bien

  • Branches y merges baratos y rápidos.
  • Historia local completa.
  • Modelo distribuido sobrevive a caídas del servidor.
  • Direccionamiento por contenido SHA detecta corrupción.
  • El ecosistema es vasto.

Comandos del día a día comparados

# SVN
svn checkout https://svn.example.com/repo
svn update
svn add file.txt
svn commit -m "Add file"
svn log

# Git
git clone https://git.example.com/repo.git
git pull
git add file.txt
git commit -m "Add file"
git push
git log

Dónde muerden las filosofías

En SVN, "commit" significa publicar a todos inmediatamente. En Git, "commit" es local; "push" publica.

Branching

# Branch SVN
svn copy https://svn.example.com/repo/trunk \
         https://svn.example.com/repo/branches/feature -m "Branch"

# Branch Git
git checkout -b feature

Por qué Git ganó cuota de mercado

Tres factores: efectos de red de GitHub desde 2008; el dominio de Linux y la elección del kernel de Git; y el surgimiento de cloud y desarrollo remoto.

Cuándo SVN sigue siendo una elección sensata

  • Repositorios binarios grandes donde mergear es imposible.
  • Entornos controlados con control de acceso estricto por directorio.
  • Pipelines de tooling establecidos.
  • Equipos en una sola sede que nunca trabajan offline.