emacs - magit over 流浪汉 : re-use ssh connection

标签 emacs tramp magit

magit 似乎为每个命令打开一个新的 ssh 连接。这变得非常烦人,尤其是在暂存更多块时,这需要花费大量时间来为每个块建立连接。

(在 shell 中,我通过 ./ssh/config 启用了持久的 ssh 连接)

我不确定这是魔术师还是流浪汉。

但我的问题是:

如何让 magit 重用 ssh 连接?

编辑:

客户是

  • 流浪汉 2.3.5.26.2
  • GNU Emacs 26.1.91
  • debian(测试)
  • 这是流浪汉配置
  •     (add-to-list 'tramp-remote-path 'tramp-own-remote-path)
        (setq tramp-default-method "ssh")
        (setq tramp-inline-compress-start-size 1000000)
    
  • 这是我的 .ssh/config
  • 的相关部分
      ## generally re-use existing connections
      Host *
          ControlMaster auto
          ControlPath ~/.ssh/sockets/%r@%h-%p
          ControlPersist 600
    
      Host myhost1
           HostName 111.11.11.1
           User myuser
           ForwardX11 yes
           ForwardX11Timeout 596h
           IdentityFile ~/.ssh/id_rsa
           IdentitiesOnly yes
           ForwardAgent yes
           SendEnv LC_*
           ServerAliveInterval 300
    

    服务器是RHEL 7.6(迈波)

    最佳答案

    默认情况下,Tramp 不使用 SSH 配置文件 ( see the Tramp FAQ ) 中定义的 ControlMaster 选项:

    Tramp overwrites ControlPath settings when initiating ssh sessions. Tramp does this to fend off a stall if a master session opened outside the Emacs session is no longer open.



    FAQ 还展示了如何为 TRAMP 配置 ControlMaster 选项:
    (customize-set-variable
     'tramp-ssh-controlmaster-options
     (concat
       "-o ControlPath=/tmp/ssh-ControlPath-%%r@%%h:%%p "
       "-o ControlMaster=auto -o ControlPersist=yes"))
    

    或者,如果您想告诉 TRAMP 使用您的 ~/.ssh/config 中的自定义设置您需要更改的文件 tramp-use-ssh-controlmaster-options多变的:
    (customize-set-variable 'tramp-use-ssh-controlmaster-options nil)
    

    关于emacs - magit over 流浪汉 : re-use ssh connection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56105716/

    相关文章:

    emacs - 在每次输入到 minibuffer 后运行命令

    emacs - 使用 ssh session 中的 emacs tramp 对远程文件进行原始编辑

    git - 修改在 magit 中作为 rebase 的一部分编辑的提交

    emacs magit 差异突出显示

    vim - 我怎么做;像 : in vimpulse? 一样工作

    java - 如何模块化处理 Java 文件的两个 Lisp 函数的通用功能?

    emacs - Tramp-Mode 不会与 sudo shell 断开连接?

    emacs - 使用 ssh 配置的 emacs 中的 TRAMP 模式

    git - 如何让 magit pull 默认有 rebase 选项?

    emacs - 如何在 Emacs 中强制执行最大行长度?