Mostrando postagens com marcador mercurial. Mostrar todas as postagens
Mostrando postagens com marcador mercurial. Mostrar todas as postagens

segunda-feira, maio 18, 2009

Get your own bazaar hosting service for free

I was looking for a free bazaar hosting service that let me use it with my private projects. Unfortunately I was not able to find anyone.

This week I came across DropBox. DropBox is a site that let you share files between computers (and between people if you wish to). The basic plan give you 2GB for free!

DropBox interface is pretty easy to use. One folder (usually named DropBox) will be used to share your files.

You put a file into the folder and it will be available into any computer you log in. have you changed the file? DropBox will update it.

Don't you want the file anymore? Delete it from your Dropbox folder and it will be delete from other computers too (as soon as you get logged into them). DropBox will keep your files synchronized. You don't have to worry about it.

So, I decided to use it as a bazaar repository. I created a folder named bzr.d under DropBox. All files I want to keep under source control are inside this folder.

Now I have my own bazaar hosting for free. And know what? You can share your bazaar repository (bzr.d in my case) with some friends and all of you will be able to develop the same project. It's a bad idea to share your repository as I've told. The reasons were pointed out by our friend Andreas (see bellow on comments). Andreas, many thanks for pointing this out.

This solution (Dropbox + bazaar) works well when there is just one developer working on it. I do it since a long time without any problem.

You can even have many repositories at the same time (since they don't occupy more than 2GB).

Do you need more space? DropBox has two paid plans (50GB and 100GB).

And you can use it as a hosting for git and mercurial too.

Edited: As you can see in comments, our friend JavaJim gave us a nice tip (Thanks JavaJim):

"If you init your bazaar repository with command bzr init-repo --no-trees my-new-dropbox-repo you can save a lot of space on dropbox. Plus, you force your friends to work on their own branches instead of editing files on dropbox directly (with no-trees bazaar hides the source files)."

I think it's worth a try.

terça-feira, janeiro 15, 2008

Entendendo o Mercurial (2)

Fiz as correções na tradução do artigo Understanding Mercurial. A versão traduzida encontra-se aqui.

Aproveito para agradecer ao meu amigo Wanderley pelas correções e sugestões.

segunda-feira, janeiro 14, 2008

Entendendo o Mercurial

Hoje eu praticamente terminei a tradução do artigo Understanding Mercurial para o português. Falta eu fazer uma revisão e corrigir uns pequenos erros (que não atrapalham em nada o entendimento do assunto).

A tradução está no wiki do Mercurial. Podes visitá-la clicando aqui.

sábado, janeiro 12, 2008

Controle de Versões: Tão importante quanto o compilador!

Se tu desenvolves software, independente de qual seja a linguagem, então deves fazer o controle das modificações de algum modo.

Quando estava iniciando na programação, o controle que eu fazia era bem primitivo. Se eu tivesse apenas um arquivo, após finalizar as alterações, eu salvava uma cópia do mesmo com o seguinte formato: <nome>.<extensão><anomêsdia_horaminuto>.

Por exemplo, se eu tivesse um arquivo chamado meu arquivo.c e tivesse finalizado uma alteração do arquivo no dia 10/01/2008 às 18:30h, a cópia do mesmo teria o nome arquivo.c_20081001_1830.

Se por acaso fossem vários arquivos correlacionados, ao invés de copiar os arquivos em si, eu aplicava este método à pasta.

Por exemplo, se eu tivesse uma pasta chamada meuprograma e dentro desta pasta eu tivesse os arquivos meu_fonte.c, meu_fonte.h e LEIAME.TXT, após concluir as alterações nestes arquivos,supondo que elas tivessem ocorrido no dia 11/01/2008 às 09:30h, seria gerada uma cópia da pasta chamada meuprograma_20080111_0930.

Com o passar do tempo este tipo de controle torna-se ineficiente.

- Por quê? Porque eu não conseguia saber, por exemplo, que modificações foram feitas em que versão das cópias. Se eu tivesse um trabalho compartilhado com um ou mais colegas, tornava-se difícil dividir as tarefas e depois unir os trabalhos.

Procurando uma solução para estes problemas, encontrei o CVS. Durante anos ele foi uma ferramenta indispensável no meu trabalho. O CVS não evolui como deveria e, com o tempo, foi substituído com muitas vantagens pelo Subversion.

O Subversion, bem como o CVS e outros programas de controle de versão, possuem um repositório centralizado. Isto tem inumeras vantagens.

Um dia desses, meu amigo Wanderley me falou de um sistema de controle de versões (SCM) com repositório distribuído.

- Repositório distribuído? - Perguntei espantado. - Isso deve ser uma m...

Após ouvir atentamente (mesmo achando que seria perda de tempo), mudei de idéia e resolvi experimentar este programa. Afinal, o Wanderley é um programador muito experiente e não iria dar seu aval para uma solução meia-boca.

O Mercurial (este é o seu nome) é um sistema de controle de versões muito leve e ocupa pouco espaço disco.

Em SCMs com repositório centralizado, todos os arquivos ficam em um único local (servidor), sendo que os desenvolvedores baixam uma cópia dos mesmos para o seu diretório de trabalho. Certamente isto não é novidade para ti.

O Mercurial, por usar repositório distribuído, não possui um servidor central. Cada desenvolvedor tem ao mesmo tempo o repositório e o diretório de trabalho.

- Não parece nem seguro, nem prático. E qual a vantagem disso?

É seguro. O projeto já está bem estável e a cada release vários bugs são corrigidos .

É prático, pois por meio de comandos simples de exportação e importação podemos sincronizar nosso repositório com o repositório de outros desenvolvedores.

Além disso, o Mercurial possui várias extensões / contribuições da comunidade que ampliam e facilitam seu uso. Por exemplo, sua integração com o Bugzilla.

A vantagem de se utilizar o repositório distribuido verifica-se quando tu tens arquivos ou projetos que desenvolves na tua casa, no trabalho, nos computadores da faculdade, etc e não tens como instalar o Subversion, por exemplo, para controlar a versão dos mesmos (ou não tens acesso à rede).

Usando o Mercurial, podes manter o controle de versões onde for necessário, sem problemas. Não é preciso nem do acesso à rede. É só executares uma exportação / importação das modificações e pronto.

Isso sem abrir mão de controle de versões, habilidade de efetuar os diffs, ver logs, uso de tags, entre outras coisas que já nos acostumamos com o Subversion.

Já estou utilizando o Mercurial em 3 projetos (faz menos de um mês que comecei a usá-lo) e estou completamente satisfeito.

Estou pensando em traduzir para o Português os tutorias que se encontram no site oficial como uma forma de ajudar a ampliar o seu número de usuários.

Se tu usas o Subversion, o CVS ou outro sistema de versões, experimente o Mercurial. Com toda a certeza vais gostar muito de trabalhar com ele.

E se tu ainda não usas nenhum sistema destes, já passou da hora de começares. Vá no site do Mercurial e comece a utilizá-lo. Com o tutorial fornecido, em menos de 20 minutos já estarás dominando o programa.

Tu não vais te arrepender.