git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* I don't want the .git directory next to my code.
@ 2008-01-16  3:27 Mike
  2008-01-16  3:50 ` Randal L. Schwartz
                   ` (6 more replies)
  0 siblings, 7 replies; 65+ messages in thread
From: Mike @ 2008-01-16  3:27 UTC (permalink / raw)
  To: git


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.)

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.

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

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  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  3:56 ` Dan McGee
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 65+ messages in thread
From: Randal L. Schwartz @ 2008-01-16  3:50 UTC (permalink / raw)
  To: Mike; +Cc: git

>>>>> "Mike" == Mike  <fromlists@talkingspider.com> writes:

Mike> I'm learning git and I'm really annoyed that the .git directory lives in
Mike> the same directory as my code.  I don't want it there for three reasons:

Mike> 1. My code lives on a development web server docroot, and I don't want
Mike> the .git repository to end up getting published to the live site by
Mike> accident. (I would imagine this would be a common need.)

Sounds like you need an installer... something that copies your repo into the
live location with things you don't want included left out, and all the
permissions and ownership correct.

Mike> 2. If I tar/gz my code and deliver it to a client, I don't want the .git
Mike> dir slipping into the tarball, allowing my client to be able to peruse
Mike> the history of what we did and when.

git archive --help

Mike> 3. The .git respository will get big, especially with binary files in
Mike> it, and I want it someplace with a lot of disk space. And I don't want
Mike> it to get tarred up when we migrate the site to a different server. (And
Mike> tar isn't aware of hard links is it? wonderful.)

An installer helps here too.

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  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  3:56 ` Dan McGee
  2008-01-16  6:00   ` Mike
  2008-01-16  4:03 ` Nguyen Thai Ngoc Duy
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 65+ messages in thread
From: Dan McGee @ 2008-01-16  3:56 UTC (permalink / raw)
  To: git; +Cc: fromlists

On 01/15/2008 09:27 PM, Mike wrote:
> 
> How do I make the repository dir live somewhere else, the hell away from
> my code? Thanks

mv .git <location to move to>
ln -s <location moved to> .git

Did you try this before you sent your email?

-Dan

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  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  3:56 ` Dan McGee
@ 2008-01-16  4:03 ` Nguyen Thai Ngoc Duy
  2008-01-16  4:06 ` David Symonds
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 65+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2008-01-16  4:03 UTC (permalink / raw)
  To: Mike; +Cc: git

On Jan 16, 2008 10:27 AM, Mike <fromlists@talkingspider.com> wrote:
>
> 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.)
>
> 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.
>
> 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

Setup GIT_WORK_TREE and GIT_DIR env variables or use --git-dir and
--work-tree together. See "man git" for more detail.
-- 
Duy

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  3:27 I don't want the .git directory next to my code Mike
                   ` (2 preceding siblings ...)
  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:13 ` Daniel Barkalow
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 65+ messages in thread
From: David Symonds @ 2008-01-16  4:06 UTC (permalink / raw)
  To: Mike; +Cc: git

On Jan 16, 2008 2:27 PM, Mike <fromlists@talkingspider.com> wrote:
>
> 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.


Dave.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  3:50 ` Randal L. Schwartz
@ 2008-01-16  4:07   ` Mike
  2008-01-16  4:24     ` David Symonds
                       ` (2 more replies)
  0 siblings, 3 replies; 65+ messages in thread
From: Mike @ 2008-01-16  4:07 UTC (permalink / raw)
  To: Randal L. Schwartz; +Cc: git



Randal L. Schwartz wrote:
>>>>>> "Mike" == Mike  <fromlists@talkingspider.com> writes:
> 
> 
> Sounds like you need an installer... something that copies your repo into the
> live location with things you don't want included left out, and all the
> permissions and ownership correct.

If you mean copying files from the development webserver to the live 
server, then the only reason we'd need an installer is because of the 
.git directory, it's the only thing we "don't want included".  And as 
for permissions and ownership, rsync takes care of that.

> 
> git archive --help
>

I got:

$ git archive --help
No manual entry for git-archive

Did I install it wrong?  I have CentOS 5, and I did:

su
yum install git

thanks,
m

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  3:27 I don't want the .git directory next to my code Mike
                   ` (3 preceding siblings ...)
  2008-01-16  4:06 ` David Symonds
@ 2008-01-16  4:13 ` Daniel Barkalow
  2008-01-16  4:24   ` Mike
                     ` (2 more replies)
  2008-01-16  9:59 ` Matthieu Moy
  2008-01-16 13:13 ` Jakub Narebski
  6 siblings, 3 replies; 65+ messages in thread
From: Daniel Barkalow @ 2008-01-16  4:13 UTC (permalink / raw)
  To: Mike; +Cc: git

On Tue, 15 Jan 2008, Mike wrote:

> 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.)
> 
> 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.

Generate your tarballs with "git archive", which will also make sure that 
you don't accidentally include anything else that's not committed. 
Likewise for sending to the live site, probably.

> 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.)

You'll probably want to keep your history, which is what's in .git, when 
you migrate to a different server; that's kind of the point of using 
version control...

> How do I make the repository dir live somewhere else, the hell away from my
> code? Thanks

export GIT_DIR=/somewhere-else.git

Note that this only really works if you've only got one repository; 
there's no good way to have the repository information outside of the 
working directory and still have which repository you're using depend on 
which directory you're working in.

	-Daniel
*This .sig left intentionally blank*

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  4:06 ` David Symonds
@ 2008-01-16  4:18   ` Mike
  2008-01-16  4:44     ` Daniel Barkalow
                       ` (2 more replies)
  0 siblings, 3 replies; 65+ messages in thread
From: Mike @ 2008-01-16  4:18 UTC (permalink / raw)
  To: David Symonds; +Cc: git


David Symonds wrote:
> On Jan 16, 2008 2:27 PM, Mike <fromlists@talkingspider.com> wrote:
>> 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.
> 

Thanks but this isn't sufficient. If we have one directory of our web 
root in a git repository, say docroot/php, and we tar up docroot, it 
will include php/.git.  We don't want that.  We would have to go out of 
our way to avoid the .git directory.  The point is, we don't want 
anything in docroot that shouldn't be made live.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  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  5:27     ` Neil Macneale
  2 siblings, 1 reply; 65+ messages in thread
From: David Symonds @ 2008-01-16  4:24 UTC (permalink / raw)
  To: Mike; +Cc: Randal L. Schwartz, git

On Jan 16, 2008 3:07 PM, Mike <fromlists@talkingspider.com> wrote:
>
>
> I got:
>
> $ git archive --help
> No manual entry for git-archive

What's your git version ("git version")? Try just "man git-archive".


Dave.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  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
  2 siblings, 1 reply; 65+ messages in thread
From: Mike @ 2008-01-16  4:24 UTC (permalink / raw)
  To: Daniel Barkalow; +Cc: git


Daniel Barkalow wrote:
 > On Tue, 15 Jan 2008, Mike wrote:
 >
 >
 > Generate your tarballs with "git archive", which will also make sure 
that
 > you don't accidentally include anything else that's not committed.
 > Likewise for sending to the live site, probably.

Thanks please see my response to David about why this isn't good.

 >
 > You'll probably want to keep your history, which is what's in .git, when
 > you migrate to a different server; that's kind of the point of using
 > version control...

The git repositories should be on the development server, but should 
*never* be on the live server.  Anywhere, ever.

 > export GIT_DIR=/somewhere-else.git
 >
 > Note that this only really works if you've only got one repository;
 > there's no good way to have the repository information outside of the
 > working directory and still have which repository you're using depend on
 > which directory you're working in.
 >

Thanks. Damn. We do have several repositories, (several sites).  I'll 
try Dan's soft link suggestion.

thanks
m

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  4:24     ` David Symonds
@ 2008-01-16  4:29       ` Mike
  0 siblings, 0 replies; 65+ messages in thread
From: Mike @ 2008-01-16  4:29 UTC (permalink / raw)
  To: David Symonds; +Cc: Randal L. Schwartz, git


$ man git-archive
No manual entry for git-archive

David Symonds wrote:
> 
> What's your git version ("git version")? Try just "man git-archive".

Mike wrote at 10:13PM:
 >
 > git version 1.5.2.1

thanks

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  4:07   ` Mike
  2008-01-16  4:24     ` David Symonds
