We're also thinking to use git-http-backend, and use Apache for
authentication, but then do we lose access control?
Não, você pode configurar a autenticação com o ldap quase exatamente como você o usou para o SVN. O Gitweb e o git-http-backend usam o mod_ldap como o SVN para fins de autenticação.
Can the live site be automatically updated from a hook if Apache requires authentication?
O Git vem com o gitweb por padrão. É prodominately o que é usado lá fora para um navegador on-line para a sua base de código-fonte. Você pode configurá-lo atrás do Apache com o mod_ldap para fins de autenticação, assim como o git-http-backend. Nenhum gancho é necessário para atualizar o navegador on-line e os repositórios listados nele. Tudo isso é mantido pelo cgi, git-http-backend.
Can we combine git-http-backend and gitosis/gitolite somehow?
gitolite é o que você quer:
link
A gitosis é basicamente depreciada:
Ubuntu-server: convenção de nomenclatura de usuários da gitosis
Pessoalmente, apenas usamos o LDAP para autorização e autenticação do usuário. Você realmente não precisa de gitolite para gerenciamento de usuários se estiver usando o LDAP. Você pode usar qualquer ferramenta geral de gerenciamento de usuários LDAP para isso. A maioria das distribuições de linux vem com uma variedade de ferramentas de interface do usuário para gerenciar o openLDAP. Se você windows, basta usar o diretório ativo.
Tanto a abordagem padrão (git, gitweb, git-http-backend, LDAP) e gitolite suportam o seguinte:
- eles não são usuários "reais", como em logins na caixa física de hospedagem (de acordo com o uso do LDAP)
- eles não recebem acesso ao shell (de acordo com o uso do LDAP)
- controlam o acesso a muitos repositórios git
- acesso de leitura controlado no nível do repo
- pode ser instalado sem acesso root, supondo que git e perl já estejam instalados
A autenticação é mais comumente feita usando o sshd, mas você também pode usar o httpd se preferir (isso pode exigir acesso root).
No entanto, se você quiser um gerenciamento de usuários refinado sem LDAP e atender aos critérios a seguir, o gitolite pode ser uma solução melhor:
- use um único usuário unix (usuário "real") no servidor
- fornece acesso a muitos usuários de gitolite
- acesso de gravação controlado no nível da filial / tag / arquivo / diretório, incluindo quem pode retroceder, criar e excluir ramificações / tags
De link
Can we store http credentials with git?
Sim, você pode armazenar / atribuir usuários usando o git config:
git config --global user.name "Foo Bar"
git config --global user.email "[email protected]"
git config --global user.password "yourpassword"
git config --global github.user "yourusername"
git config --global github.password "yourpassword"
Embora, se você usá-lo com SSH, verifique se está usando certificados de CA e não um autoassinado. O Git tem esse hack estranho, sslVerify = false, para fazê-lo funcionar com certificados auto-assinados, o que parece frustrar o propósito de usar certs.
Quando você vai migrar o código do svn para o git, você precisará de uma boa ferramenta de importação. Eu não consegui encontrar nenhum que funcionasse bem para grandes repositórios, então escrevi o meu próprio. Sinta-se livre para experimentar se você encontrar problemas com o git-svn:
link