13

根据http://dev.lshift.net/paul/mercurial-server/docbook.html上的“创建存储库”,我们需要做的就是创建新的存储库 - 就是clone不存在一个。

但是在 1.1 中我不工作。如果我们看一下代码:

if cmd is None:
    fail("direct logins on the hg account prohibited")
elif cmd.startswith('hg -R ') and cmd.endswith(' serve --stdio'):
    repo = getrepo("read", cmd[6:-14])
    if not os.path.isdir(repo + "/.hg"):
        fail("no such repository %s" % repo)
    dispatch.dispatch(['-R', repo, 'serve', '--stdio'])
elif cmd.startswith('hg init '):
    repo = getrepo("init", cmd[8:])
    if os.path.exists(repo):
        fail("%s exists" % repo)
    d = os.path.dirname(repo)
    if d != "" and not os.path.isdir(d):
        os.makedirs(d)
    dispatch.dispatch(['init', repo])
else:
    fail("illegal command %r" % cmd)

我们可以看到,要创建我们需要专门传递init命令。

此命令按预期工作:

"TortoisePlink.exe" -ssh -2 hg@mercurial "hg init tst"

但我希望这样做是一些更优雅的命令。

好吧,这是文档中的“错误”还是我做错了什么?

更新

我的问题只是关于使用mercurial-server.

更新 2

这是我的误解,因为我不清楚是否应该已经创建了本地存储库,它将被远程克隆。

4

2 回答 2

15

我发现使用 Mercurial-server 创建一个新的仓库非常简单。假设您拥有权限并且服务器上已经存在路径“/dir1/dir2/”,只需(使用命令行):

mkdir new
cd new
hg init
hg clone . ssh://hg@server/dir1/dir2/new

干杯,
克里斯托夫。

于 2011-05-05T12:13:41.573 回答
1

您引用的页面用于共享现有存储库,而不是专门用于创建新的空存储库。您给出的命令hg init tst对于初始化新的空存储库是正确的。我认为唯一“不优雅”的事情是您正在远程执行此操作,因此需要提供额外的 ssh 命令。存储库创建命令本身hg init非常简单。

于 2011-05-04T12:38:30.577 回答