Subject: Re: How do I stop git enumerating my working directory

From: Paul Gardiner <[email-masked]>
Date: Wed, 02 Jul 2008 15:47:43 +0100

Glenn Griffin wrote:
> On Tue, Jul 1, 2008 at 8:57 AM, Paul Gardiner <[email-masked]> wrote:
>> Hi,
>>
>> I'm a recent convert to git. I've been swapping over my projects
>> from cvs to git. The latest candidate for conversion is the
>> config files for my Linux server. I've been using cvs to record
>> all the config changes, and - mostly-automatically - to setup
>> new servers. Git will do a far better job, I think, but
>> I think I'm going to run into a problem: the root directory
>> of the server will be the working directory. Only relatively
>> few files will be under version control. How do I stop git
>> enumerating the whole drive whenever I do things like git-diff?
> 
> I'm doing a similar thing in my home directory where the vast majority of files
> are not being tracked, but only a select few are.  I've found that git
> automatically handles this case much better than other SCM's like subversion
> because of it's concept of the index.  Most of git's commands wont enumerate
> your directory they will first read the index to see what files it's interested
> in, and then do an lstat on those files to see which if any have changed.
> git-diff in particular should do this to my knowledge.  git-status is one of
> the few commands that will actually enumerate your directory to tell you which
> files are untracked, so long as you use status with care you will probably find
> you don't need to do anything special or even setup
> a .gitignore.
> 
> Like I said, that's my experience your's may vary.

Brilliant! I've now tried it and it does just as you say. I don't
need git-status so it's just fine. Thanks for the advice.

P.