O clone de Gitolite não funciona como pretendido

6

Estou executando um sistema Debian e instalei recentemente o gitolite usando o pacote DEB.

Aqui está o meu problema:

Eu tentei clonar o repositório gitolite-admin.git (que é usado para configurar a instalação do gitolite para todos os repositórios que você deseja que o gitolite gerencie para você).

Minha primeira tentativa foi exatamente como as instruções dizem:

git clone gitolite@server:gitolite-admin

Recebi o seguinte erro:

fatal: 'gitolite-admin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Nota: A mesma coisa acontece se eu substituir o gitolite-admin por gitolite-admin.git
No entanto, quando eu faço o seguinte:

git clone gitolite@server:~/repositories/gitolite-admin.git

Esta linha clona com sucesso o repositório em minha estação de trabalho local.
Agora, não tenho nenhum problema em adicionar o texto extra ao caminho do arquivo, no entanto me disseram que isso é incorreto na documentação.

O seguinte link ( link ) afirma que "adicionar repositórios / em o início do nome do repositório no clone do git "é um erro / erro comum. Também afirma que "Na verdade, o gitolite preenche o $ REPO_BASE internamente, então você não deveria fazer a mesma coisa!"

Meu arquivo .gitolite.rc contém a seguinte linha para $ REPO_BASE:

[Located in /home/gitolite/.gitolite.rc]
$REPO_BASE="repositories";

A minha pergunta é, o que há de errado com a minha configuração, que faz com que o $ REPO_BASE não prefixe meu clone do git?

Se precisar de mais informações, deixe um comentário informando quais informações você precisa e terei prazer em ajudar.

Outras notas:

  • versão git: 1.7.2.3
  • gitolite version: 1.5.4-2 ~ bp (isso é do lenny-backports, porque estou usando o Debian Lenny e o gitolite não vem com o Lenny)
  • A instalação do Debian cria o usuário "gitolite" para gerenciar repositórios de gitolite com.
por invalidsyntax 17.05.2011 / 22:17

2 respostas

6

Ser capaz de acessar gitolite@server:~/repositories/gitolite-admin.git , mas não gitolite@server:gitolite-admin indica que você não está "usando" o Gitolite, mas apenas usando acesso simples baseado em SSH ao usuário do gitolite.

Se ssh gitolite@server echo normal access rende normal access , a chave que você está usando não está restrita a passar por Gitolite. Se você estivesse passando por Gitolite, veria algo como bad command: echo normal access .

Isso pode acontecer se você tiver uma chave que você usa para o SSH no próprio usuário gitolite e tentar usar a mesma chave para autenticar como um usuário Gitolite. Uma chave de "acesso normal" estará presente no .ssh/authorized_keys do gitolite sem nenhum prefixo especial. A linha para uma chave configurada para passar pelo Gitolite será iniciada como command="/path/to/gl-auth-command gitolite-username",… .

Se você precisar de acesso normal baseado em SSH para o usuário gitolite e acesso baseado em Gitolite, deverá configurar chaves separadas para esses propósitos, para que você possa especificar qual chave você deseja usar com IdentityFile opções em seu .ssh/config file (talvez também IdentitiesOnly se você achar que o ssh está usando a tecla "errado" só porque você já carregou em seu ssh-agent ).

Por exemplo:

Use uma de suas chaves "padrão" (um dos padrões de ssh (por exemplo, ~/.ssh/id_rsa ) ou alguma chave que você normalmente carregou em seu ssh-agent ) para acessar o Gitolite (ou seja, você tem a chave pública no ativo keydir/your-gitolite-user-name.pub ).

Gere ~/.ssh/gitolite-user para usar diretamente no usuário do gitolite. Use ssh -i ~/.ssh/gitolite-user gitolite@server para efetuar login. Ou adicione uma entrada personalizada a ~/.ssh/config :

Host gitolite-user
              User gitolite
          HostName server
      IdentityFile ~/.ssh/gitolite-user
    IdentitiesOnly yes

para que você possa fazer apenas ssh gitolite-user no login.

    
por 18.05.2011 / 05:44
0

Eu tive esse mesmo erro:

fatal: 'gitolite-admin' does not appear to be a git repository

O repo estava funcionando, mas depois de voltar usando a clonagem no servidor, como sugerido na seção de pânico do gitolite, alguns dos arquivos no repositório tinham raiz do proprietário em vez de gitolite3.

gitolite-admin.git# ls -l
total 48
drwx------  2 gitolite3 gitolite3 4096 Mar 27  2012 branches
-rw-r--r--  1 gitolite3 gitolite3    6 Mar 27  2012 COMMIT_EDITMSG
-rw-------  1 gitolite3 gitolite3  119 Jul 12  2013 config
-rw-r--r--  1 gitolite3 gitolite3   73 Aug 25  2013 description
-rw-r--r--  1 gitolite3 gitolite3  128 Aug 23 20:44 gl-conf
-rw-------  1 root      root        23 Aug 26 13:45 HEAD
drwx------  2 gitolite3 gitolite3 4096 Aug 25  2013 hooks
-rw-------  1 root      root       605 Aug 26 13:45 index
drwx------  2 gitolite3 gitolite3 4096 Mar 27  2012 info
drwxr-xr-x  3 gitolite3 gitolite3 4096 Mar 27  2012 logs
drwx------ 83 gitolite3 gitolite3 4096 Aug 26 14:01 objects
drwx------  4 gitolite3 gitolite3 4096 Mar 27  2012 refs

A correção é alterar a propriedade de volta para o gitolite3.

gitolite-admin.git# chown -R gitolite3:gitolite3 *
    
por 26.08.2016 / 23:09