问题标签 [smart-http]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
562 浏览

git - git smart http中使用的http方法有哪些

我正在尝试使用登录 servlet 配置 git,所以想知道智能 http 中使用了哪些所有 http 方法

0 投票
1 回答
948 浏览

git - 基于 HTTP 的 Windows 上的 Git。接收后挂钩不起作用

我已将 Windows 上的 msysgit 配置为 HTTP 上的服务器。我已将 Apache 服务器配置为将请求转发到git-http-backened.exe. 当我克隆并尝试从远程 PC 推送到服务器时,一切正常。但post-receive钩子不起作用。

我已添加到接收后

当我手动执行脚本时,我看到打印的日志。

但是当我从远程系统推送它时,文件正在更新。推送工作正常,但似乎没有调用钩子,因为没有打印日志。

的权限post-receive-rwxr-xr-x

当我通过 SSH 配置 git 时,我post-receive过去常常毫无问题地发送邮件。将 git 更改为通过 HTTP 工作后,我遇到了问题。我不知道,需要做哪些额外的更改才能使钩子起作用。

0 投票
1 回答
439 浏览

git - 带有智能 HTTP 和 suexec 的 Git:找不到存储库

我正在尝试使用智能 HTTP 在我的一台服务器上安装我自己的 Git 存储库。

它可以在没有 suexec 的虚拟服务器上运行,但不能在启用了 suexec 的生产服务器上运行。当我尝试克隆或推送时,它说:

致命:找不到存储库“ http://domain.tld/git/project/

Apache 配置如下:

如果我禁用

ScriptAlias /git/ /var/www/git/git_domain/git-http-backend/

我可以克隆,但可以推送,因为在这种情况下它可以与 DAV 一起使用。

我想我将所有文件的所有者和权限更改为正确的值(域用户,755),并且 suexec 不会抱怨其日志中的任何内容。

谁能告诉我我哪里做错了?

先感谢您。

0 投票
2 回答
2374 浏览

git - 在 CentOS 6.7 上安装 GIT 服务器

我们有一个私人服务器,我们的代码将驻留在其中。我们想使用 GIT 作为我们的源代码管理。我们不想在 GITHub 上托管我们的代码,这就是为什么我们希望有一个私有的 GIT 服务器运行。

我们的问题不在于安装 GIT,而在于设置用户访问权限。我们的开发人员无法通过 SSH 访问服务器,因此我们希望在 GIT 上设置 SMART HTTP ACCESS。每当开发人员想要提取或推送某些内容时,这都会提示用户凭据。我们似乎找不到关于如何成功做到这一点的明确说明。

有没有人有足够干净的链接或文档来帮助我们正确设置它?

0 投票
1 回答
1743 浏览

linux - Git + 智能 Http(s): 403 错误

虽然我已经阅读了很多帖子,但我无法解决这个问题。
我想使用 Git + Smart Http,在我的树莓派上使用远程存储库。
我在 Arch Linux 上运行。
首先,为了简单起见,让我们考虑一个 Http 配置(而不是 https)。
我的树莓派上正确安装了 Apache 和 Git,并且 Http 连接的端口是 8080。

在我的 Raspberry Pi 上:

1. 我在 /etc/httpd/conf/http.conf 中取消了关于 mod_cgi、mod_alias 和 mod_env 的行的注释

2. 我在 /etc/httpd/conf/http.conf 中添加了这些行:

  1. 我已经创建了目录 /srv/git

    p>

  2. 我已经创建并初始化了一个 git 存储库:

    p>

  3. 我已经更改了 repo 的所有者和组:

    p>

在我的客户上:

  1. 我已经在文件夹中克隆了 repo

    p>

  2. 我已经创建并添加了一个新文件并且我已经提交

    p>

  3. 我已经在我的树莓派上推送了新项目

    p>

但我有这个错误:

0 投票
1 回答
6953 浏览

eclipse - Git + Eclipse:401 未经授权的错误

我的 rasperry pi 上有一个带有 Apache 的 git repo。
我使用 git + smart http: 从 Linux 客户端,使用终端,一切正常。
例如,我可以使用以下命令克隆一个 repo:

插入用户名和密码后,它就可以工作了。

但是,如果我想使用 Eclipse 克隆存储库,它会显示此错误:

在此处输入图像描述

这是apache的错误日志:

这是我的 apache 配置(关于 git 和 smart http):

