git - 使用 git 发布到 node.js

标签 git node.js

这是我想在概念上做的事情:

“ Hook ”node.js 到特定的 Git 存储库,这样我就可以发出类似/84de7e8d8ce33/foo 的请求,服务器将(如有必要)检查提交 84de7e8d8ce33,在它刚才的文件上启动另一个 node.js checkout ,并将“/foo”传递给该新服务器。当然,主服务器会跟踪它已经知道的提交。

基本上,我只是想简化我们的发布过程,所以执行上述 Git 魔法的同一台服务器也将提供一个类似 index.html 的文件,该文件几乎完全由

<script src="/84de7e8d8ce33/app.js"></script>

我的问题:

  1. 这个想法到底有多糟糕?
  2. 是否有一些现有技术、一些库或框架已经这样做了?
  3. 有替代方案吗?我有一个发布分支,告诉 node.js 要使用什么提交,然后放手。
  4. 是否有一些内置方法可以同时“ checkout ”多个提交(或至少以某种方式作为普通文件可见)?

(我有一个附属问题,关于如何从我作为发布经理向服务器传达 84de7e8d8ce33 现在是实时版本这一事实。现在,我在想,me​​mcached,但我是开放的其他建议。)

最佳答案

这听起来一点也不坏。我会先尝试使用 https://github.com/libgit2/node-gitteh

除了有一个可爱的名字,它

  • 应该比 git 更快
  • 有一个javascripty API

我会在与 Web 服务器不同的进程中运行它,使用 node-redis 和/或 dnode 进行通信。

编辑:我找到了the docs ,列在自述文件的底部。不过,直到我看了一个示例并在 Node repl 中使用它之后!这很好。我能够四处寻找并从我的 repo 协议(protocol)中得到一个 blob。它也适用于 .git,而不是工作树,因此您可以进行多个可能的提交,而无需存储库的多个副本。

关于git - 使用 git 发布到 node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7017712/

相关文章:

node.js - 在 Node 应用程序中抛出sqlite插入错误而不停止 Node 服务器

node.js - 如何在 AWS API 网关中调试 "Missing Authentication Token"?

git - 如何解决git的 "not something we can merge"错误

git - 更改所有全局设置

git - 断开连接 : No supported authentication methods available (server sent publickey)

javascript - 如何列出特定服务器的所有成员?

node.js - 如何在 CouchDB 中实现唯一键约束

windows - 适用于直接访问的 Windows 的 Git 克隆

linux - Git 和 Apache 共享 webroot 上的权限

node.js - 使用 NodeJS 将多个文件上传到 AWS S3