¿Cómo puedo obtener el directorio raíz del repositorio git actual? Podría correr shell-command-to-string
en algo así git rev-parse --show-toplevel
. ¿Hay una mejor manera? ¿ magit
O cualquier otro git front-end expone esta información?
9
git rev-parse --show-toplevel
lugar degit rev-parse --git-dir
?Respuestas:
En Magit, esto está disponible como
magit-toplevel
(pero estoy de acuerdo con @ abo-abo en que tiene sentido usarlovc-root-dir
).fuente
vc-root-dir
Es seguramente el más genérico. Sin embargo, no puedo hacer que funcione de esa forma como mencioné en los comentarios sobre la respuesta de @ abo-abo. Pero este funcionó directamente. ¡Gracias!Es necesario
vc-root-dir
. Funciona por más que git.fuente
vc-root-dir
. Lo único que está cerca esvc-root-diff
. Y en unavc
búsqueda relacionada, encuentro esto .vc
es demasiado viejo? Tengo el incorporado con emacs 24.3. No veovc-root
envc.el
o conapropos
etc. Mirandovc.el
, veo cosas como(setq rootdir (vc-call-backend...))
. Y de hecho,(vc-call-backend 'Git 'root default-directory)
funciona.vc-root-dir
solo está en el baúl en esta etapa. Ciertamente no está en 24.4. Presumiblemente estará disponible en Emacs 25.Como se menciona por abo-abo, en Emacs 25, hay una función llamada
vc-root-dir
que hace lo que necesita de una manera independiente del backend. Para versiones anteriores de Emacs, el siguiente es un reemplazo adecuado:Como mencionó Kyle, Magit proporciona la función
magit-get-top-dir
, que simplemente llamagit rev-parse --show-cdup
e interpreta el resultado.fuente
vc-root-diff
, lo intentévc-deduce-backend
. De alguna manera, eso regresanil
en mi git-repo. Sin embargo,vc-responsible-backend default-directory
vuelveGit
.vc
, entoncesvc-deduce-backend
regresanil
. ¿Eso lo explica?ielm
y esperabavc-deduce-backend
usarlodefault-directory
. ¡Gracias!vc-root-dir
lugar devc-root-diff
?