我正在尝试将一些项目从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/
有没有人知道是否有办法达到预期效果?
谢谢!
答案 0 :(得分:0)
如果您希望能够浏览代码,则应该使用gitweb之类的内容。如果你想从回购中推/拉,那么内部应该显示为docroot。
在一个裸存储库(你将用于这种中央存储库的那种,因为你通常不想推送到非裸存储库),没有实际检查磁盘上的代码文件,唯一那个裸露的回购中的东西是“git internals”。
如果你想从存储库中获取服务器上代码的副本,你可能想要使用git archive
- 如果你希望每次新代码运行时都可以在post-receive钩子中运行推送到存储库。有关详细信息,请参见以下手册页:
http://www.kernel.org/pub/software/scm/git/docs/git-archive.html
答案 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
进行推送