@ 2008-01-16  4:36     ` Sean
  2008-01-16 17:31       ` Mike
  2008-01-16  5:27     ` Neil Macneale
  2 siblings, 1 reply; 65+ messages in thread
From: Sean @ 2008-01-16  4:36 UTC (permalink / raw)
  To: Mike; +Cc: Randal L. Schwartz, git

On Tue, 15 Jan 2008 23:07:22 -0500
Mike <fromlists@talkingspider.com> wrote:


> > git archive --help
> >
> I got:
> 
> $ git archive --help
> No manual entry for git-archive
> 
> Did I install it wrong?  I have CentOS 5, and I did:
> 
> su
> yum install git
> 

Yes, on Centos you probably need "yum install git-core"  which installs all
the assorted pieces and dependencies of Git.

HTH,
Sean

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  4:18   ` Mike
@ 2008-01-16  4:44     ` Daniel Barkalow
  2008-01-16  4:55     ` Luke Lu
  2008-01-17  1:42     ` Sam Vilain
  2 siblings, 0 replies; 65+ messages in thread
From: Daniel Barkalow @ 2008-01-16  4:44 UTC (permalink / raw)
  To: Mike; +Cc: David Symonds, git

On Tue, 15 Jan 2008, Mike wrote:

> David Symonds wrote:
> > On Jan 16, 2008 2:27 PM, Mike <fromlists@talkingspider.com> wrote:
> > > 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.
> > 
> 
> Thanks but this isn't sufficient. If we have one directory of our web root in
> a git repository, say docroot/php, and we tar up docroot, it will include
> php/.git.  We don't want that.  We would have to go out of our way to avoid
> the .git directory.  The point is, we don't want anything in docroot that
> shouldn't be made live.

I don't know about you, but my source directories get lots of other 
junk: editor backup files, half-written scripts, debugging output, etc. 
Furthermore, there's the issue of whether you can accidentally distribute 
something you haven't added to your version control yet and therefore 
can't reproduce. It's just a lot cleaner to deploy and distribute out of 
the version control system instead of out of a working directory.

I don't know why you don't seem to have git-archive (or its manpage); it's 
in the version you have. Maybe it didn't get into the deb-generation files 
at the time? You might have git-tar-tree instead, though.

	-Daniel
*This .sig left intentionally blank*

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  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
  2 siblings, 1 reply; 65+ messages in thread
From: Luke Lu @ 2008-01-16  4:55 UTC (permalink / raw)
  To: Mike; +Cc: David Symonds, git


On Jan 15, 2008, at 8:18 PM, Mike wrote:

>
> David Symonds wrote:
>> On Jan 16, 2008 2:27 PM, Mike <fromlists@talkingspider.com> wrote:
>>> 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.
>
> Thanks but this isn't sufficient. If we have one directory of our  
> web root in a git repository, say docroot/php, and we tar up  
> docroot, it will include php/.git.  We don't want that.  We would  
> have to go out of our way to avoid the .git directory.  The point  
> is, we don't want anything in docroot that shouldn't be made live.

git-archive generates an archive file *without* the .git directory.  
 From git-archive(1):

   git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ &&  
tar xf -)
               Create a tar archive that contains the contents of the  
latest
               commit on the current branch, and extracts it in /var/ 
tmp/junk
               directory.

   git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >  
git-1.4.0.tar.gz
               Create a compressed tarball for v1.4.0 release.

   git archive --format=tar --prefix=git-1.4.0/ v1.4.0^{tree} | gzip  
 >git-1.4.0.tar.gz
               Create a compressed tarball for v1.4.0 release, but  
without a
               global extended pax header.

   git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ >  
git-1.4.0-docs.zip
               Put everything in the current head's Documentation/  
directory
               into git-1.4.0-docs.zip, with the prefix git-docs/.

IMHO, git export is probably a better name for the command. git- 
archive sounds like backup everything associated with git.

__Luke

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  4:07   ` Mike
  2008-01-16  4:24     ` David Symonds
  2008-01-16  4:36     ` Sean
@ 2008-01-16  5:27     ` Neil Macneale
  2008-01-16 17:23       ` Mike
  2 siblings, 1 reply; 65+ messages in thread
From: Neil Macneale @ 2008-01-16  5:27 UTC (permalink / raw)
  To: Mike; +Cc: git

Mike wrote:
> ....  And as for permissions and ownership, rsync takes care of that.
Perhaps "rsync --exclude *.git"?

It seems to me that you are asking git to be your deployment software, 
which is a bad fit.

Cheers,
Neil

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  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
  0 siblings, 2 replies; 65+ messages in thread
From: Mike @ 2008-01-16  6:00 UTC (permalink / raw)
  To: Dan McGee; +Cc: git



Dan McGee wrote:
> On 01/15/2008 09:27 PM, Mike wrote:
>> How do I make the repository dir live somewhere else, the hell away from
>> my code? Thanks
> 
> mv .git <location to move to>
> ln -s <location moved to> .git
> 
> Did you try this before you sent your email?

No, good idea. But it didn't work.  When I git commit -a, I get "fatal: 
Not a git repository"

(And also even if that worked, it wouldn't work on an NTFS partiton, 
right...)

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  6:00   ` Mike
@ 2008-01-16  6:07     ` Mike Krier
  2008-01-16  6:09     ` Mike
  1 sibling, 0 replies; 65+ messages in thread
From: Mike Krier @ 2008-01-16  6:07 UTC (permalink / raw)
  To: Dan McGee; +Cc: git



Mike wrote:
> 
> No, good idea. But it didn't work.  When I git commit -a, I get "fatal: 
> Not a git repository"
> 
> (And also even if that worked, it wouldn't work on an NTFS partiton, 
> right...)

Wait, it worked!  thanks!

Hmm although some of our code is (necessarily) on an NTFS partition... hmm..

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  6:00   ` Mike
  2008-01-16  6:07     ` Mike Krier
@ 2008-01-16  6:09     ` Mike
  1 sibling, 0 replies; 65+ messages in thread
From: Mike @ 2008-01-16  6:09 UTC (permalink / raw)
  To: Dan McGee; +Cc: git



Mike wrote:
> 
> No, good idea. But it didn't work.  When I git commit -a, I get "fatal: 
> Not a git repository"
> 
> (And also even if that worked, it wouldn't work on an NTFS partiton, 
> right...)

Wait, it worked!  thanks!

Hmm although some of our code is (necessarily) on an NTFS partition... hmm..

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  3:27 I don't want the .git directory next to my code Mike
                   ` (4 preceding siblings ...)
  2008-01-16  4:13 ` Daniel Barkalow
@ 2008-01-16  9:59 ` Matthieu Moy
  2008-01-16 10:36   ` Johannes Schindelin
  2008-01-16 13:13 ` Jakub Narebski
  6 siblings, 1 reply; 65+ messages in thread
From: Matthieu Moy @ 2008-01-16  9:59 UTC (permalink / raw)
  To: Mike; +Cc: git

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:

The idea was discussed here, mostly under the name "gitlink". I'd like
it for another reason :

* Have my tree on a fast, unrelialbe local disk, and have my .git on a
  slower, but safe and backed-up NFS partition.

But up to now, AFAIK, no one (including myself ;-) ) stepped-in to
implement it.

-- 
Matthieu

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  9:59 ` Matthieu Moy
@ 2008-01-16 10:36   ` Johannes Schindelin
  2008-01-16 11:41     ` Bill Lear
  2008-01-16 11:59     ` Matthieu Moy
  0 siblings, 2 replies; 65+ messages in thread
From: Johannes Schindelin @ 2008-01-16 10:36 UTC (permalink / raw)
  To: Matthieu Moy; +Cc: Mike, git

Hi,

On Wed, 16 Jan 2008, Matthieu Moy wrote:

> 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:
> 
> The idea was discussed here, mostly under the name "gitlink".

It goes by "git worktree"; has nothing to do with gitlink (which has 
something to do with submodules).

> But up to now, AFAIK, no one (including myself ;-) ) stepped-in to 
> implement it.

It has been implemented, and it works.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  4:24   ` Mike
@ 2008-01-16 10:37     ` Johannes Schindelin
  0 siblings, 0 replies; 65+ messages in thread
From: Johannes Schindelin @ 2008-01-16 10:37 UTC (permalink / raw)
  To: Mike; +Cc: Daniel Barkalow, git

Hi,

On Tue, 15 Jan 2008, Mike wrote:

> Daniel Barkalow wrote:
> > On Tue, 15 Jan 2008, Mike wrote:
> >
> > Generate your tarballs with "git archive", which will also make sure 
> > that you don't accidentally include anything else that's not 
> > committed. Likewise for sending to the live site, probably.
> 
> Thanks please see my response to David about why this isn't good.

See Luke Lu's answer to your response about why you're wrong.  It's even 
in the man page of git-archive.

Hth,
Dscho

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16 10:36   ` Johannes Schindelin
@ 2008-01-16 11:41     ` Bill Lear
  2008-01-16 12:25       ` Matthieu Moy
  2008-01-16 11:59     ` Matthieu Moy
  1 sibling, 1 reply; 65+ messages in thread
From: Bill Lear @ 2008-01-16 11:41 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Matthieu Moy, Mike, git

On Wednesday, January 16, 2008 at 10:36:34 (+0000) Johannes Schindelin writes:
>Hi,
>
>On Wed, 16 Jan 2008, Matthieu Moy wrote:
>
>> 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:
>> 
>> The idea was discussed here, mostly under the name "gitlink".
>
>It goes by "git worktree"; has nothing to do with gitlink (which has 
>something to do with submodules).

I think you mean to say there is a variable 'worktree' variable
available via the config variable 'core.worktree' or environment
variable GIT_WORK_TREE, or command-line option --work-tree that should
do the trick (no 'git worktree' command exists as far as I can see):

% man git-config
[...]
       core.worktree
           Set the path to the working tree. The value will not be used in
           combination with repositories found automatically in a .git
           directory (i.e. $GIT_DIR is not set). This can be overriden by the
           GIT_WORK_TREE environment variable and the --work-tree command line
           option.
[...]

% man git
[...]
       --work-tree=<path>
           Set the path to the working tree. The value will not be used in
           combination with repositories found automatically in a .git
           directory (i.e. $GIT_DIR is not set). This can also be controlled
           by setting the GIT_WORK_TREE environment variable and the
           core.worktree configuration variable.
[...]


Bill

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16 10:36   ` Johannes Schindelin
  2008-01-16 11:41     ` Bill Lear
@ 2008-01-16 11:59     ` Matthieu Moy
  2008-01-16 12:12       ` Johannes Schindelin
  1 sibling, 1 reply; 65+ messages in thread
From: Matthieu Moy @ 2008-01-16 11:59 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Mike, git

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> Hi,
>
> On Wed, 16 Jan 2008, Matthieu Moy wrote:
>
>> 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:
>> 
>> The idea was discussed here, mostly under the name "gitlink".
>
> It goes by "git worktree";

Any pointer to some doc? My git doesn't have a "worktree" command.

> has nothing to do with gitlink (which has something to do with
> submodules).

We may not be talking about the same gitlink then.

The one I'm refering to is "Lightweight Checkout
Otherwise known as the .gitlink idea." on
http://git.or.cz/gitwiki/SoC2007Ideas for example.

-- 
Matthieu

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16 11:59     ` Matthieu Moy
@ 2008-01-16 12:12       ` Johannes Schindelin
  0 siblings, 0 replies; 65+ messages in thread
From: Johannes Schindelin @ 2008-01-16 12:12 UTC (permalink / raw)
  To: Matthieu Moy; +Cc: Mike, git

Hi,

On Wed, 16 Jan 2008, Matthieu Moy wrote:

> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> > On Wed, 16 Jan 2008, Matthieu Moy wrote:
> >
> >> 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:
> >> 
> >> The idea was discussed here, mostly under the name "gitlink".
> >
> > It goes by "git worktree";
> 
> Any pointer to some doc? My git doesn't have a "worktree" command.

I was not talking about a command.  I prepended "git" only to stress that 
this worktree is not any worktree, but integrated into git.  I believe 
Bill has already given all necessary pointers.

> > has nothing to do with gitlink (which has something to do with 
> > submodules).
> 
> We may not be talking about the same gitlink then.

Indeed.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16 11:41     ` Bill Lear
@ 2008-01-16 12:25       ` Matthieu Moy
  2008-01-16 12:45         ` Johannes Schindelin
  0 siblings, 1 reply; 65+ messages in thread
