From: Ben Peart <peartben@gmail•com>
To: git@vger•kernel.org
Subject: Re: Plugin mechanism(s) for Git?
Date: Fri, 15 Jul 2016 15:52:22 +0000 (UTC) [thread overview]
Message-ID: <loom.20160715T175103-45@post.gmane.org> (raw)
In-Reply-To: 20160715133208.GA22711@sigill.intra.peff.net
Jeff King <peff <at> peff.net> writes:
>
> On Fri, Jul 15, 2016 at 02:46:28PM +0200, Ævar Arnfjörð Bjarmason wrote:
>
> > On Fri, Jul 15, 2016 at 2:18 PM, Jeff King <peff <at> peff.net> wrote:
> > > Some features, like the index-helper, aren't quite so easy. One reason
> > > is that its data needs to persist as a cache between multiple git
> > > invocations. In general, I think it would be nice to solve that by
> > > communicating via on-disk files, rather than a running daemon (just
> > > because it has fewer moving parts). But that's only half of it for
> > > index-helper. It needs to monitor inotify while git isn't running at
> > > all; so it really _does_ need some kind of long-running daemon.
> >
> > This *may* have changed in the recent versions of the series, but I'm
> > fairly sure and for what it's worth to this discussion, that's not
> > what the index-helper does. It's there to keep the index file in
> > memory instead of reading it from disk.
> >
> > It can *also* if you "git update-index --watchman" spawn a watchman
> > daemon in the background, which is the thing that'll be doing the
> > inotify calls and needs to stay persistent, the index-helper then
> > communicates with the watchman daemon "what changed since X?" to
> > compute a new index when requested.
>
> Ah, yeah, you're right. Sorry for the confusion; I haven't actually
> followed the topic all that closely.
>
> -Peff
>
That's very close.
Index-helper currently keeps the index alive in memory and shares it with
git.exe via shm so it does need to persist as a daemon. Otherwise, it will have
to be run again and load the index from disk which pretty much defeats the
purpose. Currently, it times out after a prescribed time of not being used and
shuts down to just to free up the resources.
The watchman daemon needs to _always_ be running so that it can monitor the
working directory for changes and quickly provide the list of changed files and
directories to git. This currently happens via index-helper but could be
separated as the logic to use the data from watchman already exists in git. I
have an RFC out that does exactly that.
prev parent reply other threads:[~2016-07-15 15:52 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-15 6:46 Plugin mechanism(s) for Git? Christian Couder
2016-07-15 7:37 ` Lars Schneider
2016-07-15 16:18 ` Ben Peart
2016-07-15 16:47 ` Konstantin Khomoutov
2016-07-15 21:28 ` Eric Wong
2016-07-16 5:31 ` Duy Nguyen
2016-07-16 8:06 ` Jeff King
2016-07-15 8:04 ` Mike Hommey
2016-07-15 8:28 ` Junio C Hamano
2016-07-15 12:18 ` Jeff King
2016-07-15 12:46 ` Ævar Arnfjörð Bjarmason
2016-07-15 13:32 ` Jeff King
2016-07-15 15:52 ` Ben Peart [this message]
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=loom.20160715T175103-45@post.gmane.org \
--to=peartben@gmail$(echo .)com \
--cc=git@vger$(echo .)kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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