Archive

Svn

Posts on Svn.

[DICA] Git para Usuários do Subversion

Por esses dias encontrei um artigo maravilhoso, dividido em duas partes escrito por Teodor Zlatanov no site da IBM.

A primeira parte é uma introdução, explicando como instalar, configurar um repositório remoto e os comandos básicos do Git.

A segunda parte fala sobre ramificação e mesclagem no Git e SVN.



Subversion

Olá…

Primeiramente, o que seria esse tal de Subversion??? Que tal uma definição a moda Wikipédia?!?!

“Subversion é um sistema de controle de versão desenhado especificamente para ser um substituto moderno do CVS, que se considera ter alguns defeitos.” By Wikipédia

Se eu soubesse o que é CVS era bom!!!!! Calma… Vou tentar explicar….

O CVS ou Concurrent Version System que significa Sistema de Versões Concorrentes é uma sistema que permite ao usuário, seja ele desenvolverdor ou não, trabalhar comas diversas versões dos arquivos criados, organizados em um diretório, seja local ou remoto, guardando assim as versões mais antigas e os também as modificações entre as versões e, para quem não está trabalhando sozinho, é bom porque guarda os logs das alterações feitas por cada usuário do repositório do CVS.

Ficou mais claro agora????? rsrs… Espero que sim…

Mas voltando ao Subversion…. O SVN como explicado pelo Wikipédia é um sistema de controle de versão desenhado especificamente para ser um substituto moderno do CVS, o qual sabe-se que tem muitos “defeitos”. Bastante conhecido por svn, que é o nome da sua ferramenta de linha de comando.
O Subversion assim como o CVS é bastante útil para desenvolvedores e principalmente, na minha opnião, para pessoas bastante desastradas que sem querer apagam um pequeno pedaço do código de 2467 linhas ou simplesmente sem querer dão um rm -rf no arquivo errado, pois ocorrendo isso basta “pegar” a versão anterior existente no respositório e está tudo correto, tudo as mil maravilhas….
Mas beleza… Como instalar e usar essa “coisa”?!

Irei passar a vocês uns passos simples sobre como “trabalhar” com o Subversion.

Primeiramente instalar – A parte mais complicada.

[krix@rogue]$ apt-get install -fy subversion
[krix@rogue]$ apt-get update

Pronto está instalado… Agora vamos criar o repositório. Mas o que é esse tal de repositório?? Explicando de forma bem simples repositório é o diretório onde ficarão guardados todos os seus arquivos e sub-diretórios. Será esse repositório que você irá usar para guardar seus códigos, imagens ou seja lá o que você quizer.

Mas voltando a criação do repositório a criação deve no Subverson depende da criação anteriormente de um diretório onde será a base de seu repositório. Como por exemplo:

[krix@rogue]$ mkdir /home/krix/svn_root

Agora usarei o comando svnadmin para poder tornar esse diretório que criei agora em meu repositório Subversion.

[krix@rogue]$ svnadmin create /home/krix/svn_root/projeto_1

Agora você tem seu repositório Subversion criado, basta agora começar a colocar suas “coisas”, crie os diretórios que desejar e import para o seu repositório, lembrando que não existe uma regra onde você é obrigado a criar um diretório com um nome padrão, sendo assim coloque o nome que deseja mas procure pelo menos ter um mínimo de coerencia neh!!! rsrs…

[krix@rogue]$ mkdir /home/krix/codigos_projeto_1

[krix@rogue]$ cd /home/krix/

[krix@rogue]$ svn import  .  file:///home/krix/svn_root/projeto_1/

Adicionando codigos_projeto_1

Commit da revisão 1.

Agora vamos baixar o conteúdo que está guardado no repositório.

[krix@rogue]$ svn checkout file:///home/krix/svn_root/projeto_1/

Deu pra ver que somente veio o diretório “codigos_projeto_1, o qual havíamos importando antes do checkout. Então vamos colocar algo nele para que nosso repositório tenha mais “vida”!

[krix@rogue]$ cd codigos_projeto_1

[krix@rogue]$ touch base_projeto_1

[krix@rogue]$ touch base_projeto_2

[krix@rogue]$ svn add .

A       base_projeto_1

A       base_projeto_2

[krix@rogue]$ svn commit -m “CRIAÇÃO DAS BASES 1 E 2 DO PROJETO”

Adicionando base_projeto_1

Adicionando base_projeto_2

Transmitindo dados do arquivo .

Commit da revisão 2.

Agora temos um inicio de um projeto caseiro… 🙂 …. Mas se eu quizer remover algo?? Basta que ao invés de usar o comado add use o delete, assim:

[krix@rogue]$ svn delete base_projeto_2

D       base_projeto_2

[krix@rogue]$ svn commit -m “REMOÇÂO DA BASE 2 DO PROJETO”

Deletando base_projeto_2

Commit da revisão 3.

Para verificar alguma outra altualização no repositório basta usar o comando update, normalmente é necessário quando se tem mais de uma pessoa utilizando-o.

[krix@rogue]$ svn update

Contudo se usado somente da forma mostrada ele atualiza para a versão do ultimo commit mas se quizer atualizar para uma versão anterior basta acrescer a opção -r seguida do número da versão, desse jeito:

[krix@rogue]$ svn update -r2

Atualizado para revisão 2.

Por hoje ficarei por aqui, em um outro post irei falar mais sobre os outros comandos de grande importância para o manuseio do Subversion.

Existe um post no Blog ÚltimoLog que tem uma excelênte explicação sobre o SVN vale a pena da uma olhadinha.

wq!



Error: Valid UTF-8 data

Boa Tarde,

Hoje passei por um problema e a solução é bem simples, apesar de ter buscado um help no tio google e existirem mais pessoas com o problema e soluções malucas…

Pra resumir a história, quando tentava dar checkout no svn era retornada a seguinte mensagem:

Error: Commit failed (details follow):
Error: Valid UTF-8 data
Error: (hex: 5d 3a 43 68 61 6e 67 65 73 20 6f 6e 20 4d 65 74 68 6f 64 20 54 65 73 74)
Error: followed by invalid UTF-8 sequence
Error: (hex: b4 73 20 50)

Linda ela néh?! Pois é essa coisa fofa ai era somente aspas simples dentro do script do pre-commit… Retirada as aspas e pronto, funcionou que foi uma beleza!

Enfim o problema era que estava havendo incompatibilidade por conta de caracteres especiais. Caso um dia isso ocorra com você testa e caso não seja isso manda pra mim, pois comigo bastou retirar as aspas simples para poder funcionar normalmente.

:wq!