From: Matthieu Moy @ 2008-01-16 12:25 UTC (permalink / raw)
  To: Bill Lear; +Cc: Johannes Schindelin, Mike, git

Bill Lear <rael@zopyra.com> writes:

> On Wednesday, January 16, 2008 at 10:36:34 (+0000) Johannes Schindelin writes:
>>Hi,
>>
>>On Wed, 16 Jan 2008, Matthieu Moy wrote:
>>
>>> 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:
>>> 
>>> The idea was discussed here, mostly under the name "gitlink".
>>
>>It goes by "git worktree"; has nothing to do with gitlink (which has 
>>something to do with submodules).
>
> I think you mean to say there is a variable 'worktree' variable
> available via the config variable 'core.worktree' or environment
> variable GIT_WORK_TREE, or command-line option --work-tree that should
> do the trick (no 'git worktree' command exists as far as I can see):

Yes, so you can use

$ git --work-tree . --git-dir /some/other/place <some-command>

But it's far from the user-friendlyness of a real lightweight
checkout: you need to provide the --work-tree and --git-dir options
each time you run git. And making an alias or using the environment
variables are not really an option if you have more than one
repository or working tree to deal with.

-- 
Matthieu

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16 12:25       ` Matthieu Moy
@ 2008-01-16 12:45         ` Johannes Schindelin
  2008-01-16 17:40           ` Junio C Hamano
  0 siblings, 1 reply; 65+ messages in thread
From: Johannes Schindelin @ 2008-01-16 12:45 UTC (permalink / raw)
  To: Matthieu Moy; +Cc: Bill Lear, Mike, git

Hi,

On Wed, 16 Jan 2008, Matthieu Moy wrote:

> Bill Lear <rael@zopyra.com> writes:
> 
> > On Wednesday, January 16, 2008 at 10:36:34 (+0000) Johannes Schindelin writes:
> >>Hi,
> >>
> >>On Wed, 16 Jan 2008, Matthieu Moy wrote:
> >>
> >>> 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:
> >>> 
> >>> The idea was discussed here, mostly under the name "gitlink".
> >>
> >>It goes by "git worktree"; has nothing to do with gitlink (which has 
> >>something to do with submodules).
> >
> > I think you mean to say there is a variable 'worktree' variable
> > available via the config variable 'core.worktree' or environment
> > variable GIT_WORK_TREE, or command-line option --work-tree that should
> > do the trick (no 'git worktree' command exists as far as I can see):
> 
> Yes, so you can use
> 
> $ git --work-tree . --git-dir /some/other/place <some-command>
> 
> But it's far from the user-friendlyness of a real lightweight checkout: 
> you need to provide the --work-tree and --git-dir options each time you 
> run git. And making an alias or using the environment variables are not 
> really an option if you have more than one repository or working tree to 
> deal with.

Well, the OP said he did not want _any_ file in the worktree.  So there's 
no way around specifying by hand everytime where the git directory should 
be.

I'm not saying I find the OP's restrictions sensible, but that's what he 
said.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  3:27 I don't want the .git directory next to my code Mike
                   ` (5 preceding siblings ...)
  2008-01-16  9:59 ` Matthieu Moy
@ 2008-01-16 13:13 ` Jakub Narebski
  2008-01-17  0:59   ` Brian Downing
  6 siblings, 1 reply; 65+ messages in thread
From: Jakub Narebski @ 2008-01-16 13:13 UTC (permalink / raw)
  To: Mike; +Cc: git

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

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  4:13 ` Daniel Barkalow
  2008-01-16  4:24   ` Mike
@ 2008-01-16 13:21   ` Bert Wesarg
  2008-01-16 22:33   ` Wayne Davison
  2 siblings, 0 replies; 65+ messages in thread
From: Bert Wesarg @ 2008-01-16 13:21 UTC (permalink / raw)
  To: Daniel Barkalow; +Cc: Mike, git

On Jan 16, 2008 5:13 AM, Daniel Barkalow <barkalow@iabervon.org> wrote:
> On Tue, 15 Jan 2008, Mike wrote:
>
> > How do I make the repository dir live somewhere else, the hell away from my
> > code? Thanks
>
> export GIT_DIR=/somewhere-else.git
>
> Note that this only really works if you've only got one repository;
> there's no good way to have the repository information outside of the
> working directory and still have which repository you're using depend on
> which directory you're working in.
This project may solve this problem:

http://swapoff.org/OnDir

Bert

>
>         -Daniel

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  4:55     ` Luke Lu
@ 2008-01-16 17:23       ` Mike
  0 siblings, 0 replies; 65+ messages in thread
From: Mike @ 2008-01-16 17:23 UTC (permalink / raw)
  To: Luke Lu; +Cc: David Symonds, git, Johannes.Schindelin



Luke Lu wrote:
> 
> On Jan 15, 2008, at 8:18 PM, Mike wrote:
> 
>>
>> David Symonds wrote:
>>> On Jan 16, 2008 2:27 PM, Mike <fromlists@talkingspider.com> wrote:
>>>> 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.
>>
>> Thanks but this isn't sufficient. If we have one directory of our web 
>> root in a git repository, say docroot/php, and we tar up docroot, it 
>> will include php/.git.  We don't want that.  We would have to go out 
>> of our way to avoid the .git directory.  The point is, we don't want 
>> anything in docroot that shouldn't be made live.
> 
> git-archive generates an archive file *without* the .git directory. From 
> git-archive(1):
> 
>   git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)
>               Create a tar archive that contains the contents of the latest
>               commit on the current branch, and extracts it in 
> /var/tmp/junk
>               directory.
> 
>   git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip > 
> git-1.4.0.tar.gz
>               Create a compressed tarball for v1.4.0 release.
> 
>   git archive --format=tar --prefix=git-1.4.0/ v1.4.0^{tree} | gzip 
>  >git-1.4.0.tar.gz
>               Create a compressed tarball for v1.4.0 release, but without a
>               global extended pax header.
> 
>   git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > 
> git-1.4.0-docs.zip
>               Put everything in the current head's Documentation/ directory
>               into git-1.4.0-docs.zip, with the prefix git-docs/.
> 
> IMHO, git export is probably a better name for the command. git-archive 
> sounds like backup everything associated with git.
> 
> __Luke
> -

OK I don't think you read my response closely.  I wasn't going to 
respond except I see Johannes missed the point too.

I completely understand that git archive will not inlcude the .git dir. 
What you missed in my response is the case where someone tars up a 
directory above the .git directory. Not all of the content under doc 
root is in a git archive.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  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
  0 siblings, 2 replies; 65+ messages in thread
From: Mike @ 2008-01-16 17:23 UTC (permalink / raw)
  To: Neil Macneale; +Cc: git



Neil Macneale wrote:
 > Mike wrote:
 >> ....  And as for permissions and ownership, rsync takes care of that.
 > Perhaps "rsync --exclude *.git"?
 >
 > It seems to me that you are asking git to be your deployment software,
 > which is a bad fit.

I'm asking git to get out of my deployment!

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  4:36     ` Sean
@ 2008-01-16 17:31       ` Mike
  0 siblings, 0 replies; 65+ messages in thread
From: Mike @ 2008-01-16 17:31 UTC (permalink / raw)
  To: Sean; +Cc: git


Sean wrote:
> On Tue, 15 Jan 2008 23:07:22 -0500
> Mike <fromlists@talkingspider.com> wrote:
> 
> 
>>> git archive --help
>>>
>> I got:
>>
>> $ git archive --help
>> No manual entry for git-archive
>>
>> Did I install it wrong?  I have CentOS 5, and I did:
>>
>> su
>> yum install git
>>
> 
> Yes, on Centos you probably need "yum install git-core"  which installs all
> the assorted pieces and dependencies of Git.
> 

Thanks but didn't work-

# yum install git-core
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
rpmforge                  100% |=========================| 1.1 kB    00:00
base                      100% |=========================| 1.1 kB    00:00
updates                   100% |=========================|  951 B    00:00
addons                    100% |=========================|  951 B    00:00
extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files
Parsing package install arguments
Nothing to do

Also if this helps, here's what I have for git:

$ rpm -qa | grep -i git
git-1.5.2.1-1.el5.rf
xorg-x11-drv-digitaledge-1.1.0-1.1
perl-Git-1.5.2.1-1.el5.rf

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16 12:45         ` Johannes Schindelin
@ 2008-01-16 17:40           ` Junio C Hamano
  2008-01-16 17:52             ` Johannes Schindelin
  0 siblings, 1 reply; 65+ messages in thread
From: Junio C Hamano @ 2008-01-16 17:40 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Matthieu Moy, Bill Lear, Mike, git

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

