welcome: please sign in

Diff for "MemberManual/VersionControl/git"

Differences between revisions 11 and 16 (spanning 5 versions)
Revision 11 as of 2008-06-22 17:10:23
Size: 2099
Editor: MichaelOlson
Comment:
Revision 16 as of 2014-04-30 06:42:47
Size: 2503
Editor: ClintonEbadi
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
[[TableOfContents]]

= git packages =

We try to keep up-to-date on the latest git releases, so that you don't have to compile your own binaries for git. The packages are stored at {{{/afs/hcoop.net/common/debian/git/}}}.
<<TableOfContents>>
Line 13: Line 9:
We have set up a gitweb repository viewer at [http://git.hcoop.net/]. We also have a git daemon, which can be used to quickly retrieve a project. People can host projects there simply by adding bare git repositories under their {{{~/.hcoop-git/}}} directory. This directory can be a hierarchy if you want to categorize your projects. We have set up a gitweb repository viewer at [[http://git.hcoop.net/]]. We also have a git daemon, which can be used to quickly retrieve a project. People can host projects there simply by adding bare git repositories under their {{{~/.hcoop-git/}}} directory. This directory can be a hierarchy if you want to categorize your projects.
Line 17: Line 13:
First, you will want to make a {{{~/.hcoop-git}}} directory. When you do, the gitweb interface and the git daemon will pick it up automatically. You should have a directory named `~/.hcoop-git`, but if your account is old enough you may have to create it manually:
Line 23: Line 19:

The gitweb interface and the git daemon will pick it up any repositories stored in the directory automatically.
Line 30: Line 28:
fsr setacl ~/.hcoop-git/PROJECT.git system:anyuser read fsr setacl ~/.hcoop-git/PROJECT.git/. system:anyuser read
}}}

'''Note that the above command is "fsr", not "fs"!'''

'''If you forget to run this command on any subdirectories in ~/.hcoop-git, none of your projects will show up in the gitweb interface!'''

A better method is to mirror the repository into `~/.hcoop-git`. This should Just Work and pick up the correct permissions from the `~/.hcoop-git` ACL. You can also use this method to mirror repositories hosted elsewhere (but you'll need to manually pull, or write a cron job to do so):

{{{
git clone --mirror $PATH-TO-YOUR-PROJECT $PROJECT-NAME.git
Line 37: Line 45:
'''Be sure to execute the fsr line, otherwise the web interface will be messed up!'''
Line 42: Line 48:
----
CategoryMemberManual CategoryNeedsWork

This page describes the ways in which we use git at HCoop.

System-wide git

We have set up a gitweb repository viewer at http://git.hcoop.net/. We also have a git daemon, which can be used to quickly retrieve a project. People can host projects there simply by adding bare git repositories under their ~/.hcoop-git/ directory. This directory can be a hierarchy if you want to categorize your projects.

Getting started

You should have a directory named ~/.hcoop-git, but if your account is old enough you may have to create it manually:

mkdir ~/.hcoop-git
fsr setacl ~/.hcoop-git system:anyuser read

The gitweb interface and the git daemon will pick it up any repositories stored in the directory automatically.

Making projects available

It is recommended that you put bare git repositories under ~/.hcoop-git. Bare git repositories are the .git directories within a git project. If you want to keep a (pre-existing) copy of the working directory elsewhere, then do the following. PROJECT is the name of your project. WORKDIR is the location of your working directory.

ln -s WORKDIR/.git ~/.hcoop-git/PROJECT.git
fsr setacl ~/.hcoop-git/PROJECT.git/. system:anyuser read

Note that the above command is "fsr", not "fs"!

If you forget to run this command on any subdirectories in ~/.hcoop-git, none of your projects will show up in the gitweb interface!

A better method is to mirror the repository into ~/.hcoop-git. This should Just Work and pick up the correct permissions from the ~/.hcoop-git ACL. You can also use this method to mirror repositories hosted elsewhere (but you'll need to manually pull, or write a cron job to do so):

git clone --mirror $PATH-TO-YOUR-PROJECT $PROJECT-NAME.git

Alternatively, you can copy the .git directory from elsewhere and then run the fsr setacl command mentioned above.

When you have directories of bare git projects being served by gitweb, it is the convention to name them in this fashion: that is, the name of the project, followed by ".git".

It will take up to 15 minutes for any new projects to show up on the web interface, because we cache the front page.

To change the description displayed on the web interface for the project, edit the file ~/.hcoop-git/PROJECT.git/description.


CategoryMemberManual CategoryNeedsWork

MemberManual/VersionControl/git (last edited 2014-04-30 06:42:47 by ClintonEbadi)