管理平台+ Gitolite - 问题与库权限和更多(Redmine + Gitolite - I

2019-07-01 14:55发布

我有同样的服务器我gitolite库上安装的管理平台。

为了我的仓库链接到我的管理平台例如,我在本地克隆使用以下命令回购:

git clone --bare --local /home/git/repositories/my-repo.git

正如我成功地克隆了服务器上的回购,我可以通过在管理平台的回购导航,符合市场预期。

问题是,当我这样做,我不能在我的本地机器上推什么更给远程回购。

当我尝试

git push

我收到以下错误:

Counting objects: 15, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (8/8), 695 bytes, done.
Total 8 (delta 6), reused 0 (delta 0)
fatal: loose object 455f30c5243ec5b5cc698b1e51bdfb23ee6c1b22 (stored in     ./objects/45/5f30c5243ec5b5cc698b1e51bdfb23ee6c1b22) is corrupt
error: unpack failed: unpack-objects abnormal exit
To git@dev.my-host.org:my-repo.git
 ! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'git@my-host.org:my-repo.git'

对任何想法?

编辑#1

该gitolite日志显示如下:

2012-10-22.10:59:59     13121   ssh     ARGV=drgomesp   SOC=git-receive-pack 'my-repo.git'   FROM=187.65.248.7
2012-10-22.11:00:00     13121           access(my-repo, drgomesp, W, 'any'),-> refs/.*
2012-10-22.11:00:00     13121           trigger,Writable,access_1,ACCESS_1,my-repo,drgomesp,W,any,refs/.*
2012-10-22.11:00:00     13121   pre_git my-repo      drgomesp        W       any     -> refs/.*
2012-10-22.11:00:00     13121           system,git,shell,-c,git-receive-pack '/home/git/repositories/my-repo.git'
2012-10-22.11:00:00     13121   END

Answer 1:

我设法得到它的工作指向原来的回购协议管理平台,因为两个坐在同一台机器上,通过以下一些简单的步骤:

  1. 加上管理平台的存储库与gitolite的仓库原回购。 该路径将类似/home/git/repositories/my-repo.git

  2. 最初,管理平台没有任何权限读取存储仓库,所以我们可以通过将管理平台的用户(通常是解决问题www-data或者apache )到git运行组usermod -a -G git www-data (注意服务器配置的,因为这可以是一个有点不同,根据您如何可配置gitolite。

  3. 更改UMASK的财产.gitolite.rc文件,从默认值00770022 ,相当于755 (rwxr-xr-x)的目录和644 (rw-r--r--)的文件。

  4. 对于现有的回购协议,则可能需要运行一个chmod -R g+rX

如果您仍然遇到与管理平台,它会打开一个权限麻烦404 ,而不是库选项卡上的回购,你可能必须运行一个chmod -R g+rX整体上/home/git/repositories ,以使确保管理平台用户可以读取通过回购协议的所有道路。



Answer 2:

如果一个git repack remote/origin/master不能解决问题,请检查你的umask( umask 0002 ),以避免任何书面的许可问题,如提到的“ 混帐:不能推(解包错误) ”。

在那旁边,“ 脱壳错误裸回购混帐推到临时服务器 ”总结的所有其他点进行检查。



文章来源: Redmine + Gitolite - Issue with repository permissions and more