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
/branch
lwcdir
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 update
lwcdir
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>.