git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Torsten Bögershausen" <tboegi@web.de>
To: "Duy Nguyen" <pclouds@gmail.com>, "Torsten Bögershausen" <tboegi@web.de>
Cc: Git Mailing List <git@vger.kernel.org>,
	David Turner <dturner@twopensource.com>
Subject: Re: [RFC] On watchman support
Date: Sat, 15 Nov 2014 08:24:44 +0100	[thread overview]
Message-ID: <5466FFBC.6020207@web.de> (raw)
In-Reply-To: <CACsJy8AKsvL2XcBMGG1Jy_W2KaOCuYm16Ffk529KDOARr68XNQ@mail.gmail.com>

On 11/13/2014 01:22 PM, Duy Nguyen wrote:
> On Thu, Nov 13, 2014 at 12:05 PM, Torsten Bögershausen <tboegi@web.de> wrote:
>> From a Git user perspective it could be good to have something like this:
>>
>> a) git status -u
>> b) git status -uno
>> c) git status -umtime
>> d) git status -uwatchman
>>
>> We know that a) and b) already exist.
>> c) Can be convenient to have, in order to do benchmarking and testing.
>>   When the UNTR extension is not found, Git can give an error,
>>   saying something like this:
>>   No mtime information found, use "git update-index --untracked-cache"
>> d) does not yet exist
>>
>> Of course we may want to configure the default for "git status" in a default variable,
>> like status.findUntrackedFiles, which can be empty "", "mtime" or "watchman",
>> and we may add other backends later.
> While "git status" is in the spotlight, these optimizations have wider
> impact. Faster index read/refresh/write helps the majority of
> commands. Faster untracked listing hits git-status, git-add,
> git-commit -A... This is why I go with environment variable for
> temporarily disabling something, or we'll need many config and command
> line options, one per command.
>
>> A short test showed that watchman compiles under Mac OS.
>> The patch did not compile out of the box (both Git and watchman declare
>> there own version of usage(), some C99 complaints from the compiler in watchman,
>> nothing that can not be fixed easily)
> Yeah it's not perfect. It's mainly to show speeding up refresh with
> watchman could be done easily and with low impact
>
>> I will test the mtime patch under networked file systems the next weeks.


Thinks become to get a little bit clearer.
What I can understand is that we have 2 different "update-helpers" for Git,
thanks for that.

just in case there is re-roll, does the following makes sense:
We want to enable them (probably only one at a time) either by command line or
persistent in a repo.

As I think we have 2 different update helpers
(and may be more in the future)
GIT_UPDATE_HELPER=dirmtime git status
GIT_UPDATE_HELPER=watchman git status
GIT_UPDATE_HELPER=none git status

of course we want to be able to configure it:
git config core.updatehelper dirmtime


After configuring we may want to override it:
GIT_UPDATE_HELPER=none git status
or
git -c core.updatehelper=none status

> Hmm.. you remind me mtime series may have this as an advantage over watchman..
I had the time to do a short test, sharing a copy of git.git under NFS:
The time for git status dropped from 0.4 seconds to 0.15 seconds or so.
Very nice.
The next test will be to share the same repo under samba to Windows
and Mac OS and see how this works.

  reply	other threads:[~2014-11-15  7:25 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-11 12:49 [RFC] On watchman support Duy Nguyen
2014-11-13  5:05 ` Torsten Bögershausen
2014-11-13 12:22   ` Duy Nguyen
2014-11-15  7:24     ` Torsten Bögershausen [this message]
2014-11-18  0:25 ` David Turner
2014-11-18 10:48   ` Duy Nguyen
2014-11-18 18:12     ` David Turner
2014-11-18 20:55       ` Junio C Hamano
2014-11-18 21:12         ` David Turner
2014-11-18 21:26           ` Junio C Hamano
2014-11-19  1:46             ` Jeff King
2014-11-28 11:13       ` Duy Nguyen
2014-12-01 20:45         ` David Turner
2014-11-19 15:26   ` Paolo Ciarrocchi
2014-11-19 16:43     ` David Turner

Reply instructions:

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

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

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

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

  git send-email \
    --in-reply-to=5466FFBC.6020207@web.de \
    --to=tboegi@web.de \
    --cc=dturner@twopensource.com \
    --cc=git@vger.kernel.org \
    --cc=pclouds@gmail.com \
    /path/to/YOUR_REPLY

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

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is 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).