【问题标题】:Access file from gitolite-hosted git repository directly using http client使用 http 客户端直接从 gitolite 托管的 git 存储库访问文件
【发布时间】:2015-09-12 04:42:31
【问题描述】:

我正在使用 gitolite 托管 git 存储库,并设置了 ssh and http access。我可以使用 git cli 通过 ssh 和 http 克隆存储库。现在,我需要能够在不使用 git 客户端的情况下通过 http 从 git 存储库中加载文件。具体来说,我需要将 URL https://git.example.com/myproject/locale/en/LC_MESSAGES/default.po 提供给 Transifex 翻译服务,以便它可以轮询 .po 消息文件的更改。

有没有一种简单的方法可以直接使用http客户端访问这个文件?

我已经尝试过的一个选项:我们使用的是 Trac,它具有内置的源浏览器并提供指向原始文件的链接,但每个 URL 都绑定到特定的修订哈希 (example),没有链接选项到“最新”文件。

我考虑过设置一个 post-receive 挂钩来将此文件(或整个 repo)导出到 Web 可访问的位置。但是,我想知道是否可以通过 gitolite 直接访问存储库中的文件,而不是这样的解决方法。

【问题讨论】:

    标签: git http gitolite


    【解决方案1】:

    Git 将修订建模为graph(即连接的节点),不像一大堆煎饼。 Git 中没有“最新”提交。有按日期提交的最新提交,但这可能不是您想要的,而且查找起来并非易事。您的意思可能是master 分支的尖端。

    一般情况下,anything in Git that takes a hash (ie. 51e037aedb09735106f2e51520c3ff4430b663e3) will also take a reference (ie. master)。可以调整该 URL 以导出该文件的 master 版本。

    https://trac.strangecode.com/pulso/export/master/locale/en/LC_MESSAGES/default.po

    【讨论】:

    • 谢谢@schwern。将 Trac URL 与主参考一起使用是完美的,对我们来说是一个可行的解决方案。不过,我仍然很好奇,为什么当 http 请求连接到gitolite-shell 时直接访问文件不起作用(以及如何使它起作用)。我只能假设答案只是因为 gitolite 不支持。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    相关资源
    最近更新 更多