O que é Subversion?

Subversion é um sistema de controle de versão livre/open-source. Isto é, Subversion gerencia arquivos e diretórios ao longo do tempo. Uma árvore de arquivos é colocada em um repositório central. O repositório se parece muito com um servidor de arquivos ordinário, exceto que ele se lembra de todas as mudanças feitas em seus arquivos e diretórios. Isso permite a você recuperar versões antigas dos seus dados, ou examinar o histórico de como seus dados foram alterados. Em relação a isso, muitas pessoas imaginam o sistema de controle de versão como sendo um tipo de “máquina do tempo”.

O Subversion pode acessar seu repositório através da rede, o que permite que ele seja usado por pessoas em diferentes computadores. Até certo ponto, a habilidade de várias pessoas poderem modificar e gerenciar o mesmo conjunto de dados a partir de seus respectivos locais aumenta a colaboração. Progressos podem acontecer mais rapidamente sem necessitar de um único canal por onde todas as modificações devem ocorrer. E porque o trabalho é "versionado", você não precisa temer a perda de qualidade por causa da falta desse canal—se alguma mudança incorreta é feita nos dados, simplesmente desfaça essa mudança.

Alguns sistemas de controle de versão também são sistemas de gerenciamento de configuração de software (SCM - Software Configuration Management). Esses sistemas são especificamente feitos para gerenciar árvores de código-fonte, e eles têm muitas características que são específicas para desenvolvimento de software—tais como entender nativamente linguages de programação, ou fornecer ferramentas para construir software. O Subversion, no entanto, não é um desses sistemas. Ele é um sistema genérico que pode ser usado para gerenciar qualquer coleção de arquivos. Para você, esses arquivos podem ser código-fonte—para outros, qualquer coisa desde lista de compra de alimentos até mixagens de vídeo digital.