【问题标题】:Using TortoiseHg to push to an authenticated git repository使用 TortoiseHg 推送到经过身份验证的 git 存储库
【发布时间】:2010-05-14 00:57:31
【问题描述】:

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

命令

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并将其放入TortoiseHg的library.zip中
  • 将 TortoiseHg 配置为使用 TortoisePlink.exe 进行 ssh
  • 将我的私钥添加到 Pageant

有什么我可能会遗漏的想法吗?

【问题讨论】:

    标签: git ssh tortoisehg


    【解决方案1】:

    我遇到了同样的问题。读完这篇文章后,我只是复制了 plink.exe,将其重命名为 ssh.exe 并将其放在我的 Windows PATH 中。效果很好。

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

    【讨论】:

      【解决方案2】:

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

      我刚刚直接破解了我的 Dulwich 副本:

      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 服务器的公钥。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 感谢您的提示。我会查看#mercurial 看看他们是否有帮助。至于 TCP 转储,我可以运行 wireshark,但我不确定我会提供什么对那里有帮助。我看到 ssh 通信正在进行。
        • @nathan 啊,是的,没有考虑 ssh 部分。 wireshark 在那里没用,但你可以考虑运行hg push --debug ...hg push -e 'ssh -vvv --debug ...`。不确定是否会有所帮助,但它可能会有所帮助。
        【解决方案4】:

        后来我发现我的问题的答案是我使用的 git 服务器为我设置了配额,而我超过了配额。太糟糕了,我没有收到更好的错误消息。一旦我联系了他们的客户服务,他们就会告诉我。解决这个问题后我可以推送了。

        【讨论】:

          猜你喜欢
          • 2023-03-15
          • 2011-10-02
          • 2011-06-04
          • 1970-01-01
          • 1970-01-01
          • 2020-10-19
          • 2012-10-22
          • 2011-06-07
          • 2013-07-13
          相关资源
          最近更新 更多