All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Narebski <jnareb@gmail.com>
To: Mike <fromlists@talkingspider.com>
Cc: git@vger.kernel.org
Subject: Re: I don't want the .git directory next to my code.
Date: Wed, 16 Jan 2008 05:13:47 -0800 (PST)	[thread overview]
Message-ID: <m3bq7lncak.fsf@roke.D-201> (raw)
In-Reply-To: <478D79BD.7060006@talkingspider.com>

Mike <fromlists@talkingspider.com> writes:

> I'm learning git and I'm really annoyed that the .git directory lives
> in the same directory as my code.  I don't want it there for three
> reasons:
> 
> 1. My code lives on a development web server docroot, and I don't want
> the .git repository to end up getting published to the live site by
> accident. (I would imagine this would be a common need.)

Use git-archive (or, in older releases, git-tar-tree) and perhaps
post-update / post-recieve hook to publish latest version.

I think best layout would be: 
 (1) your private copy (clone) of repository, with working directory
 (2) bare (without working directory) publishing repository,
     with post-update hook
 (3) published last version of your files

You can check 'todo' branch of git.git repository for scripts which
Junio uses to automatically update git HTML documentation at
kernel.org
 
> 2. If I tar/gz my code and deliver it to a client, I don't want the
> .git dir slipping into the tarball, allowing my client to be able to
> peruse the history of what we did and when.

Use git-archive / git-tar-tree to tar.gz or zip code to send to client.
This has the advantage of not packing generated code, backup files,
etc., not only .git. Besides there is --exclude option to tar ;-)
 
(For RPM based distributions git-archive is usually in git-core;
I don't know what package you have to install on Debian based distro).

> 3. The .git respository will get big, especially with binary files in
> it, and I want it someplace with a lot of disk space. And I don't want
> it to get tarred up when we migrate the site to a different
> server. (And tar isn't aware of hard links is it? wonderful.)
> 
> How do I make the repository dir live somewhere else, the hell away
> from my code? Thanks

If you are inside repo, configuration variable core.worktree,
environmental variable GIT_WORK_DIR, or '--work-tree' command line
option (git --work-tree=/path/to/working/dir <cmd>) can be used to
point to working tree.

If you are in working area, environmental variable GIT_DIR, or
'--git-dir' command line option can be used to point to the
repository. You can also symlink .git in working directory.
There was an idea of '.gitlink' file, similar to CVS/Root file
in CVS, or core.gitdir configuration variable which points to
base GIT_DIR in unionfs / shadow like way, but neither got
implemented. You are welcome to it... of course after release :-)

-- 
Jakub Narebski
Poland
ShadeHawk on #git

  parent reply	other threads:[~2008-01-16 13:14 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-16  3:27 I don't want the .git directory next to my code Mike
2008-01-16  3:50 ` Randal L. Schwartz
2008-01-16  4:07   ` Mike
2008-01-16  4:24     ` David Symonds
2008-01-16  4:29       ` Mike
2008-01-16  4:36     ` Sean
2008-01-16 17:31       ` Mike
2008-01-16  5:27     ` Neil Macneale
2008-01-16 17:23       ` Mike
2008-01-16 17:51         ` Johannes Schindelin
2008-01-16 18:15         ` Linus Torvalds
2008-01-16 18:25           ` Linus Torvalds
2008-01-17  5:42             ` Mike
2008-01-17  6:38               ` Kris Shannon
2008-01-17 10:34               ` Wincent Colaiuta
2008-01-17 15:17               ` Jeff King
2008-01-17 17:36                 ` Linus Torvalds
2008-01-17 17:49                   ` Johannes Schindelin
2008-01-17 18:02                     ` Linus Torvalds
2008-01-17 18:10                       ` Johannes Schindelin
2008-01-17 19:12                 ` Mike
2008-01-17 19:20                   ` Johannes Schindelin
2008-01-17 20:00                     ` Mike
2008-01-17 20:08                       ` Johannes Schindelin
2008-01-17 20:49                         ` Mike
2008-01-17 20:57                           ` Johannes Schindelin
2008-01-17 21:00                             ` Mike
2008-01-17 21:05                               ` Johannes Schindelin
2008-01-18  7:52                   ` David Symonds
2008-01-22 10:27                   ` Russ Dill
2008-01-17 21:05               ` Martin Langhoff
2008-01-18  8:41               ` Andreas Ericsson
2008-01-16 19:23           ` Junio C Hamano
2008-01-17  2:00           ` Ping Yin
2008-01-17  2:38             ` Linus Torvalds
2008-01-16  3:56 ` Dan McGee
2008-01-16  6:00   ` Mike
2008-01-16  6:07     ` Mike Krier
2008-01-16  6:09     ` Mike
2008-01-16  4:03 ` Nguyen Thai Ngoc Duy
2008-01-16  4:06 ` David Symonds
2008-01-16  4:18   ` Mike
2008-01-16  4:44     ` Daniel Barkalow
2008-01-16  4:55     ` Luke Lu
2008-01-16 17:23       ` Mike
2008-01-17  1:42     ` Sam Vilain
2008-01-16  4:13 ` Daniel Barkalow
2008-01-16  4:24   ` Mike
2008-01-16 10:37     ` Johannes Schindelin
2008-01-16 13:21   ` Bert Wesarg
2008-01-16 22:33   ` Wayne Davison
2008-01-16  9:59 ` Matthieu Moy
2008-01-16 10:36   ` Johannes Schindelin
2008-01-16 11:41     ` Bill Lear
2008-01-16 12:25       ` Matthieu Moy
2008-01-16 12:45         ` Johannes Schindelin
2008-01-16 17:40           ` Junio C Hamano
2008-01-16 17:52             ` Johannes Schindelin
2008-01-16 11:59     ` Matthieu Moy
2008-01-16 12:12       ` Johannes Schindelin
2008-01-16 13:13 ` Jakub Narebski [this message]
2008-01-17  0:59   ` Brian Downing
2008-01-17  1:35     ` Randal L. Schwartz
2008-01-17  2:59       ` Martin Langhoff
2008-01-17  5:44         ` Randal L. Schwartz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3bq7lncak.fsf@roke.D-201 \
    --to=jnareb@gmail.com \
    --cc=fromlists@talkingspider.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.