Magit no reconoce el repositorio de git a través de la conexión ssh

10

Estoy usando ssh para conectarme a un servidor remoto. En el servidor hay un repositorio git llamado MRFLSSVM. Sin embargo, cuando ejecuto magit-statusen:

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

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

¿Alguna idea de cómo dejar que magit reconozca ese repositorio? (Ya instalé git 2.10.0 en / usr / local / git y configuré mi sistema (CentOS) para usarlo con las alternativas de actualización)

-----------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'.

Este problema parece ser trampque no está utilizando el git correcto en el servidor remoto. He tratado de cambio magit-git-executablea usr/local/git/bin/gitque es el camino tanto de mi git local y mandos a distancia instalado. Pero esto todavía no funciona.

¿Alguna idea para resolver esto? ¡Gracias!

espacio
fuente
1
Funciona para mi. Supongo que la versión de git en el servidor remoto es demasiado antigua. Magit 2 requiere una versión mínima de git de 1.9.4.
PHILS
Tenga en cuenta que Magit over tramp es probable que sea significativamente más lento que una instancia local. En estos casos, prefiero ssh al servidor remoto en una terminal y ejecutar Emacs (en la terminal) en ese servidor. Entonces todas las operaciones de git son locales y rápidas.
PHILS
Bueno, creo que su principal problema es que el servidor remoto no tiene una versión de git lo suficientemente reciente. Independientemente de dónde esté ejecutando Emacs, Magit 2 necesita que ese servidor ejecute git 1.9.4 o posterior. Magit 1 todavía está disponible y funciona con versiones mucho más antiguas de git, por lo que podría intentar usar eso en su lugar. (Sin embargo, no recuerdo si Magit 1 funciona sobre vagabundo.)
phils
@phils He actualizado el git del servidor a 2.8.1, pero todavía no funciona. ¿Cómo puedo encontrar el problema? Soy un usuario de spacemacs. ¿Tiene esto algo que ver con los spacemacs?
Spacegoing
Eso me parece muy poco probable, pero no lo sé. Tendrás que probar y descubrir, supongo. Lamento escuchar que eso no funcionó; Estaba bastante seguro de que ese era el problema (¿se estaba ejecutando una versión anterior a 1.9.4 originalmente?). Si aún no lo hizo, asegúrese de reiniciar Emacs antes de la prueba, por si eso marca la diferencia.
PHILS

Respuestas:

6

Error (magit): Magit requiere Git> = 1.9.4, está utilizando 1.8.3.

Ya instalé git 2.10.0 en / usr / local / git

La lista de directorios para buscar ejecutables en hosts remotos está controlada por la opción tramp-remote-path. Comienza con un elemento "lo que el control remoto me dijo qué debería usar", pero en mi experiencia eso no funciona tan bien. En particular, ignora cualquier cambio $PATHque haya realizado en el archivo de configuración de su shell, creo.

Entonces, en su archivo init, ponga /usr/local/git/binantes /usr/binen tramp-remote-path:

(require 'tramp)
(push "/wherever/git/is/" tramp-remote-path)
tarsius
fuente
0

Si su versión de git está bien, el problema puede estar en la configuración de este repositorio de git, por ejemplo, un error de sintaxis en .git/config.

Para verificar eso, abra un shell en la máquina y directorio del repositorio, y escriba git status

Stéphane
fuente