Emacs
tramp
magit

EmacsのTRAMPとmagitでリモートのリポジトリを扱えなかった件について

はじめに

試した環境は下記です。

  • OS
    macOS High Sierra(10.13.2)
  • GNU Emacs
    25.3.1

EmacsのGitクライアントのmagit
リモートサーバー上のファイルもローカルと同じように扱えるTRAMPモードでも
問題なくリポジトリを参照できるそうです。

ただ、なぜか私の環境だと失敗。。。
リモートサーバー上のGitリポジトリ内でM-x magit-statusをミニバッファで入力しても
下記のようにリポジトリを新規作成するかどうかについて聞かれてしまいます。

Create repository in /ssh:[サーバーホスト]:[リポジトリへのパス]? (y or n)

そこで、調べたところ下記の2つが考えられました。

まず、リモートのgitを見つけられるようにする

TRAMPではリモートのコマンドの検索パスはtramp-remote-pathで管理しているようです。
そのために、ここにリモートサーバー上のgitコマンドへのパスを追加。
(pushで先頭に追加することで別の古いバージョンを指さないように)

(push "/usr/bin" tramp-remote-path)

しかし、結果は変わらず、、、
そのため、tramp-remote-pathの問題では無さそうなので他に怪しい所が無いか調べると、magitのgitのコマンドパスを直接指定している箇所が有りました。

(setq magit-git-executable "/usr/local/bin/git")

これをコメントアウトして再実行すると、問題なくリモートのリポジトリをmagitで扱えるようになりました。

まとめ

結局自分でmagit-git-executableを直接指定していたことが問題でした。
別途コマンドの検索パスは正しく通しているのでこの行は削除することにしました。
TRAMP + magit すごく便利です。