使git daemon服务于我创建的存储库

时间:2020-01-29 08:45:45

标签: git git-daemon

我一直在为此绞尽脑汁,无法解决就得出了可能的结论。首先,我的困境。

我有一个项目,可以以编程方式创建存储库。我可以编辑存储库的描述,设置默认分支&c。很好。

我还使用git daemon来保存所有生成的存储库所在的文件夹。这是问题所在。

我能够克隆该存储库,但是克隆的存储库的.git内容与原始存储库不匹配。

我唯一能想到的是,当我创建这些存储库时,我正在使用系统的git进程,而克隆时我正在使用git daemon的进程...我什至不确定这是否有意义,而且我的搜索时间没有增加。

作为参考,这是我运行的激活git daemon的命令:

git daemon --reuseaddr --port=9999 --base-path=/Users/me/repos/ --export-all --verbose --enable=receive-pack --informative-errors --detach

这是一个克隆命令的示例:

git clone git://localhost:9999/me/test18.git

这是我运行以创建存储库的命令:

git init
git remote add origin git://localhost:9999/me/repo.git
git symbolic-ref HEAD refs/heads/magic
# more stuff

这些工作正常,我只需要git daemon就能按原样提供我的存储库。


以下是我创建的仓库中.git/config内容的示例:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = git://localhost:9999/me/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "coolerbranch"]
    remote = origin
    merge = refs/heads/coolerbranch

以下是相同的仓库:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = git://localhost:9999/me/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

如您所见,[branch ...]部分不匹配。


相反,如果还有一个git daemon我还没发现,我很想听听。 Github几年前一直在自己工作,但放弃了。


@Zoredache

克隆存储库不会复制配置。配置大部分位于计算机,用户或目录的本地。

在没有这些知识的情况下,我假设有一种方法让git在克隆时同步初始配置。 Git的默认值不能被服务器覆盖,只能由用户覆盖。

也许git有一天会允许此选项,很可能不允许。嗯。

0 个答案:

没有答案
相关问题