13
GIT on Cygwin on Windows
on February 13, 2008
GIT é uma ferramenta muito nova, portanto, ao contrário do Subversion, não tem nem perto do mesmo nível de suporte multi-plataforma, integração de sistemas, nem ferramentas. GIT é o Rails do mundo de SCM (Source Code Management) ;-)
Uma das suas deficiências é que não há nada tão simples quanto um setup.exe para instalar o Subversion ou um TortoiseSVN para gerenciar graficamente seus repositórios. Quem é do mundo Linux/Mac já está acostumado a utilizar o poderoso ambiente Unix. Sim, o Shell é mandatório para qualquer bom desenvolvedor, get over it.
Alguns dizem que GIT não roda no Windows. Nada mais longe da verdade. Eu disse que não é tão “simples” mas nem por isso é difícil (se bobear é até mais fácil do que com o MacPorts :-). Acabei de configurar meu Windows (rodando em Parallels, claro) com GIT e ele funciona perfeitamente. Tanto o GIT normal quanto o poderoso git-svn. Como? Simples, instale Cygwin. Ele já é um pacote compilado para Cygwin.

Baixe o setup do Cygwin (que deve ser menos de 500kb). Você precisa estar conectado à internet para continuar a instalação. Você escolhe “Install from Internet”, deixa o diretório padrão que ele recomenda, escolhe um servidor mirror (por exemplo, do UOL) e escolhe os pacotes.


Aqui uma dica: escolha o pacote GIT e também escolha os pacotes subversion e subversion-perl. Não desmarque os outros que já estão recomendados. Feito isso, apenas deixe ele baixar os pacotes e vá tomar um café. Se sua internet for rápida como a minha, nem tempo para o café você vai ter. No final, ele vai instalar algo em torno de 170Mb no seu disco. Bastante pouco para hoje em dia.

Seu desktop agora terá um shortcut que em vez de abrir o tradicional console DOS, vai abrir um shell Bash. De lá é como se você estivesse num terminal Linux/Unix. Funciona “quase” tudo parecido. Comandos básicos como ls, ps, kill, grep, cat, tail, head, estão todos lá. Não é que ele rode tudo do Linux de forma binariamente compatível: ele apenas roda programas e ferramentas que foram previamente compiladas para essa plataforma. Ela apenas torna mais fácil portar aplicações de Linux para Windows.
Isso dito, está tudo pronto: basta seguir os diversos tutoriais de git e se divertir. Ah sim, existe até mesmo como rodar Ruby e Rails via Cygwin, em vez de usar o famigerado One Click Installer. É a mesma coisa: abra o setup, escolha o pacote de ruby e instale. Se já tinha instalado via One Click Installer, não esqueça de retirar a variável de ambiente RUBYOPTS, conforme avisa este blog
Para quem não pode migrar nem para Linux, nem para Mac, por diversas razões (sua empresa não deixa), Cygwin é uma alternativa.





veja este… vai ficar agradavelmente surpreendido !! :D http://www.selenic.com/mercurial/wiki/index.cgi/Mercurial
Conheço o Mercurial. Ainda assim, entre Mercurial, Darcs, Monotone, Perforce, Bazaar, etc ainda prefiro o Git :-) Quando o Mercurial tiver algo parecido com git-svn, daí podemos conversar.
Akita, eu uso o E-Texteditor e ele da altos paus por causa dessa rubyopt, vc sabe para que serve isso? Eu dei uma fuçada na net e no site do ruby-gems eles falam que é para dar load nas gems… ai nao removi por causa disso…
To errado? posso tirar?
@daniel, pelo que eu entendo acho que sim (eu não uso windows). A variável de sistema RUBYOPT=rubygems serve para dizer ao ruby para automaticamente carregar o rubygems toda vez.
Acho que é o mesmo que dizer require ‘rubygems’. O Rails, por exemplo, já faz isso, então pra ele não faz diferença.
Num IRB, se você tentar dar require numa gem sem antes dar require no rubygems, vai dar erro. No Windows já iria direto. Acho que é essa a diferença.
No caso que falei acima, precisa tirar porque justamente você está instalando o Ruby no Cygwin e se já tiver o RUBYOPT pedindo para carregar uma biblioteca que nem existe, vai dar pau. Isso é resquício que sobra de uma instalação de One Click Installer.
Akita, tu sabe me dizer se tem um ganho melhor de performance usando o ruby no cygwin?
A parte ruim de se programar Ruby on Rails no Windows é a perca absurda de performance do Ruby (Talvez seja esse o motivo de não termos mais desenvolvedores RoR, a grande massa usa Windows).
E por conta ainda da pouca falta de suporte não rodo linux no meu notebook (Acer 5050, não funciona acpi).
Abraços Akita, aguardo resposta!
Fabio: I prefer the MSYS (MinGW) Git version:
http://code.google.com/p/msysgit/
Is a native, non posix version of git (which means faster), but lack some features like git-svn and cvs support…
In any case, I’m with bazaar for bzr-svn, works flawlessly across platforms :)
Luis
@cairo, realmente não tenho idéia, eu não uso Windows. O que sei é que no geral start de processos no Windows é mais lento que no Linux ou Mac, no mesmo hardware. Não me pergunte o motivo :-)
@Luis, great tip, but I would really miss git-svn, so I think cygwin installation hassle is worth the trouble for this tool alone.
Bazaar is not bad. I actually agree with this post which comments that Git, Mercurial and Bazaar are currently leading the DVCS arena.
Darcs is being put behind because it being written in Haskell which makes it difficult for people to contribute back (and performance can hurt you).
For those interested, this other post makes a good – albeit basic – comparison of Bazaar and Git modus operandi. And this other one does some pretty basic benchmark against Git, Bazaar and Mercurial.
Muito obrigado pela resposta Akita. Abraços.
O Bzr-Svn requer patches nas bindings do Subversion para Python e também patches do Subversion que estão no SVN 1.5. Portanto, para mim é impraticável. Acredito que seja assim para muitas outra pessoas também.
Fabio, estou com uma tremenda dificuldade para instalar minha aplicação na locaweb.
Não consigo rodar o comando:
git://github.com/technoweenie/restful-authentication.git
Em outro artigo vce comentou que a locaweb suporta GIT mas não consigo clonar esse progeto usando o msm.
Você poderia me ajudar?
Abs Marcello
@Marcello voce quer dizer:
git clone git://github.com/technoweenie/restful-authentication.git
Post “antigo”, porém muito bom… o único esclarecedor sobre bash no Windows.
Perguntas:
Qual a diferença entre o Cygwin e o msysgit?
Por que não escolher o “subversion-ruby”? Qual a influência desse pacote para o desenvolvimento em Ruby e Rails?
Ainda continuo com a opinião de que, para desenvolver e para uso pessoal, o windows é muito melhor que o Linux (não falando em termos de segurança, obviamente).
Porém, após o desenvolvimento de minhas aplicações, sempre utilizo hospedagem Linux, pois não há nada de melhor.
Uso e não troco por nada o RoR e quanto ao desempenho no Windows, não tenho do que reclamar. Roda perfeitamente e muito veloz, porém não mais rápido que PHP (odeio…). Mas do que adianta desempenho um pouco inferior se para desenvolver em Rails é 10x (ou mais) mais rápido que PHP, mesmo utilizando frameworks como o Cake.
Eu já possuia o git instalado no meu Windows e ele realmente não se comportou bem nas versões anteriores, porém recentemente está ótimo. Abraços.