>> Yes, so you can use
>> 
>> $ git --work-tree . --git-dir /some/other/place <some-command>
>> 
>> But it's far from the user-friendlyness of a real lightweight checkout: 
>> you need to provide the --work-tree and --git-dir options each time you 
>> run git. And making an alias or using the environment variables are not 
>> really an option if you have more than one repository or working tree to 
>> deal with.
>
> Well, the OP said he did not want _any_ file in the worktree.  So there's 
> no way around specifying by hand everytime where the git directory should 
> be.

Export GIT_DIR and GIT_WORKTREE and you are free to go, right?

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16 17:23       ` Mike
@ 2008-01-16 17:51         ` Johannes Schindelin
  2008-01-16 18:15         ` Linus Torvalds
  1 sibling, 0 replies; 65+ messages in thread
From: Johannes Schindelin @ 2008-01-16 17:51 UTC (permalink / raw)
  To: Mike; +Cc: Neil Macneale, git

Hi,

On Wed, 16 Jan 2008, Mike wrote:

> Neil Macneale wrote:
> > Mike wrote:
> >> ....  And as for permissions and ownership, rsync takes care of that.
> > Perhaps "rsync --exclude *.git"?
> >
> > It seems to me that you are asking git to be your deployment software,
> > which is a bad fit.
> 
> I'm asking git to get out of my deployment!

But that's easy: rm -rf /usr/bin/git* .git/ ;-)

Hth,
Dscho

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16 17:40           ` Junio C Hamano
@ 2008-01-16 17:52             ` Johannes Schindelin
  0 siblings, 0 replies; 65+ messages in thread
From: Johannes Schindelin @ 2008-01-16 17:52 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Matthieu Moy, Bill Lear, Mike, git

Hi,

On Wed, 16 Jan 2008, Junio C Hamano wrote:

> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> >> Yes, so you can use
> >> 
> >> $ git --work-tree . --git-dir /some/other/place <some-command>
> >> 
> >> But it's far from the user-friendlyness of a real lightweight 
> >> checkout: you need to provide the --work-tree and --git-dir options 
> >> each time you run git. And making an alias or using the environment 
> >> variables are not really an option if you have more than one 
> >> repository or working tree to deal with.
> >
> > Well, the OP said he did not want _any_ file in the worktree.  So 
> > there's no way around specifying by hand everytime where the git 
> > directory should be.
> 
> Export GIT_DIR and GIT_WORKTREE and you are free to go, right?

Yep.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  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
                             ` (2 more replies)
  1 sibling, 3 replies; 65+ messages in thread
From: Linus Torvalds @ 2008-01-16 18:15 UTC (permalink / raw)
  To: Mike; +Cc: Neil Macneale, git



On Wed, 16 Jan 2008, Mike wrote:
>
> Neil Macneale wrote:
> >
> > It seems to me that you are asking git to be your deployment software,
> > which is a bad fit.
> 
> I'm asking git to get out of my deployment!

I think you mis-understood.

The normal way of handling this is to NOT DO DEVELOPMENT IN YOUR 
DEPLOYMENT TREE!

It's almost always a bad idea to develop in the tree that is also where 
you "export" things, and if you find git annoying in this respect, ask 
yourself why pretty much *every*single*scm*out*there* makes their 
infrastructure even more noticeable (eg CVS subdirectories in every single 
directory etc)

So while you can do various tricks (symlinking ".git", using GIT_DIR, etc 
etc) to get the .git contents out of your worktree, the thing is, the 
correct thing to do is almost always to simply re-think the whole problem, 
and come at it the other way: rather than getting .git out of your 
development tree, you should consider getting your development tree out of 
your deployment area!

Let me do a few examples of why this is a good idea:

 - the whole point of development trees and SCM's (and that's *especially* 
   true with git) is how you can try things out, go backwards in time, and 
   generally just do *development*.

   If you do that in what is your public deployment area, you're already 
   very limited. Not only may you not want to make that .git directory 
   accessible to others (while you *do* obviously want to make the 
   deployment itself), you also end up exposing things like your 
   management scripts and source code along with "generated files" etc 
   that are the things you actually want to deploy.

   Yes, it's certainly quite possible that you simply don't have any 
   management scripts etc, and that you don't generate any files, and you 
   simply want to just deploy the exact files that you also want to track. 
   But that really is a fairly unusual thing to do.

 - with git in particular, you lose a lot of the capabilities if you are 
   forcing yourself to have "deployment == development tree". Things like 
   switching branches for managing different versions suddenly are 
   painful, because you're artificially forcing a 1:1 relationship between 
   "development" and "deployment".

 - Most sane people want to deploy and test separately. In particular, you 
   want to test *before* you deploy. People make mistakes, they don't want 
   to show them. Or there are consistency requirements, and/or you simply 
   want to deploy to multiple sites simultaneously. All of which really 
   re-inforces the "develop separately" mentality, where the actual 
   deployment is then a separate "now I'm ready, let's push out the 
   result".

Now, maybe none of these things are issues at all for you. Good for you. 
But hopefully this explains why most people don't have your issues, and 
why people try to tell you that "deployment software" is a separate thing 
from "source control management", and you often want both, and _want_ to 
keep them separate.

		Linus

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16 18:15         ` Linus Torvalds
@ 2008-01-16 18:25           ` Linus Torvalds
  2008-01-17  5:42             ` Mike
  2008-01-16 19:23           ` Junio C Hamano
  2008-01-17  2:00           ` Ping Yin
  2 siblings, 1 reply; 65+ messages in thread
From: Linus Torvalds @ 2008-01-16 18:25 UTC (permalink / raw)
  To: Mike; +Cc: Neil Macneale, git



On Wed, 16 Jan 2008, Linus Torvalds wrote:
> 
>    Yes, it's certainly quite possible that you simply don't have any 
>    management scripts etc, and that you don't generate any files, and you 
>    simply want to just deploy the exact files that you also want to track. 
>    But that really is a fairly unusual thing to do.

Example management scripts: let's say that you have a logo that shows up 
in multiple different sizes. You can just have it as <n> number of 
different files that you check in and update separately, or you can have 
it as *one* scalable master file, and then the deployment script will 
create all the generated files and put them in the deployment area.

So the common issue with SCM's is that you want to share two totally 
different things:

 - the actual "source" (which obviously doesn't have to be source code per 
   se), which is the thing you want to have for yourself and people you 
   work with, and which you want the history of.

 - the "output" for external entities, which may often contain a lot of 
   the "source" verbatim, but quite often doesn't contain it all (some of 
   the stuff you need to manage things may be rather private and purely 
   for *your* management info), and almost invariably contains some 
   post-processing.

Some people don't split this up, and they tend to make horrible horrible 
mistakes, like checking in the *results* of the post-processing too (ie 
binary result blobs that can be regenerated from the other files), because 
they don't make a clear separation between the parts they do development 
on, and the end result.

			Linus

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16 18:15         ` Linus Torvalds
  2008-01-16 18:25           ` Linus Torvalds
@ 2008-01-16 19:23           ` Junio C Hamano
  2008-01-17  2:00           ` Ping Yin
  2 siblings, 0 replies; 65+ messages in thread
From: Junio C Hamano @ 2008-01-16 19:23 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Mike, Neil Macneale, git

Linus Torvalds <torvalds@linux-foundation.org> writes:

> Let me do a few examples of why this is a good idea:
>
>  - the whole point of development trees and SCM's (and that's *especially* 
>    true with git) is how you can try things out, go backwards in time, and 
>    generally just do *development*.
>
>    If you do that in what is your public deployment area, you're already 
>    very limited. Not only may you not want to make that .git directory 
>    accessible to others (while you *do* obviously want to make the 
>    deployment itself), you also end up exposing things like your 
>    management scripts and source code along with "generated files" etc 
>    that are the things you actually want to deploy.
>
>    Yes, it's certainly quite possible that you simply don't have any 
>    management scripts etc, and that you don't generate any files, and you 
>    simply want to just deploy the exact files that you also want to track. 

Even without any management script, you cannot do any _development_
in such a tree.  By definition, mucking with the files in the
deployment area means all of your changes are immediately visible by
the clients.

One reason (admittedly misguided) people mentioned why they want
to do this is because they want to be able to "git-add" files
generated on the deployed server by client actions (think of a
Wiki that drops new contents in an area writable by the
webserver).  If your deployment area is _not_ managed by git,
they instead need to write a Makefile target in their
development area that takes new/modified files back to the
development tree and "git-add" those copies.

The right way to manage these client-generated contents would of
course be to commit them to a branch separate from the sources
you develop (otherwise your history will be a mixed mess between
the true development and client content changes), so the
argument is very weak and is not a good justification for
wanting to have deployment and development tree as one.

But I can well imagine that it is a tempting way to work for
people who have not thought about the reason why history
matters, especially for the ones who still suffer from CVS
braindamage that makes separate branches inpractical.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  4:13 ` Daniel Barkalow
  2008-01-16  4:24   ` Mike
  2008-01-16 13:21   ` Bert Wesarg
@ 2008-01-16 22:33   ` Wayne Davison
  2 siblings, 0 replies; 65+ messages in thread
From: Wayne Davison @ 2008-01-16 22:33 UTC (permalink / raw)
  To: Daniel Barkalow; +Cc: Mike, git

On Tue, Jan 15, 2008 at 11:13:58PM -0500, Daniel Barkalow wrote:
> export GIT_DIR=/somewhere-else.git
> 
> Note that this only really works if you've only got one repository; 
> there's no good way to have the repository information outside of the 
> working directory and still have which repository you're using depend on 
> which directory you're working in.

If you use zsh as your shell, put this chpwd function in .zprofile or
.zshrc:

chpwd() {
    local gitbasedir=/var/local/git
    local subdir=$gitbasedir$PWD
    while [[ ! -d $subdir ]]; do
	subdir=${subdir:h}
    done
    if [[ -d $subdir/.git ]]; then
	export GIT_DIR=$subdir/.git
	export GIT_WORK_TREE=${subdir/$gitbasedir/}
    else
	unset GIT_DIR GIT_WORK_TREE
    fi
}

Then, for each /path/.git dir, move it to /var/local/git/path/.git
(creating any needed parent dirs).  On every change of directory in
the shell, the variables GIT_DIR and GIT_WORK_TREE will be either
updated or cleared.  If you ever move a work-tree dir, you'll need
to remember to move the .git dir in the /var/local/git hierarchy.

..wayne..

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16 13:13 ` Jakub Narebski
@ 2008-01-17  0:59   ` Brian Downing
  2008-01-17  1:35     ` Randal L. Schwartz
  0 siblings, 1 reply; 65+ messages in thread
