使用davfs安装git http存储库

时间:2011-06-10 06:56:07

标签: apache svn git

我正在尝试将一些项目从subversion转换为git。这些项目是网站,我们当前的subversion设置使用davfs来安装存储库并在那里指向apache的文档根目录。这样,dev中的apache就会将当前检查的代码运行到svn存储库中。

mount:

mount.davfs http://code.repository/svn/site.com /mnt/davfs/site.com

httpd.conf:

ServerName site.com  
DocumentRoot /mnt/davfs/site.com

我正在寻找一种用git模仿这种设置的方法。但是,根据我的理解,安装一个git存储库(是的,我们的git repo是通过http访问的)这种方式将导致git存储库内部显示为docroot而不是代码本身。
例如:

ls /mnt/davfs/gitrepository

Parent Directory
HEAD
branches/
config
description
hooks/
info/
objects/
refs/

有没有人知道是否有办法达到预期效果?

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您希望能够浏览代码,则应该使用gitweb之类的内容。如果你想从回购中推/拉,那么内部应该显示为docroot。

在一个裸存储库(你将用于这种中央存储库的那种,因为你通常不想推送到非裸存储库),没有实际检查磁盘上的代码文件,唯一那个裸露的回购中的东西是“git internals”。

如果你想从存储库中获取服务器上代码的副本,你可能想要使用git archive - 如果你希望每次新代码运行时都可以在post-receive钩子中运行推送到存储库。有关详细信息,请参见以下手册页:

http://www.kernel.org/pub/software/scm/git/docs/git-archive.html

http://git-scm.com/docs/githooks

答案 1 :(得分:0)

git repo 另一个野兽。如果你想浏览源代码,你需要像gitweb这样的东西。请注意,如果你只是指向一个svn回购,你也会看到内部; /mnt/davfs/site.com可能是使用apache mod-dav-svn托管的,它可以像gitweb那样做。

你会想看看gitweb或竞争对手。 Gitweb是恕我直言,最简单的设置

https://git.wiki.kernel.org/index.php/Gitweb

为了共享您的存储库(例如,使其成为可克隆的),只需将树作为静态HTTP页面(直接作为docroot)提供服务,因为davfs不会(可靠地)使其他人无论如何都可以推送到您的存储库。

使用智能HTTP服务器,git-daemon或ssh

进行推送