问题标签 [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.
git - git smart http中使用的http方法有哪些
我正在尝试使用登录 servlet 配置 git,所以想知道智能 http 中使用了哪些所有 http 方法
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 工作后,我遇到了问题。我不知道,需要做哪些额外的更改才能使钩子起作用。
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 不会抱怨其日志中的任何内容。
谁能告诉我我哪里做错了?
先感谢您。
git - 在 CentOS 6.7 上安装 GIT 服务器
我们有一个私人服务器,我们的代码将驻留在其中。我们想使用 GIT 作为我们的源代码管理。我们不想在 GITHub 上托管我们的代码,这就是为什么我们希望有一个私有的 GIT 服务器运行。
我们的问题不在于安装 GIT,而在于设置用户访问权限。我们的开发人员无法通过 SSH 访问服务器,因此我们希望在 GIT 上设置 SMART HTTP ACCESS。每当开发人员想要提取或推送某些内容时,这都会提示用户凭据。我们似乎找不到关于如何成功做到这一点的明确说明。
有没有人有足够干净的链接或文档来帮助我们正确设置它?
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 中添加了这些行:
我已经创建了目录 /srv/git
p>我已经创建并初始化了一个 git 存储库:
p>我已经更改了 repo 的所有者和组:
p>
在我的客户上:
我已经在文件夹中克隆了 repo
p>我已经创建并添加了一个新文件并且我已经提交
p>我已经在我的树莓派上推送了新项目
p>
但我有这个错误:
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
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/
:
作为参考,我已经完成了以下各项:
- git-http-后端
- Apache 和 git-http-backend
- 如何通过 http 设置 git?
- 使用 apache 2.4 设置 git-http-backend
- 使用 git-http-backend.exe 在 Windows 上设置 Git 服务器
如何设置 Apache VHost 使其开始接受git push
.
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 配置文件是:
提前感谢您的帮助!
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 尊重我?