0

我们正在使用 Windows 开发服务器来托管我的 Git 裸仓库。我们使用对服务器的直接文件访问(无 SSH、GIT 或 HTTP)。这很好,团队很高兴。

我们现在尝试让开发服务器在每次有人在裸仓库中推送代码时执行部署操作。我们在服务器上创建了一个本地仓库,并将裸仓库添加为远程仓库。

我们发现在 post-receive 挂钩中使用本地路径根本不起作用。post-receive 钩子似乎在客户端系统上搜索文件夹,而不是在服务器本身上。当我们在服务器上使用 //server/c$/[path] (以及服务器本地 repo 的远程设置)时,一切似乎都可以正常工作 - 但速度很慢。它现在开始让我们发疯,所以我们现在停止使用它:(。

简而言之,我们的问题是:

  1. post-receive 是否具有客户端本地范围?
  2. 如果 1 为真:是否可以让 post-receive 在服务器范围内运行?
  3. 是否有人成功使用了上述机制?

非常感谢你的帮助!

4

2 回答 2

0

将您的钩子放在服务器的 .git/hook 中,而不是您的本地并进行检查

此外,部署系统必须处理每个案例重置、标记。

这是一个部署脚本(它不能处理所有情况,但您可以接受并改进它)

https://gist.github.com/4621684

于 2013-01-24T13:40:28.963 回答
0

事实证明,当使用文件路径进行部署时,范围仍然是客户端范围。这似乎是设计使然,因此,我不得不寻找另一个发布选项。

我现在使用 WebGitNet (github.com/otac0n/WebGitNet) 进行推送,这使我能够通过 http(s) 发布并这样做,它也在服务器的范围内运行。目前,我也在使用相同的机制进行拉取,但我不必——为了速度,我还可以选择文件系统访问来拉取…

于 2013-02-23T22:07:21.997 回答