1

只想注意:这个问题只是关于使用 mercurial-server 共享 mercurial

重现步骤:

  1. 创建新的存储库hg init
  2. 尝试通过 mercurial-server 克隆它:

    hg clone ssh://hg@192.168.132.72/test2 .
    remote: abort: There is no Mercurial repository here (.hg not found)!
    прервано: no suitable response from remote hg!
    
  3. 编辑.hg/requires文件,删除dotencode属性

  4. 重复第 2 步:

    hg clone ssh://hg@192.168.132.72/test2 .
    изменений не найдено
    updating to branch default
    0 files updated, 0 files merged, 0 files removed, 0 files unresolved
    

有什么想法为什么会发生以及我该如何解决?

ps:安装的是mercurial 1.9,在同一台机器上执行命令。

4

2 回答 2

1

发生这种情况是因为:

  1. /usr我在(新的,从 1.9 开始)和/usr/local(旧的,从 1.6 开始)都安装了 mercurial 站点包。并hg-ssh采取了旧的。

  2. hg-ssh需要修补一点

    dispatch.dispatch(['init', repo])
    

    应该替换为

    dispatch.dispatch(dispatch.request(['init', repo]))
    

    dispatch.dispatch(['-R', repo, 'serve', '--stdio'])
    

    dispatch.dispatch(dispatch.request(['-R', repo, 'serve', '--stdio']))
    

    因此

于 2011-07-13T22:44:27.383 回答
1

mercurial-server 的最新版本 1.2 版修复了这个问题。

于 2011-09-06T16:48:27.227 回答