2013-03-07 73 views
1

我需要允许匿名访问几个回购。我阅读了一些关于使用git clone clone --bare方法并使用git-daemon服务克隆的repo的git-daemon的how-tos和docs。 这工作正常,通过aptitude安装它,它作为/ etc/srv/git-daemon中的服务而愉快地运行。Git-daemon - 如何更新克隆的回购>?

我的问题是,一旦devel有更多的提交,你如何更新和同步被用作公共存储库的克隆实例?

另外,这个回购也似乎是可写的(显然,但肯定不总是想要),是否有可能使git-daemon服务只读?

回答

0

为了使存储库对所有用户只读,最简单的方法是添加一个authorization layer,如gitolite

您可以将其插入到gitweb中,或者只是作为http访问权限,就像我在Apache configuration中所做的那样,该权限可以设置为需要身份验证。

因此,您可以保留当前的git-daemon,以进行只读访问,但是您可以添加一个(经过身份验证的)https访问以用于写入目的,从而准确控制哪些人可以做哪些回购(通过gitolite) 。

你也将能够为钩cd一个post-receive钩添加到您的可写上游回购,以其他只读回购,并做了git fetch

#!/bin/bash 
export GIT_DIR=/path/to/bare/read-only-repo.git/ 
cd $GIT_DIR 
git fetch --all