Skip to content

Commit

Permalink
Update git-init-db(1) and documentation of core.sharedRepository
Browse files Browse the repository at this point in the history
Combine option descriptions in git-init-db(1). Reflect the changes to
additionally allow all users to read the created git repository.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Jonas Fonseca authored and Junio C Hamano committed Aug 9, 2006
1 parent 6c8d06a commit d5dc6a7
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 19 deletions.
9 changes: 6 additions & 3 deletions Documentation/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,12 @@ core.repositoryFormatVersion::
version.

core.sharedRepository::
If true, the repository is made shareable between several users
in a group (making sure all the files and objects are group-writable).
See gitlink:git-init-db[1]. False by default.
When 'group' (or 'true'), the repository is made shareable between
several users in a group (making sure all the files and objects are
group-writable). When 'all' (or 'world' or 'everybody'), the
repository will be readable by all users, additionally to being
group-shareable. When 'umask' (or 'false'), git will use permissions
reported by umask(2). See gitlink:git-init-db[1]. False by default.

core.warnAmbiguousRefs::
If true, git will warn you if the ref name you passed it is ambiguous
Expand Down
51 changes: 35 additions & 16 deletions Documentation/git-init-db.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,47 @@ git-init-db - Creates an empty git repository

SYNOPSIS
--------
'git-init-db' [--template=<template_directory>] [--shared]
'git-init-db' [--template=<template_directory>] [--shared[=<permissions>]]


OPTIONS
-------

--

--template=<template_directory>::
Provide the directory from which templates will be used.
The default template directory is `/usr/share/git-core/templates`.

--shared::
Specify that the git repository is to be shared amongst several users.
Provide the directory from which templates will be used. The default template
directory is `/usr/share/git-core/templates`.

When specified, `<template_directory>` is used as the source of the template
files rather than the default. The template files include some directory
structure, some suggested "exclude patterns", and copies of non-executing
"hook" files. The suggested patterns and hook files are all modifiable and
extensible.

--shared[={false|true|umask|group|all|world|everybody}]::

Specify that the git repository is to be shared amongst several users. This
allows users belonging to the same group to push into that
repository. When specified, the config variable "core.sharedRepository" is
set so that files and directories under `$GIT_DIR` are created with the
requested permissions. When not specified, git will use permissions reported
by umask(2).

The option can have the following values, defaulting to 'group' if no value
is given:

- 'umask' (or 'false'): Use permissions reported by umask(2). The default,
when `--shared` is not specified.

- 'group' (or 'true'): Make the repository group-writable, (and g+sx, since
the git group may be not the primary group of all users).

- 'all' (or 'world' or 'everybody'): Same as 'group', but make the repository
readable by all users.

--


DESCRIPTION
Expand All @@ -29,24 +59,13 @@ template files.
An initial `HEAD` file that references the HEAD of the master branch
is also created.

If `--template=<template_directory>` is specified, `<template_directory>`
is used as the source of the template files rather than the default.
The template files include some directory structure, some suggested
"exclude patterns", and copies of non-executing "hook" files. The
suggested patterns and hook files are all modifiable and extensible.

If the `$GIT_DIR` environment variable is set then it specifies a path
to use instead of `./.git` for the base of the repository.

If the object storage directory is specified via the `$GIT_OBJECT_DIRECTORY`
environment variable then the sha1 directories are created underneath -
otherwise the default `$GIT_DIR/objects` directory is used.

A shared repository allows users belonging to the same group to push into that
repository. When specifying `--shared` the config variable "core.sharedRepository"
is set to 'true' so that directories under `$GIT_DIR` are made group writable
(and g+sx, since the git group may be not the primary group of all users).

Running `git-init-db` in an existing repository is safe. It will not overwrite
things that are already there. The primary reason for rerunning `git-init-db`
is to pick up newly added templates.
Expand Down

0 comments on commit d5dc6a7

Please sign in to comment.