git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Why /var/cache/git?

From
JJ.H. <warthog19@eaglescrag.net>
Date
Oct 25, 2010, 15:24 UTC
Message-ID
<4CC5A13F.2090702@eaglescrag.net>
In-Reply-To
<20101025103006.GA18782@brong.net>
On 10/25/2010 03:30 AM, Bron Gondwana wrote:
Show 6 quoted lines
> (resent - correct address for git list!)
> 
> (Gerrit: you're CC'd as the attribution in README.Debian
>  which in the one place I can see /var/cache/git mentioned
>  in the docs - without a justification for why it was
>  chosen...)
Couple of quick points:

$ grep -Ri "/var/git\|\/var\/git" * Documentation/git-cvsserver.txt: export CVSROOT=:ext:user@server:/var/git/project.git

gitweb/README: RewriteRule ^/var(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi [QSA,E=GITWEB_PROJECTROOT:/var/git/,L,PT]

gitweb/README:Second, repositories found in /pub/scm/ and /var/git/ will be accesible

Are the only 3 instances where this is mentioned. Looking at those quick it was probably chosen based on the fact that it's a location that likely exists on most machines. Or just for explanatory reasons like /example/dir/project.git could be used.

> I'm setting up shared repositories on a machine, and I notice
> all the examples I can find on the web, and also the 
> auto-created directory from the packages are /var/cache/git/

I can't speak for the web, it's a place filled with many many evil dirty lies, but the primary documentation should likely get updated to not actually shove perminant data into a transient location. Bonus that gitweb (caching) might use the directory for it's cache storage which could cause some amusement.

> 
> So I looked at the FHS, because that seemed odd to me:
[...]
> I guess in theory, someone else has all those commits in their
> local git repository somewhere.  Still, it feels to me that
> /var/lib/git is the correct location.  Is there any reason why
> /var/spool/git was chosen?

Ummmm are you talking about for where a set of repositories exist on a shared setup? Personally, and depending on your beliefs as a sysadmin, it should likely end up under something like /home/git or some other shared location like /group/git, /pub/git, /shared/git or really anywhere where you are likely to do backups and not just run rm -rf because it should be a transient location.

> (I'm running Debian Lenny with the 1.7.1 backport packages, but
> I see examples from Fedora with the same paths as well)

Speaking from the Fedora angle (since I don't have a Debian box handy anywhere or in a VM) the only places I'm seeing /var/git mentioned is:

/usr/share/doc/git-1.7.2.3/git-cvsserver.txt /usr/share/doc/git-1.7.2.3/git-cvsserver.html /usr/share/doc/git-cvs-1.7.2.3/git-cvsserver.txt /usr/share/doc/git-cvs-1.7.2.3/git-cvsserver.html /usr/share/doc/git-cvs-1.7.2.3/git-cvsserver.html /usr/share/doc/gitweb-1.7.2.3/README /usr/share/doc/gitweb-caching-1.6.5.2/README

which are the latest versions of all of those packages and it's obvious it's the git-cvs and gitweb stuff that are to blame for the confusion there.

Probably easiest thing to do is adjust the documentation to be /example/dir/project.git vs. /var/git since I agree, that's actually dangerous.

- John 'Warthog9' Hawley
Previous: Bron GondwanaNext: Bron Gondwana
Message 2 of 9 in “Why /var/cache/git?”
  1. Bron GondwanaOct 25, 2010
  2. J.H.Oct 25, 2010
  3. Bron GondwanaOct 26, 2010
  4. Drew NorthupOct 26, 2010
  5. Gerrit PapeOct 26, 2010
  6. Jakub NarebskiOct 26, 2010
  7. Junio C HamanoOct 26, 2010
  8. Gerrit PapeOct 28, 2010
  9. Bron GondwanaOct 26, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.