Magit não reconhece repositório git através da conexão ssh

10

Estou usando o ssh para conectar-se a um servidor remoto. No servidor, há um repositório git chamado MRFLSSVM. No entanto, quando executo magit-statusem:

/ssh:qmServer:/home/Chang/qmCodeLab/MRFLSSVM/

Magit me pede Create repository in /ssh:qmServer:/home/Chang/qmCodeLab/MRFLSSVM/?.

Alguma idéia de como deixar o magit reconhecer esse repositório? (Eu já instalei o git 2.10.0 em / usr / local / git e configurei meu sistema (CentOS) para usá-lo por update-alternative)

-----------Editar------------------------------

Error (magit): Magit requires Git >= 1.9.4, you are using 1.8.3.

If this comes as a surprise to you, because you do actually have
a newer version installed, then that probably means that the
older version happens to appear earlier on the `$PATH'.  If you
always start Emacs from a shell, then that can be fixed in the
shell's init file.  If you start Emacs by clicking on an icon,
or using some sort of application launcher, then you probably
have to adjust the environment as seen by graphical interface.
For X11 something like ~/.xinitrc should work.

If you use Tramp to work inside remote Git repositories, then you
have to make sure a suitable Git is used on the remote machines
too.

Error (magit): Magit requires Git >= 1.9.4, but on /ssh:qmServer: the version is 1.8.3.

If multiple Git versions are installed on the host then the
problem might be that TRAMP uses the wrong executable.

First check the value of `magit-git-executable'.  Its value is
used when running git locally as well as when running it on a
remote host.  The default value is "git", except on Windows
where an absolute path is used for performance reasons.

If the value already is just "git" but TRAMP never-the-less
doesn't use the correct executable, then consult the info node
`(tramp)Remote programs'.

Esse problema parece trampnão estar usando o git correto no servidor remoto. Eu tentei mudar magit-git-executablepara usr/local/git/bin/gitqual é o caminho do meu git local e remoto instalado. Mas isso ainda não funciona.

Alguma idéia para resolver isso? Obrigado!

viagem espacial
fonte
11
Funciona para mim. Estou supondo que a versão do git no servidor remoto seja muito antiga. O Magit 2 requer uma versão git mínima da 1.9.4.
phils
Observe que o Magit over tramp provavelmente será significativamente mais lento que uma instância local. Nesses casos, prefiro ssh para o servidor remoto em um terminal e execute o Emacs (no terminal) nesse servidor. Todas as operações git são locais e rápidas.
Phs #
Bem, acho que o seu principal problema é que o servidor remoto não possui uma versão suficientemente recente do git. Independentemente de onde você esteja executando o Emacs, o Magit 2 precisa desse servidor para executar o git 1.9.4 ou posterior. O Magit 1 ainda está disponível e funciona com versões muito mais antigas do git, então você pode tentar usá-lo. (Não me lembro se magit 1 funciona mais vagabundo, no entanto.)
phils
@phils Atualizei o git do servidor para 2.8.1, mas ainda não funciona. Como posso encontrar o problema? Eu sou um usuário do spacemacs. Isso tem algo a ver com os spacemacs?
spacegoing 30/09/16
Isso parece muito improvável para mim, mas eu não sei. Você terá que testar e descobrir, eu acho. Lamento ouvir que isso não funcionou; Eu estava bastante confiante de que era esse o problema ( ele estava executando uma versão anterior à 1.9.4 originalmente?). Se você ainda não o fez, reinicie o Emacs antes do teste, caso isso faça alguma diferença.
Phs #

Respostas:

6

Erro (magit): Magit requer Git> = 1.9.4, você está usando 1.8.3.

Já instalei o git 2.10.0 em / usr / local / git

A lista de diretórios para procurar executáveis em máquinas remotas é controlado pela opção tramp-remote-path. Começa com um elemento "o que o controle remoto me disse o que eu deveria estar usando", mas na minha experiência isso não funciona tão bem. Em particular, ele ignora quaisquer alterações $PATHfeitas no arquivo de configuração do seu shell, acredito.

Então, no seu arquivo init, coloque /usr/local/git/binantes /usr/binem tramp-remote-path:

(require 'tramp)
(push "/wherever/git/is/" tramp-remote-path)
tarso
fonte
0

Se a sua versão git estiver correta, o problema pode estar na configuração deste repositório git, por exemplo, um erro de sintaxe no .git/config.

Para verificar isso, abra um shell na máquina e no diretório do repositório e digite git status

Stéphane
fonte