From: Brian Downing @ 2008-01-17  0:59 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: Mike, git

On Wed, Jan 16, 2008 at 05:13:47AM -0800, Jakub Narebski wrote:
> > 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 ;-)

I realize that this is not directly what's being talked about here, but
one advantage to using "full Git" for deployment rather than something
like "git archive" is that Git has already implemented an
optimized-to-within-an-inch-of-its-life incremental filesystem updater -
namely, "git checkout-index".  If you always deploy with "git archive",
it could take a very long time to update a large web site even if only a
tiny change has taken place.

Yes, you could use rsync or some other tool, but Git already has the
tools available, so why not take advantage of them?

(Now, maybe some custom scripting to call plumbing like "git
checkout-index" would be more appropriate that using a "normal" working
directory, but I think the advantages of using Git's optimized WD update
tools here should be obvious for large sites...)

-bcd

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17  0:59   ` Brian Downing
@ 2008-01-17  1:35     ` Randal L. Schwartz
  2008-01-17  2:59       ` Martin Langhoff
  0 siblings, 1 reply; 65+ messages in thread
From: Randal L. Schwartz @ 2008-01-17  1:35 UTC (permalink / raw)
  To: Brian Downing; +Cc: Jakub Narebski, Mike, git

>>>>> "Brian" == Brian Downing <bdowning@lavos.net> writes:

Brian> Yes, you could use rsync or some other tool, but Git already has the
Brian> tools available, so why not take advantage of them?

It's very likely that rsync will be faster/better/cheaper/more-flexible
than git.  "Yes, you could use git, but rsync already does the job
better, so why not take advantage of it?"  Back at ya.

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16  4:18   ` Mike
  2008-01-16  4:44     ` Daniel Barkalow
  2008-01-16  4:55     ` Luke Lu
@ 2008-01-17  1:42     ` Sam Vilain
  2 siblings, 0 replies; 65+ messages in thread
From: Sam Vilain @ 2008-01-17  1:42 UTC (permalink / raw)
  To: Mike; +Cc: git

Mike wrote:
> Thanks but this isn't sufficient. If we have one directory of our web 
> root in a git repository, say docroot/php, and we tar up docroot, it 
> will include php/.git.  We don't want that.  We would have to go out of 
> our way to avoid the .git directory.  The point is, we don't want 
> anything in docroot that shouldn't be made live.

It sounds like you want a tool more like Capistrano, which can use git,
rather than just pushing files around with git.

Sam.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16 18:15         ` Linus Torvalds
  2008-01-16 18:25           ` Linus Torvalds
  2008-01-16 19:23           ` Junio C Hamano
@ 2008-01-17  2:00           ` Ping Yin
  2008-01-17  2:38             ` Linus Torvalds
  2 siblings, 1 reply; 65+ messages in thread
From: Ping Yin @ 2008-01-17  2:00 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Mike, Neil Macneale, git

On Jan 17, 2008 2:15 AM, Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
>
>

>
>  - Most sane people want to deploy and test separately. In particular, you
>   want to test *before* you deploy. People make mistakes, they don't want
>   to show them. Or there are consistency requirements, and/or you simply
>   want to deploy to multiple sites simultaneously. All of which really
>   re-inforces the "develop separately" mentality, where the actual
>   deployment is then a separate "now I'm ready, let's push out the
>   result".
>
Using git to manage deployment environment and even as deployment
tools is not always a bad idea.

1. In case where development and deployment environment are almost the
same, such as html files, js files, binding the two environments as
one is convenient.

2. Event In the case where the two environement are different very
much, managing deployment environment in git sometimes still seems
good, since we can easily back to any earlier version or fix some
urgent bug ASAP (surely for the non-generated files).

3. Use 'git pull' as deploy command seems simple enough.

>
>                Linus
>
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>



-- 
Ping Yin

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17  2:00           ` Ping Yin
@ 2008-01-17  2:38             ` Linus Torvalds
  0 siblings, 0 replies; 65+ messages in thread
From: Linus Torvalds @ 2008-01-17  2:38 UTC (permalink / raw)
  To: Ping Yin; +Cc: Mike, Neil Macneale, git



On Thu, 17 Jan 2008, Ping Yin wrote:
>
> Using git to manage deployment environment and even as deployment
> tools is not always a bad idea.

I don't think it's alway sa bad idea, no. But it's a good idea only if you 
then accept things like ".git" subdirectories lying around in your 
deployment area (or you accept the use of tricks like GIT_DIR).

> 1. In case where development and deployment environment are almost the
> same, such as html files, js files, binding the two environments as
> one is convenient.
> 
> 2. Event In the case where the two environement are different very
> much, managing deployment environment in git sometimes still seems
> good, since we can easily back to any earlier version or fix some
> urgent bug ASAP (surely for the non-generated files).
> 
> 3. Use 'git pull' as deploy command seems simple enough.

Hey, I do it for all my kernels ("git pull" + "make" is just simpler than 
pushing tar-balls around), so I'm not entirely disagreeing. I *like* 
having the entire development environment around everywhere.

But it does seem like a lot of Mike's problems basically boil down to the 
fact that he doesn't really want to use it as a deployment tool.

		Linus

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17  1:35     ` Randal L. Schwartz
@ 2008-01-17  2:59       ` Martin Langhoff
  2008-01-17  5:44         ` Randal L. Schwartz
  0 siblings, 1 reply; 65+ messages in thread
From: Martin Langhoff @ 2008-01-17  2:59 UTC (permalink / raw)
  To: Randal L. Schwartz; +Cc: Brian Downing, Jakub Narebski, Mike, git

On Jan 17, 2008 2:35 PM, Randal L. Schwartz <merlyn@stonehenge.com> wrote:
> >>>>> "Brian" == Brian Downing <bdowning@lavos.net> writes:
>
> Brian> Yes, you could use rsync or some other tool, but Git already has the
> Brian> tools available, so why not take advantage of them?
>
> It's very likely that rsync will be faster/better/cheaper/more-flexible
> than git.  "Yes, you could use git, but rsync already does the job
> better, so why not take advantage of it?"  Back at ya.

We do web development, and use various deployment tools, usually git,
git+rsync or git + debian packages.

I find the discussion of git-archive as a deployment tool a bit
worrying - remember that untarring a newer version of the tarball on
top of the old version does not remove old files. In web applications
(and I think the OP is talking about web development) often security
bugs come from sloppy inclusion of files (such as sample AdoDB code).
If you deploy your "security fix" by unpacking a tarball, chances are
you'll wake up to a p0wned server.

cheers,


martin

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-16 18:25           ` Linus Torvalds
@ 2008-01-17  5:42             ` Mike
  2008-01-17  6:38               ` Kris Shannon
                                 ` (4 more replies)
  0 siblings, 5 replies; 65+ messages in thread
From: Mike @ 2008-01-17  5:42 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: git



Linus Torvalds wrote:

> Some people don't split this up, and they tend to make horrible horrible 
> mistakes, like checking in the *results* of the post-processing too (ie 
> binary result blobs that can be regenerated from the other files), because 
> they don't make a clear separation between the parts they do development 
> on, and the end result.

Honestly, I think your mode of thinking is centered around compiled 
languages and linux app(/kernel) development.  The web app 
development/deployment model is very different.

With PHP, Python, and Ruby, the development is the deployment.  The 
source is the output.  You can't develop web apps in those languages 
unless the source files you're working on are under the doc root of your 
development server.   "the parts they do development on" and "the end 
result" *are* the same files.

The "development server -> staging server -> live
server" model has been around in common use for as long as web
applications have. In fact, the term "deployment" falls apart here. 
 From my web app developer perspective, the deployment is what lands on 
the live server.  For your git perspective, the "deployment" may mean 
the .../docroot/php directory for the development server (where our app 
code lives).

There's a fundamental "best practice" of web development being violated 
here- keep your docroots clean, only put stuff in them that should go 
live (or should eventually go live when ready).  Other files should not 
live under docroot.

Among the reasons for that is security.  If one of those .git dirs does 
slip out and go live, it's a *huge* *gaping* *security* *hole*.  You 
could download the repository because those files don't have extensions, 
so the browser would just download them. I could write a spider that 
crawls around the web appending /.git to urls.

If we end up having to write a special "publisher" app to move files 
from dev to live, then it will only be because of those damn .git 
directories.  More likely we'd add some exclusions into an rsync 
wrapper, I guess. And then still worry about tarring up the docroot (not 
all of which is gitted).  And then worry that some young developer on 
the team might SCP a directory's contents and he didn't notice that .git 
dir because it doesn't show up under "ls" or the "ll" alias.

Maybe git just isn't intended to be used for anything besides compiled
languages like c?  Or maybe just not for web app development?

Finally, to this statement:

> It's almost always a bad idea to develop in the tree that is also where
> you "export" things, and if you find git annoying in this respect, ask
> yourself why pretty much *every*single*scm*out*there* makes their
> infrastructure even more noticeable (eg CVS subdirectories in every 
single
> directory etc)

I don't think that pointing at other SCM's practices as the authority is 
the stance you really want to take. I can direct you to a video of a 
speech by a brilliant guy, in front of some googlers, where he explains 
that the entire reason he started the git project is because of the 
problems with "*every*single*scm*out*there*".

Mike

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17  2:59       ` Martin Langhoff
@ 2008-01-17  5:44         ` Randal L. Schwartz
  0 siblings, 0 replies; 65+ messages in thread
From: Randal L. Schwartz @ 2008-01-17  5:44 UTC (permalink / raw)
  To: Martin Langhoff; +Cc: Brian Downing, Jakub Narebski, Mike, git

>>>>> "Martin" == Martin Langhoff <martin.langhoff@gmail.com> writes:

Martin> I find the discussion of git-archive as a deployment tool a bit
Martin> worrying - remember that untarring a newer version of the tarball on
Martin> top of the old version does not remove old files.

"rsync --exclude [dangerous things} --delete --delete-excluded" is your friend.

They added --delete--excluded at my request, by the way.

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17  5:42             ` Mike
@ 2008-01-17  6:38               ` Kris Shannon
  2008-01-17 10:34               ` Wincent Colaiuta
                                 ` (3 subsequent siblings)
  4 siblings, 0 replies; 65+ messages in thread
From: Kris Shannon @ 2008-01-17  6:38 UTC (permalink / raw)
  To: Mike; +Cc: Linus Torvalds, git

Mike wrote:
> 
> 
> Linus Torvalds wrote:
> 
>> Some people don't split this up, and they tend to make horrible 
>> horrible mistakes, like checking in the *results* of the 
>> post-processing too (ie binary result blobs that can be regenerated 
>> from the other files), because they don't make a clear separation 
>> between the parts they do development on, and the end result.
> 
> Honestly, I think your mode of thinking is centered around compiled 
> languages and linux app(/kernel) development.  The web app 
> development/deployment model is very different.
> 
> With PHP, Python, and Ruby, the development is the deployment.  The 
> source is the output.  You can't develop web apps in those languages 
> unless the source files you're working on are under the doc root of your 
> development server.   "the parts they do development on" and "the end 
> result" *are* the same files.

Not for me.  I've always had my source separate from development docroot
even before I was using proper SCM's.  I've written stuff in all three
languages you mention where deployment to the docroot (development or not)
was more than a simple copy.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  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
                                 ` (2 subsequent siblings)
  4 siblings, 0 replies; 65+ messages in thread
