2

我正在使用的一项服务(Overleaf)提供了一个 git 存储库接口。我想安装一个 post-receive 钩子,这样当我和我的合作者提交对存储库的更改时,我们将在Slack中收到通知。通常,这可以使用 Chris Eldredge 的git-slack-hook轻松完成,但它需要在服务器上安装 post-receive 钩子。在当前情况下,我无法直接访问 git 存储库服务器的文件系统。我尝试.git/hooks/post-receive在本地副本中创建,但git不允许我签入:

# git add .git/hooks/post-receive 
error: Invalid path '.git/hooks/post-receive'
error: unable to add .git/hooks/post-receive to index
fatal: adding files failed

当您无法直接访问 git 存储库服务器的文件系统时,安装 post-receive 挂钩的正确程序是什么?

注意:这不是GitHub。

4

2 回答 2

1

我总是在本地跟踪我的 Overleaf 项目,并从本地同步到 github。您可以将 github 集成从您的 github 项目添加到所需的松弛通道,如中所述

https://get.slack.help/hc/en-us/articles/201824286-Setting-up-the-GitHub-app

有使用 github 组织和减少该页面上 slack 所需权限的链接。

可以通过将 cron 从 Overleaf 拉到本地,然后推送到 Github 来自动执行此操作。我没有寻找基于云的同步解决方案,但大概可以实现,无需本地同步。然后,当您不在线时它会起作用,这可能很重要,比如说在两个以上的小组中。

请注意,即使没有添加版本标签,您也会在 Overleaf 上获得所有更新。这将导致无用的提交消息“Update on Overleaf”。我还没有针对这个问题的非手动解决方案,因为我没有自动化我自己的系统。

使用 Overleaf 的另一种方法是使用 SageMath Cloud(我没有足够的声誉来发布链接)。这种方法技术性更强,我有合作者不想处理它,所以它可能不适合你。另一方面,您可以获得一个完整的终端,可以访问计算工具,并且可以像在本地一样在 git 存储库中管理您的工作。然后在提交后与 github 同步,slack 集成将负责其余的工作。

任何一种方法都可以从提交后挂钩中受益,以便在提交时自动推送到 github,例如可以在此处找到:

https://gist.github.com/stinoga/3136312

于 2016-05-04T19:35:24.997 回答
0

如果无法访问服务器或克服此问题以让您添加 git 挂钩的服务,您似乎无法解决此问题。Overleaf 似乎是完全由它们控制的文档协作的宿主,因此您将无法获得放置 git 钩子的任何访问权限。看起来他们的服务是为非 git 用户构建的,他们只是添加了一个 git API,因此您可以将文件作为 git-repository 访问。对您来说最好的解决方案是直接向 Overleaf 支持寻求解决方案,或者切换到“真正的”git 托管服务。

于 2015-12-31T13:07:49.617 回答