有任何想法吗?

PS:我正在使用

  • 面向 Web 开发人员的 Eclipse Java EE IDE。版本:Neon Release (4.6.0) 内部版本号:20160613-1800

  • EGit 4.4.0.20160607

0 投票
1 回答
570 浏览

apache - Apache 上用于 gitolite 存储库的 GitSmartHTTP 不允许我推送

我正在设置一个 git-http-backend CGI 脚本来处理我的git.domain子域。该服务器位于 AWS 云上的 ELB(弹性负载均衡器)后面。我的服务器配置如下(我的 git 托管由 gitolite 处理):

我的 apache 服务器由www-data:www-data用户/组运行,gitolite 是使用git:git用户/组设置的。为了允许 apache 读取/写入存储库,我已经完成了:

PerlAccessHandler用户身份验证工作正常,因为我能够使用 redmine 设置中的一组有效凭据克隆我的存储库。

但是,当我尝试推动时;我在服务器日志中得到以下信息:

在客户端(在我在负载均衡器中设置的任何连接超时后出现以下内容,30 秒到 10 分钟):

通常,我还必须POST长度git-upload-pack为 0(对于具有相同提交的同一存储库的相同命令)

并在我的服务器错误日志中收到以下内容:

我什至为 git 用户玩过 setuid 和 setuid,希望它可以帮助我推送到存储库;但无济于事!

内部的 git 配置/opt/gitolite/repositories/xyz.git/


作为参考,我已经完成了以下各项:

  1. git-http-后端
  2. Apache 和 git-http-backend
  3. 如何通过 http 设置 git?
  4. 使用 apache 2.4 设置 git-http-backend
  5. 使用 git-http-backend.exe 在 Windows 上设置 Git 服务器

如何设置 Apache VHost 使其开始接受git push.

0 投票
2 回答
195 浏览

git - 带有智能 http 和 redmine_git_hosting 的 redmine 不允许推送到存储库

Redmine 版本:3.4.4.stable redmine_git_hosting 插件版本:1.2.3 gitolite v.3

HTTPS 仅访问存储库。我可以克隆 OK,但是在推送时出现以下错误:

但是,在 git_hosting.log 的服务器端,我收到以下错误:

我对问题的真正原因感到困惑

我的虚拟主机 redmine 配置文件是:

提前感谢您的帮助!

0 投票
2 回答
238 浏览

git - Git Smart HTTP(S) 协议在它的所有荣耀中到底是什么样的?

我正在尝试实现一个模拟 Git 远程的网络服务器。用户应该能够从我的服务器克隆或拉取、编辑文件、提交和推送(通过身份验证)——与 Git 相关的正常操作。但是,在服务器端不是一个裸 Git 存储库或任何东西;数据以其他格式存储,仅在请求时进行转换。

我花了很多时间试图找出 Git Smart HTTP 协议是如何工作的,这就是我目前所知道的。

http-protocol 上的 Git 文档中,我知道GET $GIT_URL/info/refs?service=git-upload-pack HTTP/1.1应该引起以下(示例)响应:

从我自己对我的一个很少提交的 repo 的实验来看,到目前为止,GitHub 似乎完全在文档中描述的协议限制范围内:

然而,这是简单的部分结束的地方。如果我想真正获得提交数据怎么办?关于此事的 Git 文档给出了一个发送 POST 请求的示例,以及一些语法,然后说“ TODO: Document this further ”。??????

我尝试以我在文档中看到的格式通过 CURLing GitHub 进行试验。

什么?

我尝试使用 Python:

其余的 http-protocol 文档没有帮助 - 出现了另外六个 TODO。pack-protocol 文档至少让我知道我应该收到什么,但没有说明如何接收。

传输协议文档没有告诉我任何新内容,然后说“看看 Git 源代码”。我试过了,但它是核心 C,我必须基本上了解 Git 本身的整个基础架构。(我可能会尝试这样做,但现在不是时候。)

我确实设法收集了git upload-pack所涉及的内容,并且运行git upload-pack --stateless-rpc --advertise-refs .git确实像以前一样给了我 /info/refs 列表。然而,试图从中取出一个真正的包失败了,他们不仅失败了,而且在平台之间失败了不一致。

在 Windows 上:

怀疑是回车导致问题,我尝试了 WSL:

我究竟做错了什么?我怎样才能让 GitHub/git-upload-pack 尊重我?