Push and update plugin doesnt seem to work with paramiko under Windows?

Asked by Julian Knight

This is my first post here so please accept my appologies if it's in the wrong place.

I want to do a push and update to a remote server over SSH. I have several of these to do and I don't want to be having to type loads of passwords so I am using pageant to manage the keys and passwords.

I've found that BZR_SSH=plink does not work correctly, plink still asks for the password. So, from another post here, I've switched to paramiko which does correctly find pageant.

However, pushes now fail if the Push and update plugin is installed. Here is the error:

C:\mytree>bzr push -v
Using saved push location: bzr+ssh://user@SERVER/public/mytree/
Connected (version 2.0, client OpenSSH_5.0)
Authentication (publickey) successful!
Secsh channel 1 opened.
running "paramiko -2 -4 user@SERVER bzr update "/public/mytree/""

F7 = Command history list

'paramiko' is not recognized as an internal or external command,
operable program or batch file.
This transport does not update the working tree of: bzr+ssh://user@SERVER/public/mytree/. See 'bzr help working
-trees' for more information.
No new revisions to push.
Nothing seems to have changed

If I disable Push & Update, the push works fine again.

Can anyone suggest a patch to Push & Update that would fix this? I am reasonably literate in Python so I can apply it but I can't see where the problem is I'm afraid.

Many thanks for your help.

--
Regards,
Julian Knight, http://it.knightnet.org.uk

Question information

Language:
English Edit question
Status:
Expired
For:
Bazaar Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
John A Meinel (jameinel) said :
#1

push_and_update just spawns 'ssh ...', I don't think it even supports spawning 'plink', but I could be wrong by this point.

It certainly should be possible to change the code to use "bzrlib.transport.ssh._get_ssh_vendor().connect_ssh(..., [command])".

Revision history for this message
John A Meinel (jameinel) said :
#2

push_and_update just spawns 'ssh ...', I don't think it even supports spawning 'plink', but I could be wrong by this point.

It certainly should be possible to change the code to use "bzrlib.transport.ssh._get_ssh_vendor().connect_ssh(..., [command])". That would leverage our existing code to use various methods (openssh, paramiko, etc) to connect.

Revision history for this message
Julian Knight (jk-bazaar) said :
#3

OK, the issue is in the function update_remote_branch I think.

It is not picking up the correctly configured ssh method. It is only issuing ssh directly.

I tried to pick up the BZR_SSH environment variable to get the correct transport but that is really only part of the problem. It would, as you say, be better to use the internal function. Unfortunately, my Python & understanding of bzrlib are not quite up to the task.

Will it be possible to improve the plugin at some point?

--
Regards,
Julian Knight, http://it.knightnet.org.uk

Revision history for this message
Launchpad Janitor (janitor) said :
#4

This question was expired because it remained in the 'Open' state without activity for the last 15 days.