gitnamespaces(7)
================

NAME
----
gitnamespaces - Git namespaces

SYNOPSIS
--------
[verse]
GIT_NAMESPACE=<namespace> 'git upload-pack'
GIT_NAMESPACE=<namespace> 'git receive-pack'


DESCRIPTION
-----------

Git supports dividing the refs of a single repository into multiple
namespaces, each of which has its own branches, tags, and HEAD.  Git can
expose each namespace as an independent repository to pull from and push
to, while sharing the object store, and exposing all the refs to
operations such as linkgit:git-gc[1].

Storing multiple repositories as namespaces of a single repository
avoids storing duplicate copies of the same objects, such as when
storing multiple branches of the same source.  The alternates mechanism
provides similar support for avoiding duplicates, but alternates do not
prevent duplication between new objects added to the repositories
without ongoing maintenance, while namespaces do.

To specify a namespace, set the `GIT_NAMESPACE` environment variable to
the namespace.  For each ref namespace, Git stores the corresponding
refs in a directory under `refs/namespaces/`.  For example,
`GIT_NAMESPACE=foo` will store refs under `refs/namespaces/foo/`.  You
can also specify namespaces via the `--namespace` option to
linkgit:git[1].

Note that namespaces which include a `/` will expand to a hierarchy of
namespaces; for example, `GIT_NAMESPACE=foo/bar` will store refs under
`refs/namespaces/foo/refs/namespaces/bar/`.  This makes paths in
`GIT_NAMESPACE` behave hierarchically, so that cloning with
`GIT_NAMESPACE=foo/bar` produces the same result as cloning with
`GIT_NAMESPACE=foo` and cloning from that repo with `GIT_NAMESPACE=bar`.  It
also avoids ambiguity with strange namespace paths such as `foo/refs/heads/`,
which could otherwise generate directory/file conflicts within the `refs`
directory.

linkgit:git-upload-pack[1] and linkgit:git-receive-pack[1] rewrite the
names of refs as specified by `GIT_NAMESPACE`.  git-upload-pack and
git-receive-pack will ignore all references outside the specified
namespace.

The smart HTTP server, linkgit:git-http-backend[1], will pass
GIT_NAMESPACE through to the backend programs; see
linkgit:git-http-backend[1] for sample configuration to expose
repository namespaces as repositories.

For a simple local test, you can use linkgit:git-remote-ext[1]:

----------
git clone ext::'git --namespace=foo %s /tmp/prefixed.git'
----------

include::transfer-data-leaks.txt[]

GIT
---
Part of the linkgit:git[1] suite