From: Wincent Colaiuta @ 2008-01-17 10:34 UTC (permalink / raw)
  To: Mike; +Cc: Linus Torvalds, git

El 17/1/2008, a las 6:42, Mike escribió:

> Linus Torvalds wrote:
>
>> Some people don't split this up, and they tend to make horrible  
>> horrible mistakes, like checking in the *results* of the post- 
>> processing too (ie binary result blobs that can be regenerated from  
>> the other files), because they don't make a clear separation  
>> between the parts they do development on, and the end result.
>
> Honestly, I think your mode of thinking is centered around compiled  
> languages and linux app(/kernel) development.  The web app  
> development/deployment model is very different.
>
> With PHP, Python, and Ruby, the development is the deployment.  The  
> source is the output.  You can't develop web apps in those languages  
> unless the source files you're working on are under the doc root of  
> your development server.   "the parts they do development on" and  
> "the end result" *are* the same files.
>
> The "development server -> staging server -> live
> server" model has been around in common use for as long as web
> applications have. In fact, the term "deployment" falls apart here.  
> From my web app developer perspective, the deployment is what lands  
> on the live server.  For your git perspective, the "deployment" may  
> mean the .../docroot/php directory for the development server (where  
> our app code lives).

I don't think so. Most people I speak with doing web app development  
develop locally and deploy remotely.

> There's a fundamental "best practice" of web development being  
> violated here- keep your docroots clean, only put stuff in them that  
> should go live (or should eventually go live when ready).  Other  
> files should not live under docroot.

Assuming you're using Apache, why don't you just add an .htaccess file  
to your repo at the top level which instructs Apache to forbid all  
access to .git and its contents? If Apache is so broken that you can't  
trust Apache to forbid access in those circumstances, then you can't  
trust it to not allow access to arbitrary paths on your filesystem  
outside of your doc root anyway.

Cheers,
Wincent

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  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 19:12                 ` Mike
  2008-01-17 21:05               ` Martin Langhoff
  2008-01-18  8:41               ` Andreas Ericsson
  4 siblings, 2 replies; 65+ messages in thread
From: Jeff King @ 2008-01-17 15:17 UTC (permalink / raw)
  To: Mike; +Cc: Linus Torvalds, git

On Thu, Jan 17, 2008 at 12:42:28AM -0500, Mike wrote:

> If we end up having to write a special "publisher" app to move files from 
> dev to live, then it will only be because of those damn .git directories.  
> More likely we'd add some exclusions into an rsync wrapper, I guess. And 
> then still worry about tarring up the docroot (not all of which is 
> gitted).  And then worry that some young developer on the team might SCP a 
> directory's contents and he didn't notice that .git dir because it doesn't 
> show up under "ls" or the "ll" alias.

What is it that you want? You're worried about .git directories. Fine.
There have been _many_ responses suggesting solutions, including:

  - having a deployment step which does the right thing
  - moving .git away, and using --git-dir or GIT_DIR to specify it
    manually
  - moving .git away, using core.worktree, and doing git operations from
    the repo directory
  - moving .git away, and having your shell automagically update GIT_DIR
    based on your current directory
  - moving .git away, wrapping 'git' with a script that sets GIT_DIR
    according to some mapping (I think somebody mentioning just mapping
    /path/to/tree to /var/git/path/to/tree or similar, but obviously you
    could make a custom mapping in a hard-coded file).

You don't seem happy with any of those. But the fact remains that the
git repo has to be stored _somewhere_, and when you run git, there needs
to be some mapping telling it which git repo matches your working
directory. So how _do_ you want to specify that mapping? 

-Peff

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17 15:17               ` Jeff King
@ 2008-01-17 17:36                 ` Linus Torvalds
  2008-01-17 17:49                   ` Johannes Schindelin
  2008-01-17 19:12                 ` Mike
  1 sibling, 1 reply; 65+ messages in thread
From: Linus Torvalds @ 2008-01-17 17:36 UTC (permalink / raw)
  To: Jeff King, Junio C Hamano; +Cc: Mike, Git Mailing List



On Thu, 17 Jan 2008, Jeff King wrote:
> 
> You don't seem happy with any of those. But the fact remains that the
> git repo has to be stored _somewhere_, and when you run git, there needs
> to be some mapping telling it which git repo matches your working
> directory. So how _do_ you want to specify that mapping? 

Ok, here's the ugliest idea *ever*:

We could actually use POSIX extended attributes (or whatever 
system-specific version of it a particular filesystem supports) for people 
who *really* don't want to pollute their file structure.

I know, I know, it's horrible. It's one of those things that would 
actually be reqlly convenient (and probably even pretty easy to 
implement), but is also going to be *really* subtle when it breaks.

But I bet some people would like it. I personally tend to hate extended 
attributes (they tend to have serious problems with anything that moves 
things around or backs them up - especially across filesystem boundaries), 
but there is no question that they can't be convenient to hide 
information.

Anyway, here's a really stupid patch. It kind of works, but it has no way 
to turn this off.

On at least Linux, with this you can do something like

	.. start off with a git directory ..
	mv .git /external/git/location
	setfattr -n user.git-dir -v /external/git/location .

and now that "user.git-dir" thing acts as a kind of invisible "symlink" to 
the external git directory.

Not exactly heavily tested, and I don't know how portable the whole xattr 
thing is (ie I know OS X has file attributes, I just don't know if the 
interface is at all similar).

I don't like extended attributes myself, but this patch really is pretty 
simple and perhaps useful.

			Linus

---
 setup.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/setup.c b/setup.c
index adede16..97865f4 100644
--- a/setup.c
+++ b/setup.c
@@ -1,5 +1,6 @@
 #include "cache.h"
 #include "dir.h"
+#include <attr/xattr.h>
 
 static int inside_git_dir = -1;
 static int inside_work_tree = -1;
@@ -302,6 +303,9 @@ const char *setup_git_directory_gently(int *nongit_ok)
 	 */
 	offset = len = strlen(cwd);
 	for (;;) {
+		int attr_len;
+		static char git_dir[PATH_MAX];
+
 		if (is_git_directory(DEFAULT_GIT_DIR_ENVIRONMENT))
 			break;
 		if (is_git_directory(".")) {
@@ -312,6 +316,14 @@ const char *setup_git_directory_gently(int *nongit_ok)
 			check_repository_format_gently(nongit_ok);
 			return NULL;
 		}
+		attr_len = getxattr(".", "user.git-dir", git_dir, sizeof(git_dir)-1);
+		if (attr_len > 0) {
+			git_dir[attr_len] = 0;
+			if (is_git_directory(git_dir)) {
+				setenv(GIT_DIR_ENVIRONMENT, git_dir, 1);
+				break;
+			}
+		}
 		chdir("..");
 		do {
 			if (!offset) {

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17 17:36                 ` Linus Torvalds
@ 2008-01-17 17:49                   ` Johannes Schindelin
  2008-01-17 18:02                     ` Linus Torvalds
  0 siblings, 1 reply; 65+ messages in thread
From: Johannes Schindelin @ 2008-01-17 17:49 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Jeff King, Junio C Hamano, Mike, Git Mailing List

Hi,

On Thu, 17 Jan 2008, Linus Torvalds wrote:

> Ok, here's the ugliest idea *ever*:

Okay, you won.

