Desde de julho de 2012, o FreeBSD usa o Subversion como o único sistema de controle de versão para armazenar todo o código-fonte do FreeBSD, a documentação e a coleção de ports.
O Subversion é geralmente uma ferramenta de desenvolvimento. Os usuários podem preferir usar o freebsd-update (Seção 23.2, “Atualização do FreeBSD”) para atualizar o sistema básico do FreeBSD, e o portsnap (Seção 4.5, “Usando a Coleção de Ports”) para atualizar a coleção de ports do FreeBSD.
Esta seção demonstra como instalar o Subversion em um sistema FreeBSD e usá-lo para criar uma cópia local de um repositório do FreeBSD. Informações adicionais sobre o uso de Subversion estão incluídas.
A instalação do security/ca_root_nss permite que o Subversion verifique a identidade dos servidores de repositório HTTPS. Os certificados raiz SSL podem ser instalados a partir de um port:
#cd /usr/ports/security/ca_root_nss#make install clean
ou como um pacote:
#pkg install ca_root_nss
Uma versão leve do Subversion já está instalada no FreeBSD como svnlite. A versão do port ou pacote do Subversion é necessária apenas se a API do Python ou do Perl for necessária, ou se uma versão posterior do Subversion for desejada.
A única diferença do uso normal do Subversion é que o nome do comando é svnlite.
Se o svnlite não estiver disponível ou a versão completa do Subversion for necessária, ele deverá ser instalado.
O Subversion pode ser instalado a partir da coleção de ports:
#cd /usr/ports/devel/subversion#make install clean
O Subversion também pode ser instalado como um pacote:
#pkg install subversion
Para obter uma cópia limpa do código-fonte em um diretório local, use svn. Os arquivos neste diretório são chamados de cópia de trabalho local.
Mova ou exclua o diretório de destino existente antes de usar o checkout pela primeira vez.
O checkout em cima de um diretório não-svn existente pode causar conflitos entre os arquivos existentes e aqueles trazidos do repositório.
O Subversion usa URLs para designar um repositório, sob a forma de protocol://hostname/path. O primeiro componente do caminho é o repositório do FreeBSD para acessar. Existem três repositórios diferentes, base para o código-fonte do sistema básico do FreeBSD, ports para a coleção de ports, e doc para a documentação. Por exemplo, o URL https://svn.FreeBSD.org/ports/head/ especifica a ramificação principal do repositório de ports, usando o protocolo https.
Um checkout de um determinado repositório é executado com um comando como este:
#svn checkout https://svn.FreeBSD.org/repository/branchlwcdir
Onde:
O repository é um dos repositórios do Projecto: base, ports, ou doc.
A branch depende do repositório usado. O ports e o doc são normalmente atualizados na ramificação head, enquanto base mantém a última versão de -CURRENT em head e as respectivas versões mais recentes das ramificações -STABLE em stable/9 (9.x) e stable/10 (10.x).
O lwcdir é o diretório de destino onde o conteúdo do ramo especificado deve ser colocado. Isso geralmente é /usr/ports para o ports, /usr/src para a base, e /usr/doc para o doc.
Este exemplo obtém a coleção de ports do repositório do FreeBSD usando o protocolo HTTPS, colocando a cópia de trabalho local em /usr/ports. Se o /usr/ports já estiver presente, mas não tiver sido criado pelo svn, lembre-se de renomeá-lo ou excluí-lo antes do checkout.
#svn checkout https://svn.FreeBSD.org/ports/head /usr/ports
Como o checkout inicial deve fazer o download da ramificação completa do repositório remoto, isso pode demorar um pouco. Por favor, seja paciente.
Após o checkout inicial, a cópia de trabalho local pode ser atualizada executando:
#svn updatelwcdir
Para atualizar o /usr/ports criado no exemplo acima, use:
#svn update /usr/ports
O update é muito mais rápido do que um checkout, transferindo apenas os arquivos que foram alterados.
Uma maneira alternativa de atualizar a cópia de trabalho local após o checkout é fornecida pelo Makefile existente em /usr/ports, /usr/src, e /usr/doc. Configure o SVN_UPDATE e use o destino atualizar. Por exemplo, para atualizar /usr/src:
#cd /usr/src#make update SVN_UPDATE=yes
O repositório Subversion do FreeBSD é:
svn.FreeBSD.org
Essa é uma rede de espelhos acessível publicamente a qual usa o GeoDNS para selecionar um servidor de backend apropriado. Para visualizar os repositórios Subversion do FreeBSD através de um navegador, use https://svnweb.FreeBSD.org/.
O HTTPS é o protocolo preferido, mas o pacote security/ca_root_nss precisará ser instalado para validar os certificados automaticamente.
Para outras informações sobre o uso do Subversion, por favor veja o “Subversion Book”, intitulado Version Controle com Subversion, ou o Documentação do Subversion.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.