git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC] On watchman support

From
Torsten Bögershausen <tboegi@web.de>
Date
Nov 15, 2014, 07:24 UTC
Message-ID
<5466FFBC.6020207@web.de>
In-Reply-To
<CACsJy8AKsvL2XcBMGG1Jy_W2KaOCuYm16Ffk529KDOARr68XNQ@mail.gmail.com>
On 11/13/2014 01:22 PM, Duy Nguyen wrote:
Show 33 quoted lines
> 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.

Previous: Duy NguyenNext: David Turner
Message 4 of 15 in “[RFC] On watchman support”
  1. Duy NguyenNov 11, 2014
  2. Torsten BögershausenNov 13, 2014
  3. Duy NguyenNov 13, 2014
  4. Torsten BögershausenNov 15, 2014
  5. David TurnerNov 18, 2014
  6. Duy NguyenNov 18, 2014
  7. David TurnerNov 18, 2014
  8. Junio C HamanoNov 18, 2014
  9. David TurnerNov 18, 2014
  10. Junio C HamanoNov 18, 2014
  11. Jeff KingNov 19, 2014
  12. Duy NguyenNov 28, 2014
  13. David TurnerDec 1, 2014
  14. Paolo CiarrocchiNov 19, 2014
  15. David TurnerNov 19, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.