设置Git / SmartGit SSH客户端的主文件夹

时间:2012-05-10 03:27:16

标签: git ssh msysgit smartgit

我想知道当我通过SSH连接到我们的源代码管理服务器时,是否有人可以了解为什么SmartGit不表现的原因。 GitBash表现得很好。

背景

我在网络上设置了一个源控制服务器,运行带有WinSSH的MSYSGit作为SSH服务器。它挂钩到AD来解析用户名等,我已经导入了所有公共RSA密钥等。一切都很好用。

对我们来说,一个曲线球是,虽然Git安装在' C:\ Program Files(x86)\ Git ',但我们的实际源代码位于' C:\ Git ',定期备份。

我已经将WinSSH配置为使所有SSH会话默认为' C:\ Git '作为其主文件夹,这是一种享受。当我使用Git Bash连接到服务器时,它默认为' C:\ Git '。完美。

当我使用SmartGit(使用SmartGit SSH客户端)连接到同一台服务器时,使用url:

    ssh://<server>/<folder>/<repo>

我收到错误说道......

    C:\Program Files (x86)\Git\<folder>\<repo> 

...似乎不是一个存储库。嗯,是的......它应该在' C:\ Git '中找到它,而不是' C:\ Program Files(x86)\ Git '。

我不确定为什么SmartGit不适合这种设置,但我认为其SSH客户端绕过了默认的WinSSH设置,因为它完全从' C:\ Program指定整个路径文件(x86)\ Git '。

我的问题:

SmartGit可能会从哪个想法获取' C:\ Program Files(x86)\ Git '路径?

这是我可以设置的变量吗?

更多信息(更新)

SmartGit的版本是3.0.4,但问题也存在于2.x。

我已经附上了(我很确定)是SmartGit应用程序日志中失败的实例:

  

1782732(2012-05-10 12:18:56,653)[QThreadPoolThread-2(smartgit.KL)] INFO smartgit.core.executable - 执行以下命令:“C:\ Program Files \ Git \ bin \ git。 exe“ls-remote ssh://initio-dev01/INIT/INIT.Framework.git refs / heads /

     

1782732(2012-05-10 12:18:56,653)[QThreadPoolThread-2(smartgit.KL)] INFO smartgit.core.executable - 目录中:null

     

1783049(2012-05-10 12:18:56,970)[QThreadPoolThread-8(smartgit.aqT)] INFO smartgit.server - 收到命令:ssh

     

1786438(2012-05-10 12:19:00,359)[QThreadPoolThread-6(smartgit.cR)] INFO smartgit.command.logging - stderr:fatal:'C:/ Program Files(x86)/ Git / INIT /INIT.Framework.git'似乎不是git存储库

     

1786438(2012-05-10 12:19:00,359)[QThreadPoolThread-6(smartgit.cR)] INFO smartgit.core.command - 致命:'C:/ Program Files(x86)/ Git / INIT / INIT .Framework.git'似乎不是一个git存储库

     

1786439(2012-05-10 12:19:00,360)[Thread-29]错误smartgit.ssh.trilead - com.trilead.ssh2.transport.TransportManager:接收线程:receiveLoop中的错误:套接字已关闭

     

1786763(2012-05-10 12:19:00,684)[QThreadPoolThread-6(smartgit.cR)] INFO smartgit.command.logging - stderr:致命:远程端意外挂断

     

1786763(2012-05-10 12:19:00,684)[QThreadPoolThread-6(smartgit.cR)] INFO smartgit.core.command - 致命:远程端意外挂断

     

1786772(2012-05-10 12:19:00,693)[QThreadPoolThread-2(smartgit.KL)] WARN sg.command.ping - 'C:/ Program Files(x86)/Git/INIT/INIT.Framework .git'似乎不是一个git存储库   远程端意外挂断了   smartgit.cn:'C:/ Program Files(x86)/Git/INIT/INIT.Framework.git'似乎不是一个git存储库   远程端意外挂断了

     
    

在smartgit.gG.a(SourceFile:86)

         

在smartgit.ga.a(SourceFile:63)

         

在smartgit.ga.a(SourceFile:53)

         

在smartgit.hA.a(SourceFile:57)

         

在smartgit.ahq.a(SourceFile:26)

         

在smartgit.ahl.a(SourceFile:39)

         

在smartgit.aL.a(SourceFile:46)

         

在smartgit.aD.a(SourceFile:41)

         

在smartgit.Kw.a(SourceFile:144)

         

在smartgit.KL.run(SourceFile:34)

         

在smartgit.Pp.run(SourceFile:65)

  

1 个答案:

答案 0 :(得分:1)

使用硬编码路径非常烦人,这似乎是这里的问题?!在更高版本中修复此问题之前,您可能应该创建目录连接点或符号链接。可能是一个(快速而肮脏)的解决方案,而不是花时间修复程序。

(必须在管理员shell中运行)

对于交接点:

mklink /j "C:\Program Files (x86)\GIT\<folder>" C:\GIT\<folder>

对于符号链接:

mklink /d "C:\Program Files (x86)\GIT\<folder>" C:\GIT\<folder>