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.

Reply via email to