
\chapter{Utilizando  o SubVersion}

\section{Utilizando  o SubVersion}

\subsection{Obtendo um Projeto, via acesso anonimo}
Para se obter projetos com acesso anonimo do servidor SVN, basta(exemplo baseado no servidor do projeto LibertasBR, onde repositório e o qual você deseja acessar.):

\begin{framed}
\$svn co svn://oficina.libertasbr.org.br/repositorio/
\end{framed}

\subsection{Acesso de Desenvolvedores}

Como já foi explicado, todo acesso que necessita de direitos de escrita dentro do repositorio e/ou projetos são feitos através de tuneis SSH. Assim para se fazer uma checagem, ou baixar o repositorio, usa-se sintaxe semelhante:

\begin{framed}
\$svn co svn+ssh://user@oficina.libertasbr.org.br/repositorio/
\end{framed}
e será pedido a senha do usuário no servidor.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Principais Comandos}

\subsubsection{Importando um Projeto}
svn import meuprojeto svn+ssh://user@oficina.libertasbr.org.br/repositorio/

\subsubsection{Ciclo de Trabalho}

Para se obter mais informações sobre os comandos utiliza:

\begin{framed}
\$svn help subcomando
\end{framed}

Um típico ciclo de trabalho seria algo semelhante à:

\begin{itemize}
\item Obtendo copia inicial de trabalho
	
	\begin{itemize}
	\item svn co svn+ssh://oficina.libertasbr.org.br/repositorio/
	\end{itemize}

\item Atualizando a cópia de trabalho
	
	\begin{itemize}
	\item svn update
	\end{itemize}


\item Fazendo alterações
	
	\begin{itemize}
	\item svn add
	\item svn delete (rm)
	\item svn copy (cp)
	\item svn move (mv)
	\end{itemize}

\item Examinando suas alterações
	
	\begin{itemize}
	\item svn status
	\item svn diff
	\item svn revert
	\end{itemize}

	
\item Fusão de outras alterações
	
	\begin{itemize}
	\item svn merge
	\item svn resolved
	\end{itemize}
	
\item Efetivando suas alterações
	
	\begin{itemize}
	\item svn commit (ci)
	\end{itemize}

\end{itemize}


\subsection{Programas Gráficos para Auxiliar a Manipulação}

Existem algumas opções de Programas gráficos que auxiliam a utilização do SVN.

Dois exemplos são o esvn e o rapidsvn.







\section{Exemplo Prático :)}
É um exemplo bem pratico mesmo... (posso estar cometendo alguns vacilos, pois eu também estou aprendendo a usar o SVN, mas ate agora, seguindo essa forma tenho me saido bem)

Vamos supor que já tenhamos pedido para o Administrador do serviço SVN para criar o Repositório para o projeto, e que esse repositório se chama ``mussi".

O primeiro passo que temos de fazer é importar os arquivos do nosso projeto, aqui chamado de ``homologacao", para o repositório ``mussi".

\begin{framed}
\$svn import /home/mussi/homologacao  svn+ssh://oficina/svn/mussi/lbr/homologacao
\end{framed}

Repare o seguinte:
\begin{itemize}
\item /home/mussi/homologacao, é o diretório local onde estão os arquivos que serão enviados para o servidor SVN.
\item svn+ssh://oficina/svn/mussi/lbr/homologacao, é o endereço para o qual será enviado os arquivos. oficina é o nome do servidor, para acessa-lo remotamente tem de se usar o nome completo deste, oficina.libertasbr.org.br. Observe que se pode criar os diretórios dentro do servidor SVN facilmente,por ex. o dir ``lbr/homologacao" esta sendo criado.
\end{itemize}

Após os arquivos envidos, vamos criar um diretório para ser a cópia de trabalho do projeto ``homologacao". Por ex. ~/projetos/. E obter uma cópia doprojeto do repositório.

\begin{framed}
\$cd \\
\$mkdir projetos\\
\$cd projetos\\
\$svn co svn+ssh://oficina/svn/mussi/lbr/homologacao
\end{framed}

Agora temos o dir. ~/projetos/homologacao, com uma copia do projeto homologação para trabalho. Dentro desse dir é que passaremos a trabalhar apartirdesse instante.

