使用TortoiseHg推送到经过身份验证的git存储库

时间:2010-05-14 00:57:32

标签: git ssh tortoisehg

我正在尝试将使用TortoiseHg创建的本地Mercurial存储库中的变更集推送到远程Git存储库。我已经安装并配置了hg-git,它会拉得很好。但是当我按下它时,它给了我这个

命令

hg push git+ssh://git@dummyrepo:username/repo.git

结果

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

我已经做了几件事来达到这一点。但是我希望能解决这个问题,因为我发现TortoiseHg比任何Git工具都更容易使用(对于windows。)

  • 已安装TortoiseHg
  • http://bitbucket.org/durin42/hg-git/
  • 中拉下hg-git
  • 将mercurial.ini配置为指向hg-git库
  • 从git://git.samba.org/jelmer/dulwich.git
  • 中删除dulwich来源
  • 编译dulwich并将其放入library.zip for TortoiseHg
  • 配置TortoiseHg以将TortoisePlink.exe用于ssh
  • 将我的私钥添加到Pageant

我可能遗失的任何想法?

4 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。阅读完这篇文章后,我刚制作了一份plink.exe,将其重命名为ssh.exe并将其放在我的Windows PATH上。效果很好。

注意:我安装了msysGit只能使用Git Bash,所以如果你为Windows CLI安装了Git,那么这可能不是一个好主意,因为两个ssh二进制文件的可能发生冲突。

答案 1 :(得分:1)

您是否将Dulwich配置为使用plink.exe而不是ssh.exe(OpenSSH)?

我直接攻击了德威的副本:

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']

此外,您必须通过PuTTY建立1个连接,以便首先缓存git服务器公钥。

答案 2 :(得分:0)

wireshark有什么要说的?你能提供一个来自hg的tcp连接的转储吗?最有可能的是,在irc的freenode上#mercurial的人们将能够提供帮助。

答案 3 :(得分:0)

我后来发现我的问题的答案是我使用的git服务器为我设置了配额,我超过了配额。太糟糕了,我没有收到更好的错误消息。一旦我联系他们的客户服务,他们就让我知道。在解决这个问题之后,我能够推动。