Articles of gitolite

Gitlabhq gitolite更新回购和密钥问题

我想更新gitolite。 但是当我开始命令 > sudo -u gitlab -H bundle exec rake gitlab:gitolite:update_repos remote: Counting objects: 1459, done. remote: Compressing objects: 100% (1172/1172), done. Receiving objects: 100% (1459/1459), 133.14 KiB, done. remote: Total 1459 (delta 462), reused 0 (delta 0) Resolving deltas: 100% (462/462), done. rake aborted! gitolite timeout /home/gitlab/gitlab/lib/gitlab/backend/gitolite_config.rb:77:in `rescue in apply' /home/gitlab/gitlab/lib/gitlab/backend/gitolite_config.rb:24:in `apply' /home/gitlab/gitlab/lib/gitlab/backend/gitolite_config.rb:118:in `update_project!' […]

NGINX和CGitconfiguration

我想要设置CGit和NGINX。 我差不多在那里,但是我的NGINX的conf文件中的重写规则有问题。 目前我有这个: server { listen 80; server_name cgit.mydomain.com; index cgit.cgi; gzip off; root /usr/share/webapps/cgit; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/cgit.cgi; location / { try_files $uri @cgit; } location @cgit { auth_basic "Restricted"; auth_basic_user_file /path/to/my/password_file; gzip off; rewrite ^/([^/]+/.*)?$ /cgit.cgi?url=$1 break; fastcgi_pass fcgiwrap; } } 我知道,当我在看demo_repo_1.git的URL应该看起来像http://cgit.mydomain.com/cgit.cgi?url=gitolite-admin.git (或类似的东西?),而是它看起来像http://cgit.mydomain.com/cgit.cgi/gitolite-admin.git/ ,它不起作用(因为在cgit.cgi脚本不能从URL读取正确的数据,并不能显示正确的关于我的回购信息。 此外,如果我强制我认为它应该(在我的浏览器中复制并粘贴“正确”的URL)的URL,下载cgit.cgi脚本。 我可以帮助一下这个重写规则吗?

Gitlab添加默认的更新后

我们已经设置了Gitlab(正如官方网站所描述的那样)。 一切正常。 现在我们需要将git钩子添加到新创build的名为post-update的项目(可以说它位于/ home / git / gitolite / hook / post-update)。 我认为有一些简单的方法来使用像骨架这样的文件复制到新创build的项目。 有没有configuration或文件如何做到这一点?

在ubuntu中使用apache2托piperedmine服务器

我试图在Ubuntu机器上使用apache运行redmine + gitolite服务器。 我按照以下服务器configuration文件中的说明进行操作: <VirtualHost *:80> ServerName redmine.xyz.com ServerAdmin someone@somewhere DocumentRoot /var/www/ PassengerUserSwitching on RewriteEngine On RewriteRule ^/?$ /redmine [R] <Directory /var/www/redmine> RailsBaseURI /redmine PassengerResolveSymlinksInDocumentRoot on PassengerUser redmine PassengerGroup redmine </Directory> LogLevel info ErrorLog ${APACHE_LOG_DIR}/error-redmine.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> 现在,当我访问网站时,以下内容将被logging在默认的error.log文件中: [ 2015-11-07 12:44:45.7366 1568/7f9da7df9780 agents/HelperAgent/Main.cpp:643 ]: PassengerHelperAgent online, listening at unix:/tmp/passenger.1.0.1562/generation-0/request [ 2015-11-07 12:44:45.7422 1574/7faddd156780 […]

提交后触发`git pull`部署应用程序

我有一个远程服务器(我自己)的git仓库。 我想确保在git push远程服务器之后,节点程序的一个新实例被拉到本地开发服务器中(然后, forever会收到更改并重新启动它)。 目前,我有一个钩子( post-receive ): unset GIT_DIR export PATH=$PATH:/usr/local/bin/ cd /home/www/node/deployed/node_modules/wonder-server git pull echo "POST COMMIT FINISHED" 但是,它带来了问题: 它期望在开发机器上安装模块,并使用正确的版本 我们还维护了一些我们也会更新的npm模块 这是一个很好的方法来解决这个问题吗? 或者,你能想出更好的办法吗?

Git – 什么导致“警告:负面模式在git属性中被忽略”

当推我的服务器post-receive挂钩运行一个git clone命令。 该命令返回以下警告,我不知道它是什么意思或如何解决它。 谷歌search错误只给出了关于gitattributes的结果,我还没有configuration任何属性。 我的.gitignore文件里面也没有感叹号或负值。 remote: Cloning into '/var/www/html/gitrep'… remote: warning: Negative patterns are ignored in git attributes remote: Use '\!' for literal leading exclamation.

Github如何知道哪个用户提交了?

我正在尝试为我的gitolite服务器写一个GUI。 我的计划是创build一个钩子,然后将git log写入数据库或文件。 然后一个PHP文件可以读取这个数据,并像Github上的networking一样显示它。 我现在的问题是如何知道哪个用户已经提交了? 因为如果他的git电子邮件不同,那么我的服务器数据库中的电子邮件我无法识别用户。 你对这个问题有什么build议吗? 有没有更好的方式来获取所有提交比git log ?

有没有可能在FreeNAS服务器上运行gitolite?

我们广泛使用gitolite,既用于代码pipe理,也用于托pipe私有的SparkleShare存储库。 我正在考虑构build一个FreeNAS存储机器,并且认为它运行的是bsd,有ssh,因此理论上应该运行gitolite。 有没有人试过这个? 有什么理由不应该工作?

Gitolite和Gitlab – “www-data”用户如何签出?

我刚刚安装了Gitolite和Gitlab,我对此非常满意。 一切工作到目前为止。 我可以创build回购协议,推送给他们,克隆他们在networking上的其他客户端。 大! 但是现在我想要做一些post-receive钩子。 即当我推到一些回购,这个回购应检出在/var/www/repos目录中的服务器上。 我用Gitlabs Deploy Hooks和这个Endpoint-Script做了这个。 问题在于脚本是在没有访问gitlab/gitolite的用户“ www-data ”下运行的。 我如何改变这个? 我需要能够使用www-data用户检出repos,并使用git@server/repo.git语法。

在ScriptAliasMatch中用户转发的机制

我正在按照本教程来设置gitolite,并在某些时候使用以下ScriptAliasMatch: ScriptAliasMatch \ "(?x)^/(.*/(HEAD | \ info/refs | \ objects/(info/[^/]+ | \ [0-9a-f]{2}/[0-9a-f]{38} | \ pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ git-(upload|receive)-pack))$" \ /var/www/bin/gitolite-suexec-wrapper.sh/$1 目标脚本开始 USER=$1 所以我猜这是用来将用户名从Apache转发到suexec脚本(这确实需要它)。 但是我不明白这是怎么完成的。 ScriptAliasMatch文档使我认为/$1将被第一个匹配的正则expression式的匹配组取代。 对我来说,它从(?x)^ /(。* to) ) $捕获,所以这里没有关于用户的信息。 我的根本问题是USER在我的脚本是空的,所以我没有在gitolite授权。 我通过基本身份validation给我的用户名到Apache: <Location /> # Crowd auth AuthType Basic AuthName "Git repositories" … Require valid-user </Location> 在之前的ScriptAliasMatch下定义。 所以我真的想知道这应该如何工作,我错过了什么机制的一部分,所以我不检索我的脚本中的用户。