Configurando um daemon git no Mac OS X

Git é ótimo para controle de versão distribuída – você pode compartilhar seus commits com outros desenvolvedores sem ter que enviar para uma origem remota. Muito útil se você tiver várias peças de trabalho em andamento na mesma área da base de código, por exemplo. Executar um daemon git é tão simples quanto:

$ cd /Users/jim/git/repos
$ git daemon
--export-all --base-path=.

Neste ponto, você deve certificar-se de que o login remoto esteja ativado no seu Mac. Se você não tiver certeza, vá para Configurações -> Compartilhamento e certifique-se de que o Login Remoto esteja marcado. Observe que o comando SSH informa em “Login remoto: Ativado”.

Agora, de outra máquina em sua rede, você deve ser capaz de adicionar seu Mac como um remoto no git de dentro de um repo:

$ cd /Users/charley/git/repos/teh-codez
$ git remote
add jim git://[Jim's IP address]:9418/teh-codez

Para verificar os controles remotos que você configurou:

$ git remote -v

Para puxar qualquer commit do remoto:

$ git pull jim master

Se você obtiver erros de conexão recusada, certifique-se de que pode fazer o SSH no servidor remoto e verifique se o daemon git está sendo executado na porta 9418, o padrão.

Executar o daemon git como um serviço

Crie um launchdplist de configuração como este, salvo em /Library/LaunchDaemons:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>Casper git daemon</string>
<key>UserName</key>
<string>jim</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/git</string>
<string>daemon</string>
<string>--base-path=/Users/jim/git/repos</string>
<string>--export-all</string>
</array>
</dict>
</plist>

Para verificar se a configuração funcionou, ele pode ser carregado usando launchctl(se você tiver o git daemon iniciado a partir do terminal, mate-o primeiro):

$ launchctl
launchd
% /Library/LaunchDaemons/jim-git-daemon.plist

O daemon git agora deve estar instalado e funcionando, e deve sempre ser iniciado quando você inicializar seu Mac.