sublimehq / sublime_merge

Issue tracker for Sublime Merge
https://www.sublimemerge.com
272 stars 14 forks source link

Clone via SSH with Putty/plink for Windows on ARM fails to establish a connection #1924

Open tim-rex opened 1 month ago

tim-rex commented 1 month ago

Version info

Description

Attempting to clone a repo via SSH using Putty.exe/plink.exe never establishes a connection. It just sits there per screenshot below image

I've tried both the bundled git as well as the system git, it makes no difference (for what it's worth, I had this issue on my x86 desktop and changing to the system git resolved the issue. Not so on this ARM based machine)

I'm unable to locate any logs

  1. Please provide user visible status when cloning a repo, particularly via SSH
  2. When this fails (or when the user cancels the clone) please ensure Sublime Merge cleans up after itself. Every time I re-attempt this I need to manually remove the partially created local repository files
  3. Better yet, please provide built-in first class SSH support rather than rely on third party tooling
  4. When the new tab / clone repo page is visible, the File-->Help-->Debug Information option does not function

Steps to reproduce

Steps to reproduce the behavior:

  1. Configure plink.exe
  2. Generate SSH keys via puttygen.exe
  3. Import said keys into Pageant (and have running in the background)
  4. Attempt to clone an SSH based repository

Expected behavior

The SSH connection should establish in short order, with detailed diagnostic information (or a link to a log of some description) if a connection cannot be made in a reasonable window. Upon failure (or user driven cancellation) sublime should ideally clean up after itself, or prompt for such cleanup

Debug Information

=== App Version Information ===
Build: 2096

=== Git Version Information ===
Using Git: C:\Program Files\Sublime Merge\Git\cmd\git.exe (bundled)
git version 2.39.1.windows.1
PATH: C:\Program Files\Parallels\Parallels Tools\Applications;C:\VulkanSDK\1.3.280.0\Bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\Git LFS;C:\Users\timk\AppData\Local\Microsoft\WindowsApps;;C:\Users\timk\AppData\Local\Programs\Microsoft VS Code\bin

=== Browse Page Information ===
HEAD: 57680a64021a8161aa2cf451d9e2de7d719c4f22
Is in merge: 0
Is in cherry_pick: 0
Is in rebase: 0
Is in revert: 0

=== Git Status Information ===

=== Our Status Information ===

=== Git Config Information ===
branch.main.merge=refs/heads/main
branch.main.remote=origin
color.interactive=true
color.ui=auto
core.autocrlf=true
core.bare=false
core.editor=vim
core.filemode=false
core.fscache=true
core.ignorecase=true
core.logallrefupdates=true
core.repositoryformatversion=0
core.symlinks=false
credential.helper=manager
credential.https://dev.azure.com.usehttppath=true
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.smudge=git-lfs smudge -- %f
help.format=html
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/etc/ssl/certs/ca-bundle.crt
include.path=C:/Program Files/Git/etc/gitconfig
init.defaultbranch=master
pack.packsizelimit=2g
pull.rebase=true
rebase.autosquash=true

<snipped repo and personal info>

=== Our Config Information ===
Git Config Path Information
Using config path: /C/ProgramData/Git/config
Using config path: /C/Program Files/Sublime Merge/Git/etc/gitconfig
Using config path: /C/Users/timk/.config/git/config
Using config path: /C/Users/timk/.gitconfig
Using config path: /C/Users/timk/source/repos/khronos/Vulkan-Samples/.git/config

Our config output is identical to the Git config output

=== Git Attributes Information ===
git check_attr --all output

=== Our Modified Files Newline Normalisation and EOL Information ===

=== Our Modified Files Flag Information ===
Ignoring symlinks: 1
tim-rex commented 1 month ago

Well, I found the issue.. But only after having used other means to check out the repo (Git Gui)

I was able to then load the repo in Sublime Merge, and with the main GUI available I could view the status information for a failed pull/push attempt

The host key is not cached for this server:
  github.com (port 22)
You have no guarantee that the server is the computer you
think it is.
The server's ssh-ed25519 key fingerprint is:
  <snipped>
If you trust this host, enter "y" to add the key to Plink's
cache and carry on connecting.
If you want to carry on connecting just once, without adding
the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n, Return cancels connection, i for more info) 

This is the sort of information I should expect to see from the cloning repo dialog, and for which I should have some means to accept/reject

The dropdown status information where this information is presented (in the main interface) also does not appear to be interactive in any way. The solution is to establish a direct ssh connection via putty itself, accept the key and try again with Sublime Merge.