gpt4 book ai didi

git - 设置 GIT_DISCOVERY_ACROSS_FILESYSTEM 以允许服务访问存储在符号链接(symbolic link)下的 git repo

转载 作者:行者123 更新时间:2023-12-01 15:35:14 31 4
gpt4 key购买 nike

我们有一个使用 git repo 的本地克隆的 Upstart 服务/作业。使用符号链接(symbolic link)重新定位数据文件夹后,我们现在收到以下错误消息:

Failed to run 'git fetch' for /var/company/service/src/program repo; Details: fatal: Not a git repository (or any parent up to mount point /data) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).



如何为服务设置 GIT_DISCOVERY_ACROSS_FILESYSTEM?

最佳答案

GIT_DISCOVERY_ACROSS_FILESYSTEM是 git 在尝试查找 repo 的根目录时查找的环境变量。如果该路径存在于另一个文件系统上,该命令将产生上述错误消息以防止 git 跨越文件系统边界。您可以将该值设置为 true 以允许此操作,并且大多数 init 系统都有方法 add environmental variables for a job/service .

对于 Upstart,我们只需要更新/etc/init/servicename.conf 文件以包含 env 和 export 关键字:

start on runlevel [2345]
stop on runlevel [^2345]
respawn
respawn limit 10 2
chdir /usr/local/servicename
setgid servicegroup
setuid servicename
limit nofile 1000000 1000000

env GIT_DISCOVERY_ACROSS_FILESYSTEM=true
export GIT_DISCOVERY_ACROSS_FILESYSTEM
exec /usr/local/servicename --cfg /etc/servicename.cfg >> /var/log/servicename.log 2>&1

重新加载配置并重新启动服务后,git错误消息消失了。

关于git - 设置 GIT_DISCOVERY_ACROSS_FILESYSTEM 以允许服务访问存储在符号链接(symbolic link)下的 git repo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48292208/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com