From: Bevan Watkiss Date: Thu, 07 May 2009 18:48:20 GMT Subject: RE: Message-ID: In-Reply-To: <81b0412b0905071118q46eb98b0k20f148e6a179a81f@mail.gmail.com> Still took 11 minutes. The idea I've come up with today is something along the lines of git fetch origin/master git log --name-only .. | xargs git checkout -f -- This should work to quickly keep my files upto date, and I can then periodically pull properly to move the HEAD. Thanks for the info Bevan -----Original Message----- From: Alex Riesen [mailto:raa.lkml@gmail.com] Sent: May 7, 2009 2:18 PM To: Bevan Watkiss Cc: git@vger.kernel.org Subject: Re: 2009/5/7 Bevan Watkiss : > It's the looking for local changes I'm trying to avoid.  Doing a reset still > goes over the tree, which isn't helpful. The stat(2) is slow? Then try setting core.ignoreStat (see manpage of git config) to true: git config core.ignorestat true and read below. > Basically I have a copy of my tree where only git can write to it, so I know > the files are right.  The NAS box I have the tree on is slow, so reading the > tree adds about 10 minutes to the process when I only want to update a few > files. Try "git checkout origin/master". It uses index and shouldn't checkout files which are uptodate with the index. And actually, git merge should fast-forward, in your case and will update just the changed files... Of course, you can always compare HEAD and origin/master, and resolve the changes yourself (see git diff -z --name-status), but it is unlikely to be any faster.