2010-05-14 5 views
4

J'essaie de transférer un ensemble de modifications depuis un référentiel Mercurial local créé avec TortoiseHg vers un référentiel Git distant. J'ai hg-git installé et configuré et il tirera très bien. Mais quand je lance la poussée il me donne cetteUtilisation de TortoiseHg pour pousser vers un référentiel git authentifié

Commande

hg push git+ssh://[email protected]:username/repo.git 

Résultat

pushing to git+ssh://[email protected]:username/repo.git 
importing Hg objects into Git 
creating and sending data 
abort: the remote end hung up unexpectedly 

Il y a plusieurs choses que j'ai fait pour arriver à ce point. Mais je suis l'espoir de résoudre ce dernière chose parce que je trouve TortoiseHg être beaucoup plus facile à travailler que l'un des outils Git là-bas (pour les fenêtres.)

  • Installée TortoiseHg
  • baissai la hg- git de http://bitbucket.org/durin42/hg-git/
  • configuré Mercurial.ini pour pointer vers la bibliothèque hg-git
  • baissai Dulwich source git: //git.samba.org/jelmer/dulwich.git
  • Compilé Dulwich et le mettre en bibliothèque.zip pour TortoiseHg
  • Configuré TortoiseHg utiliser TortoisePlink.exe pour ssh
  • ajouté ma clé privée pour reconstitution historique

Toutes les idées que je pourrais être manquant?

Répondre

0

Que signifie wireshark? Pouvez-vous fournir un vidage de la connexion tcp qui vient de hg? Très probablement, les gars de #mercurial sur freenode dans irc seront en mesure d'aider.

+0

Merci pour le conseil. Je vais vérifier #mercurial pour voir si elles sont de l'aide. En ce qui concerne le vidage TCP, je peux exécuter wireshark mais je ne suis pas sûr de ce que je pourrais fournir à partir de là. Je vois la communication de ssh qui passe. –

+0

@nathan ah ouais, ne pensait pas à la partie ssh. wireshark sera inutile là-bas, mais vous pourriez envisager d'exécuter 'hg push --debug ...' ou 'hg push -e 'ssh -vvv' --debug ...'. Je ne sais pas si l'un ou l'autre aidera, mais cela pourrait éclairer quelque peu. – dlamotte

1

Avez-vous configuré Dulwich pour utiliser plink.exe au lieu de ssh.exe (OpenSSH)?

Je viens piraté mon exemplaire de Dulwich directement:

client.py:

def connect_ssh(self, host, command, username=None, port=None): 
    #FIXME: This has no way to deal with passwords.. 
    args = ['C:\\Program Files (x86)\\PuTTY\\plink.exe', '-x', '-batch'] 

De plus, vous devez faire une connexion via PuTTY pour mettre en cache les serveurs git clé publique en premier.

2

J'ai rencontré le même problème. Après avoir lu ce post, j'ai juste fait une copie de plink.exe, l'ai renommé en ssh.exe et l'ai placé sur mon chemin de Windows. Fonctionne très bien.

Note: Je msysGit installé pour utiliser uniquement Git Bash, donc si vous avez installé Git pour Windows CLI, alors ce ne serait pas une bonne idée car pourrait affrontement de deux binaires ssh.

0

J'ai découvert plus tard que la réponse à mon problème était que le serveur git que j'utilisais avait un quota fixé pour moi et que j'avais dépassé le quota. C'est dommage que je n'ai pas eu un meilleur message d'erreur. Une fois que j'ai contacté leur service client, ils me l'ont fait savoir. J'étais capable de pousser après que cela a été résolu.