Magit không nhận ra git repo thông qua kết nối ssh


10

Tôi đang sử dụng ssh để kết nối với một máy chủ từ xa. Trên máy chủ có một repo git được gọi MRFLSSVM. Tuy nhiên, khi tôi thực hiện magit-statustrên:

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

Magit yêu cầu tôi Create repository in /ssh:qmServer:/home/Chang/qmCodeLab/MRFLSSVM/?.

Bất cứ ý tưởng làm thế nào để cho phép thuật nhận ra repo đó? (Tôi đã cài đặt git 2.10.0 trên / usr / local / git và định cấu hình hệ thống của tôi (CentOS) để sử dụng nó bằng cách thay thế cập nhật)

-----------Biên tập------------------------------

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

Vấn đề này dường như tramplà không sử dụng đúng git trên máy chủ từ xa. Tôi đã cố gắng để thay đổi magit-git-executableđể usr/local/git/bin/gitmà là con đường cả hai git cài đặt cục bộ và điều khiển từ xa của tôi. Nhưng điều này vẫn không hoạt động.

Bất kỳ ý tưởng để giải quyết điều này? Cảm ơn!


1
Làm việc cho tôi. Tôi đoán rằng phiên bản git trên máy chủ từ xa đã quá cũ. Magit 2 yêu cầu phiên bản git tối thiểu 1.9.4.
phils

Lưu ý rằng Magit over tramp có khả năng chậm hơn đáng kể so với phiên bản cục bộ. Trong những trường hợp này, tôi thích ssh đến máy chủ từ xa trong một thiết bị đầu cuối và chạy Emacs (trong thiết bị đầu cuối) trên máy chủ đó. Sau đó, tất cả các hoạt động git là cục bộ và nhanh chóng.
phils

Vâng, tôi nghĩ vấn đề chính của bạn là máy chủ từ xa không có phiên bản git đủ gần đây. Bất kể bạn đang chạy Emacs ở đâu, Magit 2 đều cần máy chủ đó để chạy git 1.9.4 trở lên. Magit 1 vẫn có sẵn và hoạt động với các phiên bản git cũ hơn nhiều, vì vậy bạn có thể thử sử dụng thay thế. (Tuy nhiên, tôi không thể nhớ liệu Magit 1 có hoạt động trên tramp không.)
phils

@phils Tôi đã cập nhật git của máy chủ lên 2.8.1, nhưng nó vẫn không hoạt động. Làm thế nào tôi có thể tìm thấy vấn đề? Tôi là người dùng spacemacs. Điều này có liên quan gì đến spacemacs không?
diễn ra vào

Điều đó dường như thực sự không thể đối với tôi, nhưng tôi không biết. Bạn sẽ phải kiểm tra và tìm hiểu, tôi đoán. Tôi rất tiếc khi biết rằng đã không làm việc; Tôi đã khá tự tin đó là vấn đề ( nó chạy một phiên bản cũ hơn 1.9.4 ban đầu?). Nếu bạn chưa có, hãy đảm bảo bạn khởi động lại Emacs trước khi thử nghiệm, chỉ trong trường hợp có sự khác biệt.
phils

Câu trả lời:


6

Lỗi (magit): Magit yêu cầu Git> = 1.9.4, bạn đang sử dụng 1.8.3.

Tôi đã cài đặt git 2.10.0 trên / usr / local / git

Danh sách các thư mục để tìm kiếm các tệp thực thi trên các máy chủ từ xa được điều khiển bởi tùy chọn tramp-remote-path. Nó bắt đầu bằng một yếu tố "những gì điều khiển từ xa cho tôi biết tôi nên sử dụng cái gì", nhưng theo kinh nghiệm của tôi thì nó không hoạt động tốt như vậy. Đặc biệt, nó không bỏ qua bất kỳ thay đổi nào $PATHmà bạn đã thực hiện trong tệp cấu hình của shell, tôi tin.

Vì vậy, trong tệp init của bạn, hãy đặt /usr/local/git/bintrước /usr/binvào tramp-remote-path:

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

0

Nếu phiên bản git của bạn ổn, vấn đề có thể là do cấu hình của kho git này, ví dụ như lỗi cú pháp .git/config.

Để kiểm tra điều đó, hãy mở một shell trên thư mục và máy lưu trữ và gõ git status

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.