On 12/17/2012 07:56 PM, Grant wrote: > >> If all you need to do is host git repositories, I suggest putting bare >> repos on a server somewhere and having everyone push/pull over SSH. You >> can use the bare-bones gitweb (comes with git in portage) to view the >> repos from a web browser. You'll need a separate bug tracking mechanism >> in that case. > > I haven't used git before at all. Is this pretty easy to set up? >
If your users all have SSH access to some server, you don't have to do anything at all. Git works by pushing and pulling from other repositories. Those repos may reside on a friend's machine, or a server somewhere; conceptually, it doesn't matter[1]. So, for example, I have a git repo for my reapply_default_acl project in ~/src. I can clone this somewhere else by doing, $ mkdir -p tmp/acl $ cd tmp/acl/ $ git clone ~/src/reapply_default_acl Cloning into 'reapply_default_acl'... done. that easy. To do it over SSH is identical. I can connect to my own machine via SSH for another example: $ rm -rf reapply_default_acl $ $ git clone ssh://mjo@localhost:443/~/src/reapply_default_acl Cloning into 'reapply_default_acl'... Password: remote: Counting objects: 102, done. remote: Compressing objects: 100% (85/85), done. remote: Total 102 (delta 34), reused 3 (delta 0) Receiving objects: 100% (102/102), 33.86 KiB, done. Resolving deltas: 100% (34/34), done. That's all that's involved. You give people "commit access" by allowing them to write to the directory. [1] This is a slight lie. If you're going to have a centralized repo that you only push to, you'll want to do two things. First, create the server repo with `git init --bare` so that you don't have an extra copy of checked-out files lying around. Second, go into the 'hooks' folder of the server repo and rename the post-update.sample file to post-update.