[PATCH] RE: New standalone Windows release

Zbynek Winkler zwin at users.sourceforge.net
Tue Sep 27 06:14:09 CDT 2005


Maquelin, Olivier wrote:

>Let me try to state this differently. As far as I am concerned,
>Mercurial is currently broken on ALL platforms. Accessing a remote
>repository through ssh will cause Mercurial to hang (even under Linux)
>if a password is needed or if ssh wants to get confirmation for a new
>public key.
>  
>
I've just tested it and it asks for password just fine on debian.

$ ssh -v
OpenSSH_3.8.1p1 Debian-8.sarge.4, OpenSSL 0.9.7g 11 Apr 2005
$ hg --version
Mercurial Distributed SCM (version 0.7)

>The solution I was proposing eliminated the 'remote: ' string at the
>beginning of each line. This makes it harder to figure out what output
>comes from the local process and what output comes from the remote
>command. This is sad, but hardly a showstopper as far as I am concerned.
>The standard error from the remote command is still visible to the user,
>and that is the most important thing.
>
>Anyway, I tried again to get a thread-based solution to work and got
>pretty close this time. I managed to get ssh to successfully ask for a
>password. However, that implementation still failed to deal with ssh
>asking for confirmation for a new public key:
>
>requesting all changes
>adding changesets
>remote: Host key not found from database.
>remote: Key fingerprint:
>remote:
>xubok-hovem-gydav-mivyt-sysov-poton-zihez-mobyl-zaled-kitis-tyxax
>remote: You can get a public key's fingerprint by running
>remote: % ssh-keygen -F publickey.pub
>remote: on the keyfile.
>remote: warning: tcgetattr failed in ssh_rl_set_tty_modes_for_fd: fd 5:
>Invalid argument
>
>It looks like ssh is not happy with the pipe descriptor. Any idea how to
>fix that? I am running F-Secure SSH 3.3.1.
>  
>
Could we pick plink as the "recommended" ssh version for windows and 
maybe even bundle it to the windows installer? It is small and free and 
it would give us a defined environment to test against. That is how 
tortoise-{cvs,svn} do it on windows. If other ssh clients can be made to 
work, fine. But lets start with just one... (that is know to work for 
cvs and svn on windows).

Matt, Brian - what is your prefered way to fix this? The threaded 
version could probably be made to work on all platforms. The thread 
reading the error output could be started in the constructor along with 
the popen3 call. It could just read the the error output and append the 
lines to a list guarded by one lock. The readerr would lock, output the 
list, empty the list, unlock; the thread would read(pipee), lock, 
append, unlock. Can this work?

How can I help with this?

Zbynek

-- 
http://zw.matfyz.cz/     http://robotika.cz/
Faculty of Mathematics and Physics, Charles University, Prague, Czech Republic



More information about the Mercurial mailing list