开发者

mounting a git http repository using davfs

I'm trying to convert some projec开发者_StackOverflow社区ts at work from subversion to git. The projects are websites and our current subversion setup uses davfs to mount the repository and point apache's document root there. This way apache in dev runs the code currently checked-into the svn repository.

mount:

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

httpd.conf:

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

I'm looking for a way to mimic this setup with git. But, from what I understand, mounting a git repository (yes, our git repo is accessed over http) this way will result in the git repository internals showing up as the docroot and not the code itself.

example:

ls /mnt/davfs/gitrepository

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

Does anyone know if there is a way to achieve the desired effect?

Thanks!


If you want to be able to browse the code, you should be using something like gitweb. If you want to push/pull from the repo, then the internals should be showing up as the docroot.

In a bare repository (the kind that you would use for such a central repo, since you generally don't want to push to non-bare repos), there is no actual checkout of the code files on disk, the only things in that bare repo are the "git internals".

If you want to get a copy of the code on the server out of the repository, you probably want to use git archive - possibly in a post-receive hook if you want it to run every time new code is pushed to the repository. See the following man pages for details:

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

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


Well the git repo is another beast. If you want to browse source code, you need something like gitweb. Mind you, if you just pointed to a svn repo, you'd be looking at internals too; The /mnt/davfs/site.com is probably hosted with apache mod-dav-svn which does something similar as gitweb would do.

You'll want to look at gitweb or competition. Gitweb is IMHO the simplest to setup

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

For sharing your repository (to make it clonable, e.g.) just serve the tree as static HTTP pages (as docroot directly) because davfs will not (reliably) make it possible for others to push to your repo anyway.

Pushing would be done using the Smart HTTP server, git-daemon or over ssh

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