> diff --git a/setup.c b/setup.c
> index adede16..97865f4 100644
> --- a/setup.c
> +++ b/setup.c
> @@ -1,5 +1,6 @@
>  #include "cache.h"
>  #include "dir.h"
> +#include <attr/xattr.h>
>  
>  static int inside_git_dir = -1;
>  static int inside_work_tree = -1;
> @@ -302,6 +303,9 @@ const char *setup_git_directory_gently(int *nongit_ok)
>  	 */
>  	offset = len = strlen(cwd);
>  	for (;;) {
> +		int attr_len;
> +		static char git_dir[PATH_MAX];
> +
>  		if (is_git_directory(DEFAULT_GIT_DIR_ENVIRONMENT))
>  			break;
>  		if (is_git_directory(".")) {
> @@ -312,6 +316,14 @@ const char *setup_git_directory_gently(int *nongit_ok)
>  			check_repository_format_gently(nongit_ok);
>  			return NULL;
>  		}
> +		attr_len = getxattr(".", "user.git-dir", git_dir, sizeof(git_dir)-1);
> +		if (attr_len > 0) {
> +			git_dir[attr_len] = 0;
> +			if (is_git_directory(git_dir)) {
> +				setenv(GIT_DIR_ENVIRONMENT, git_dir, 1);
> +				break;

What's this break all about?

> +			}
> +		}
>  		chdir("..");
>  		do {
>  			if (!offset) {

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17 17:49                   ` Johannes Schindelin
@ 2008-01-17 18:02                     ` Linus Torvalds
  2008-01-17 18:10                       ` Johannes Schindelin
  0 siblings, 1 reply; 65+ messages in thread
From: Linus Torvalds @ 2008-01-17 18:02 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Jeff King, Junio C Hamano, Mike, Git Mailing List



On Thu, 17 Jan 2008, Johannes Schindelin wrote:
>
> > Ok, here's the ugliest idea *ever*:
> 
> Okay, you won.

"I would like to thank the Academy for giving me this honor. I couldn't 
 have done this without my parents, my teachers in high school, and the 
 girl next-door.."

> > +		attr_len = getxattr(".", "user.git-dir", git_dir, sizeof(git_dir)-1);
> > +		if (attr_len > 0) {
> > +			git_dir[attr_len] = 0;
> > +			if (is_git_directory(git_dir)) {
> > +				setenv(GIT_DIR_ENVIRONMENT, git_dir, 1);
> > +				break;
> 
> What's this break all about?

Without the break, it will consider it a failure, and try to go up the 
directory structure ("..") to find the next thing.

In other words, that "break" is exactly the same break as the one just a 
few lines earlier:

                if (is_git_directory(DEFAULT_GIT_DIR_ENVIRONMENT))
                        break;

ie if we found a good git directory, we want to use it.

		Linus

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17 18:02                     ` Linus Torvalds
@ 2008-01-17 18:10                       ` Johannes Schindelin
  0 siblings, 0 replies; 65+ messages in thread
From: Johannes Schindelin @ 2008-01-17 18:10 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Jeff King, Junio C Hamano, Mike, Git Mailing List

Hi,

On Thu, 17 Jan 2008, Linus Torvalds wrote:

> On Thu, 17 Jan 2008, Johannes Schindelin wrote:
> >
> > > Ok, here's the ugliest idea *ever*:
> > 
> > Okay, you won.
> 
> "I would like to thank the Academy for giving me this honor. I couldn't
>  have done this without my parents, my teachers in high school, and the 
>  girl next-door.."

You forgot the tears.

> > > +		attr_len = getxattr(".", "user.git-dir", git_dir, sizeof(git_dir)-1);
> > > +		if (attr_len > 0) {
> > > +			git_dir[attr_len] = 0;
> > > +			if (is_git_directory(git_dir)) {
> > > +				setenv(GIT_DIR_ENVIRONMENT, git_dir, 1);
> > > +				break;
> > 
> > What's this break all about?
> 
> Without the break, it will consider it a failure, and try to go up the 
> directory structure ("..") to find the next thing.

Ah, but of course.  For some reason I expected this code outside of the 
loop, but it _has_ to be inside.

Thanks for enlightening a poor schmock,
Dscho

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17 15:17               ` Jeff King
  2008-01-17 17:36                 ` Linus Torvalds
@ 2008-01-17 19:12                 ` Mike
  2008-01-17 19:20                   ` Johannes Schindelin
                                     ` (2 more replies)
  1 sibling, 3 replies; 65+ messages in thread
From: Mike @ 2008-01-17 19:12 UTC (permalink / raw)
  To: Jeff King; +Cc: git



Jeff King wrote:
>   - moving .git away, and using --git-dir or GIT_DIR to specify it
>     manually

Actually, git-dir is sufficient for our needs, thanks.  I haven't been 
able to get my hands on man pages for git until this morning.  (If you 
look near the top of this thread you see that I don't have the git man 
pages because apparently CentOS (and probably RHEL too), doesn't include 
them when you "yum install git").

Linus posted a response about deployment and development being 
separated, so I had to point out why that doesn't work for web apps in 
interpreted languages.

You guys might want to complain to the CentOS (and/or RHEL) maintainers 
to have them put the man pages into the yum rpm. Er or whoever maintains 
that (they maintain that rpm, right? I don't know).

Thanks, Jeff,

mike

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17 19:12                 ` Mike
@ 2008-01-17 19:20                   ` Johannes Schindelin
  2008-01-17 20:00                     ` Mike
  2008-01-18  7:52                   ` David Symonds
  2008-01-22 10:27                   ` Russ Dill
  2 siblings, 1 reply; 65+ messages in thread
From: Johannes Schindelin @ 2008-01-17 19:20 UTC (permalink / raw)
  To: Mike; +Cc: Jeff King, git

Hi,

On Thu, 17 Jan 2008, Mike wrote:

> I haven't been able to get my hands on man pages for git until this 
> morning.

Googling for "git man pages" gives you 

http://www.kernel.org/pub/software/scm/git/docs/

as first hit.  That should work even on a bare-bones CentOS.

Hth,
Dscho

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17 19:20                   ` Johannes Schindelin
@ 2008-01-17 20:00                     ` Mike
  2008-01-17 20:08                       ` Johannes Schindelin
  0 siblings, 1 reply; 65+ messages in thread
From: Mike @ 2008-01-17 20:00 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git



Johannes Schindelin wrote:
> Hi,
> 
> On Thu, 17 Jan 2008, Mike wrote:
> 
>> I haven't been able to get my hands on man pages for git until this 
>> morning.
> 
> Googling for "git man pages" gives you 
> 
> http://www.kernel.org/pub/software/scm/git/docs/
> 
> as first hit.  That should work even on a bare-bones CentOS.

Yea, I had googled for "git manpages". Which doesn't.

mike

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17 20:00                     ` Mike
@ 2008-01-17 20:08                       ` Johannes Schindelin
  2008-01-17 20:49                         ` Mike
  0 siblings, 1 reply; 65+ messages in thread
From: Johannes Schindelin @ 2008-01-17 20:08 UTC (permalink / raw)
  To: Mike; +Cc: git

Hi,

On Thu, 17 Jan 2008, Mike wrote:

> Johannes Schindelin wrote:
> 
> > On Thu, 17 Jan 2008, Mike wrote:
> > 
> > > I haven't been able to get my hands on man pages for git until this 
> > > morning.
> > 
> > Googling for "git man pages" gives you 
> > http://www.kernel.org/pub/software/scm/git/docs/
> > as first hit.  That should work even on a bare-bones CentOS.
> 
> Yea, I had googled for "git manpages". Which doesn't.

It does here.  Just checked.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17 20:08                       ` Johannes Schindelin
@ 2008-01-17 20:49                         ` Mike
  2008-01-17 20:57                           ` Johannes Schindelin
  0 siblings, 1 reply; 65+ messages in thread
From: Mike @ 2008-01-17 20:49 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git



Johannes Schindelin wrote:
> Hi,
> 
> On Thu, 17 Jan 2008, Mike wrote:
> 
>> Johannes Schindelin wrote:
>>
>>> On Thu, 17 Jan 2008, Mike wrote:
>>>
>>>> I haven't been able to get my hands on man pages for git until this 
>>>> morning.
>>> Googling for "git man pages" gives you 
>>> http://www.kernel.org/pub/software/scm/git/docs/
>>> as first hit.  That should work even on a bare-bones CentOS.
>> Yea, I had googled for "git manpages". Which doesn't.
> 
> It does here.  Just checked.


http://www.google.com/search?hl=en&q=%22git+manpages%22&btnG=Google+Search

The first result I get is :

http://www.cygwin.com/ml/cygwin/2008-01/msg00101.html

And nothing on the first or second page seems to point to git manpages.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17 20:49                         ` Mike
@ 2008-01-17 20:57                           ` Johannes Schindelin
  2008-01-17 21:00                             ` Mike
  0 siblings, 1 reply; 65+ messages in thread
From: Johannes Schindelin @ 2008-01-17 20:57 UTC (permalink / raw)
  To: Mike; +Cc: git

Hi,

On Thu, 17 Jan 2008, Mike wrote:

> Johannes Schindelin wrote:
> 
> > On Thu, 17 Jan 2008, Mike wrote:
> > 
> > > Johannes Schindelin wrote:
> > > 
> > > > On Thu, 17 Jan 2008, Mike wrote:
> > > > 
> > > > > I haven't been able to get my hands on man pages for git until 
> > > > > this morning.
> > > > Googling for "git man pages" gives you 
> > > > http://www.kernel.org/pub/software/scm/git/docs/ as first hit.  
> > > > That should work even on a bare-bones CentOS.
> > > Yea, I had googled for "git manpages". Which doesn't.
> > 
> > It does here.  Just checked.
> 
> http://www.google.com/search?hl=en&q=%22git+manpages%22&btnG=Google+Search
> 
> The first result I get is :
> 
> http://www.cygwin.com/ml/cygwin/2008-01/msg00101.html
> 
> And nothing on the first or second page seems to point to git manpages.

http://www.google.co.uk/search?q=git+manpages&ie=utf-8&oe=utf-8&rls=org.mozilla:de:official&client=firefox-a

And the first hit is what I said.

Hth,
Dscho

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17 20:57                           ` Johannes Schindelin
@ 2008-01-17 21:00                             ` Mike
  2008-01-17 21:05                               ` Johannes Schindelin
  0 siblings, 1 reply; 65+ messages in thread
From: Mike @ 2008-01-17 21:00 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git



Johannes Schindelin wrote:
> Hi,
> 
> On Thu, 17 Jan 2008, Mike wrote:
> 
>> Johannes Schindelin wrote:
>>
>>> On Thu, 17 Jan 2008, Mike wrote:
>>>
>>>> Johannes Schindelin wrote:
>>>>
>>>>> On Thu, 17 Jan 2008, Mike wrote:
>>>>>
>>>>>> I haven't been able to get my hands on man pages for git until 
>>>>>> this morning.
>>>>> Googling for "git man pages" gives you 
>>>>> http://www.kernel.org/pub/software/scm/git/docs/ as first hit.  
>>>>> That should work even on a bare-bones CentOS.
>>>> Yea, I had googled for "git manpages". Which doesn't.
>>> It does here.  Just checked.
>> http://www.google.com/search?hl=en&q=%22git+manpages%22&btnG=Google+Search
>>
>> The first result I get is :
>>
>> http://www.cygwin.com/ml/cygwin/2008-01/msg00101.html
>>
>> And nothing on the first or second page seems to point to git manpages.
> 
> http://www.google.co.uk/search?q=git+manpages&ie=utf-8&oe=utf-8&rls=org.mozilla:de:official&client=firefox-a
> 
> And the first hit is what I said.
> 
> Hth,
> Dscho
> 


You didn't try my url, did you.

I had put "git manpages" in quotes.  Google searches differently with 
quotes and without.

Try my url next time. That's why I provide it.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17  5:42             ` Mike
                                 ` (2 preceding siblings ...)
  2008-01-17 15:17               ` Jeff King
@ 2008-01-17 21:05               ` Martin Langhoff
  2008-01-18  8:41               ` Andreas Ericsson
  4 siblings, 0 replies; 65+ messages in thread
From: Martin Langhoff @ 2008-01-17 21:05 UTC (permalink / raw)
  To: Mike; +Cc: Linus Torvalds, git

On Jan 17, 2008 6:42 PM, Mike <fromlists@talkingspider.com> wrote:
> With PHP, Python, and Ruby, the development is the deployment.  The

Plenty here use git for web apps.

> There's a fundamental "best practice" of web development being violated
> here- keep your docroots clean, only put stuff in them that should go
> live (or should eventually go live when ready).  Other files should not
> live under docroot.

*First* - people here have pointed out various ways of doing this with
the GIT_DIR env variable. Nothing is being violated.

In terms of the best-practice you mention of publishing only the
reachable files, your checkout is one directory higher. The top-level
dir of your checkout should look like:

  .git
  htdocs # this is published
  conf # configuration files
  lib # libraries

if you publish the top of your checkout, your libraries sit in there.
Along your .git and your config files.

> Among the reasons for that is security.  If one of those .git dirs does
> slip out and go live, it's a *huge* *gaping* *security* *hole*.  You

Well -- I routinely add .git CVS and .svn to http.conf with a
directorymatch clause to prevent access to them. Just in case,
belts-and-suspenders.

> If we end up having to write a special "publisher" app to move files
> from dev to live, then it will only be because of those damn .git
> directories.

Nah! It'll be because of a long list of things, including temp files,
backup files that developers make, all sorts of things in your *work*
dir that you really need there and you really should _not_ have in the
production checkout.

BTW, I also add common patterns for those temp files to httpd.conf to
restrict access to them.

> Maybe git just isn't intended to be used for anything besides compiled
> languages like c?  Or maybe just not for web app development?

C produces a ton of intermediary files that git never commits, and C
projects usually get an "installer" too (debian's apt/dpkg, rpm, etc).
Writing PHP/Ruby/Python produces less "intermediary" files, but it
still creates some, so there's plenty of good reasons to have an
"installer".

GIT does the SCM thing, but for handling your deployment you need
something else. I normally use scripts that use git internally,
written in make, perl or shell.

cheers,



martin

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17 21:00                             ` Mike
@ 2008-01-17 21:05                               ` Johannes Schindelin
  0 siblings, 0 replies; 65+ messages in thread
From: Johannes Schindelin @ 2008-01-17 21:05 UTC (permalink / raw)
  To: Mike; +Cc: git

Hi,

On Thu, 17 Jan 2008, Mike wrote:

> I had put "git manpages" in quotes.

Why on earth?

> Try my url next time. That's why I provide it.

Try a better url next time.  Some url like mine.  A url which works.

Have a nice life,
Dscho

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17 19:12                 ` Mike
  2008-01-17 19:20                   ` Johannes Schindelin
@ 2008-01-18  7:52                   ` David Symonds
  2008-01-22 10:27                   ` Russ Dill
  2 siblings, 0 replies; 65+ messages in thread
From: David Symonds @ 2008-01-18  7:52 UTC (permalink / raw)
  To: Mike; +Cc: Jeff King, git

On Jan 18, 2008 6:12 AM, Mike <fromlists@talkingspider.com> wrote:
>
> You guys might want to complain to the CentOS (and/or RHEL) maintainers
> to have them put the man pages into the yum rpm. Er or whoever maintains
> that (they maintain that rpm, right? I don't know).

Maybe *you* might want to, since you were the one affected, and
everyone else here is busy doing other things.


Dave.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17  5:42             ` Mike
                                 ` (3 preceding siblings ...)
  2008-01-17 21:05               ` Martin Langhoff
@ 2008-01-18  8:41               ` Andreas Ericsson
  4 siblings, 0 replies; 65+ messages in thread
From: Andreas Ericsson @ 2008-01-18  8:41 UTC (permalink / raw)
  To: Mike; +Cc: Linus Torvalds, git

Mike wrote:
> 
> 
> Linus Torvalds wrote:
> 
>> Some people don't split this up, and they tend to make horrible 
>> horrible mistakes, like checking in the *results* of the 
>> post-processing too (ie binary result blobs that can be regenerated 
>> from the other files), because they don't make a clear separation 
>> between the parts they do development on, and the end result.
> 
> Honestly, I think your mode of thinking is centered around compiled 
> languages and linux app(/kernel) development.  The web app 
> development/deployment model is very different.
> 
> With PHP, Python, and Ruby, the development is the deployment.  The 
> source is the output.  You can't develop web apps in those languages 
> unless the source files you're working on are under the doc root of your 
> development server.   "the parts they do development on" and "the end 
> result" *are* the same files.
> 

We develop several different PHP packages. We have a test-server where
pandemonium reings with regards to .git directories and which branches
are checked out where. We also have a release process, and .git dirs
*never* end up on production servers.

The release-process is this: "git tag -s $tag_name; git push $tag_name".
The update-hook then marks the repo as having a new release and a cron-
job, running every 5 minutes, takes care of updating our production
servers. It took me all of 30 minutes to hack up, and not only does it
make sure we never publish the .git directory, it also makes it really,
really easy for <insert-non-git-savvy-customer-X> to report a version in
which he or she has spotted a bug.

> 
> There's a fundamental "best practice" of web development being violated 
> here- keep your docroots clean, only put stuff in them that should go 
> live (or should eventually go live when ready).  Other files should not 
> live under docroot.
> 

You accomplish that by making sure only stable and signed versions hit
the deployment server(s). Manual scp/rsync/ftp-mirroring of the testing
server's docroot is just plain stupid.

> 
> Maybe git just isn't intended to be used for anything besides compiled
> languages like c?  Or maybe just not for web app development?
> 

Well, it was originally intended to manage the Linux kernel, but it's
written in such a way as to be capable of competently manage just about
anything.


> Finally, to this statement:
> 
>> It's almost always a bad idea to develop in the tree that is also where
>> you "export" things, and if you find git annoying in this respect, ask
>> yourself why pretty much *every*single*scm*out*there* makes their
>> infrastructure even more noticeable (eg CVS subdirectories in every 
> single
>> directory etc)
> 
> I don't think that pointing at other SCM's practices as the authority is 
> the stance you really want to take. I can direct you to a video of a 
> speech by a brilliant guy, in front of some googlers, where he explains 
> that the entire reason he started the git project is because of the 
> problems with "*every*single*scm*out*there*".
> 

Those problems aren't "all the scm's in the world store their meta-data
somewhere!" though, and the ability to tar up a working-tree and get the
git-directory too is not always a bad thing. It's just your release
process that needs to eliminate the manual step there so you never copy
it by accident. That's why people write small and simple scripts though.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: I don't want the .git directory next to my code.
  2008-01-17 19:12                 ` Mike
  2008-01-17 19:20                   ` Johannes Schindelin
  2008-01-18  7:52                   ` David Symonds
@ 2008-01-22 10:27                   ` Russ Dill
  2 siblings, 0 replies; 65+ messages in thread
From: Russ Dill @ 2008-01-22 10:27 UTC (permalink / raw)
  To: Mike; +Cc: Jeff King, git

> Linus posted a response about deployment and development being
> separated, so I had to point out why that doesn't work for web apps in
> interpreted languages.
>

If your primary concern is preventing information leakage, then a
publish model is absolutely what you want. You definetely don't want
some random intermediary file out on the server, or some file that was
never checked into source control.

By publish, I don't just mean to the public server, I also mean to
whatever development roots you have.

With a good publishing model and a good SCM, you also get
reproducibility and testability as well. Its easy to ensure that what
is checked into source control is what you are testing, and its easy
to rollback production servers to a different version.

^ permalink raw reply	[flat|nested] 65+ messages in thread

end of thread, other threads:[~2008-01-22 10:28 UTC | newest]

Thread overview: 65+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).