完整的错误消息是:
could not symlink /var/lib/gitolite/.gitolite/hooks/common/gitolite-hooked to subdir/myrepo.git/hooks
Run Code Online (Sandbox Code Playgroud)
当我对 gitolite-admin 进行任何更改并推送这些更改时,就会发生这种情况。这些钩子是做什么用的?我需要它们吗?符号链接有什么问题?
我已在 中为我的存储库指定了另一个位置$REPO_BASE,但我使 gitolite 用户成为该路径和使用该chown命令的所有存储库的所有者,因此它不应该是权限问题。
我对gitolite权限有点困惑。
仅允许 1 个分支并拒绝特定用户或组的所有其他分支的最佳方法是什么?
我有Ubuntu:
Distributor ID: Ubuntu
Description: Ubuntu 15.10
Release: 15.10
Codename: wily
Run Code Online (Sandbox Code Playgroud)
和硅镁石:
gitolite3 3.6.3-1 (Debian) on git 2.5.0
Run Code Online (Sandbox Code Playgroud)
我在配置文件中有以下几行:
repo livesearch
option hook.post-receive = livesearch
RW+ = @commonwrite
R = @commonread
Run Code Online (Sandbox Code Playgroud)
并遵循 gitolite-admin/local/hooks/repo-specific/livesearch 文件中的数据:
#!/bin/sh
/bin/sh /var/lib/gitolite3/.gitolite/local/hooks/repo-specific/common seofilters
Run Code Online (Sandbox Code Playgroud)
如果我使用这样的挂钩文件提交 livesearch 存储库,我会得到:
remote: hooks/post-receive: 18: hooks/post-receive: hooks/post-receive.h00-livesearch: not found
Run Code Online (Sandbox Code Playgroud)
但!!!就在我从文件中排除 shebang (#!/bin/sh) 后,每个想法都工作得很好!
在这两种情况下,我都在远程:
lrwxrwxrwx 1 git www-data 65 Apr 13 13:23 post-receive.h00-livesearch -> /var/lib/gitolite3/.gitolite/local/hooks/repo-specific/livesearch
Run Code Online (Sandbox Code Playgroud)
并且链接很好!
更多的是,我还有其他钩子,与 shebang 配合得很好!
只是新的钩子不适用于 shebang,但我没有更新任何内容......
可能是什么问题?
我有一个使用git和gitolite的系统设置.一切都运作良好,除了我希望我的结构是这样的:
本地环境 - >开发服务器 - >生产服务器
我在开发服务器上有一个repo设置,它已成功克隆到本地环境.现在,我需要的是开发服务器上的本地文件系统工作副本,但我不知道如何使用gitolite执行此操作.
git clone /home/gitolote/repositories/myrepo.git
Run Code Online (Sandbox Code Playgroud)
工作正常,直到我尝试推/拉,此时我得到这个:
remote: ENV GL_RC not set
remote: BEGIN failed--compilation aborted at hooks/update line 20.
remote: error: hook declined to update refs/heads/master
Run Code Online (Sandbox Code Playgroud)
关于如何用gitolite做这个的任何想法?
我想从git stores提交历史记录的文件中读取,将每个提交信息存储在项目的数据库中,并在项目视图中显示所有历史记录
我有一台安装了Gitolite的服务器来托管我的存储库我昨天创建了一个新的repo,今天当我尝试将更多提交推送到我得到的服务器时:
fatal: object 86eeaa0c5a154ff3df34d6a43669930b9c6c7f59 is corrupted
error: unpack failed: unpack-objects abnormal exit
error: failed to push some refs to
Run Code Online (Sandbox Code Playgroud)
由于回购是相当新的,我不会因为丢失以前的提交而烦恼所以我删除了我的本地和远程仓库,但仍然得到相同的错误.
正如我所说,我不太关心维护我的提交历史,我只想让它再次运行!
在Ubuntu服务器上使用Gitolite.有一个项目我正在努力,我需要git命令的特定语法.
效果很好:git clone gitolite @ servername:testing.git
请求密码git clone ssh://gitolite@servername/home/gitolite/repositories/testing.git
一个接一个地从同一个盒子里跑出来.我可以输入密码,它可以工作.但我需要自动工作.听起来像ssh pub/private keys的问题.有任何想法吗?
更新:文件权限有问题.不确定too命令之间的区别.但是/var/log/auth.log显示了一些错误
我正在使用gitolite为我的GIT服务器进行用户维护.一切正常,除了回购描述.我已经在gitolite.conf中设置了诸如"reponame = repo description"之类的repo的描述.早期版本(在v3.x之前)它的工作.现在它不起作用.我正在使用您的信息
这是我的gitolite.conf文件http://pastebin.com/DYCK3uRL或http://arulraj.net/gitolite.conf.由于该回购描述文件不是使用gitolite自动生成的,因此接收后电子邮件邮件主题和签名没有描述.我怎样才能解决这个问题..?
我试图强制执行一个策略,即使其中一个提交消息不满足规则,每个推送都会被拒绝.我已经向开发人员分发了一个钩子,以便他们在他们的本地存储库中使用它,但我也希望在他们推送到原点时强制执行此操作.
我有两个问题:
我应该使用更新挂钩还是预接收挂钩?(我试图设置一个update.secondary钩子,但在我看来它不会被解雇,而预先接收会这样做).
如何获取推送中包含的每个提交的消息?更具体地说,我希望每个提交消息都具有特定的"有效"(对于我的需要)前缀.因此,我想在此推送提交消息中扫描每个提交,并在接受推送之前对其进行验证.
我使用简单的bash来编写钩子.
谢谢!
我只是标记了一个版本,我试图将标签推送到服务器,但我收到以下错误
$ git push --tags
Counting objects: 1, done.
Writing objects: 100% (1/1), 190 bytes, done.
Total 1 (delta 0), reused 0 (delta 0)
remote: FATAL: W refs/tags/v3.1.01 project xxsmith DENIED by refs/.*
remote: error: hook declined to update refs/tags/v3.1.01
To ssh://git@server/project
! [remote rejected] v3.1.01 -> v3.1.01 (hook declined)
error: failed to push some refs to 'ssh://git@server/project'
Run Code Online (Sandbox Code Playgroud)
为什么是这样?我拥有该帐户的完全权利.
我正在使用gitolite ..它可以是以下设置的东西
repo project
RW+ master = @releasers # allow @releasers access to release branch
- master = @developers # deny …Run Code Online (Sandbox Code Playgroud) git ×10
gitolite ×10
ssh ×2
branch ×1
git-branch ×1
githooks ×1
github ×1
hook ×1
repository ×1
shell ×1
working-copy ×1