On Mon, Apr 3, 2023 at 2:40 PM David Bremner <[email protected]> wrote:
>
> David Bremner <[email protected]> writes:
>
> > Indeed that speeds up the initial clone on this machine from 39 minutes
> > (I switched machines) to 30s. I will play with it a bit more, and report
> > back.
>
> It's not a showstopper, but "git pull" takes about 1/2 the wall time
> (about 2/3 of the CPU time) of the original clone, even if there is only
> one tag changed.
Yes, every fetch should take as much time as the original clone.
> Two potential improvements I can think of.
>
> - notmuch-dump.c calls notmuch_query_set_sort (query,
> NOTMUCH_SORT_UNSORTED). I think I managed to do this (diff below),
> but performance gain was negligible.
OK.
> - Since you cache the lastmod value, you should be able to use it in a
> query. This does make a big difference in my experiments. I had to
> remove the 'deleteall' (otherwise only the changed messages are left
> in the git repo). I'm not 100% this is correct, hopefully you see
> quicker than I. In any case the lastmod query is what notmuch-git
> uses.
That should work to update existing tags, but how are we going to
detect if a message has disappeared? Or is that not a thing?
> diff --git a/git-remote-nm b/git-remote-nm
> index c668b38..cabea26 100755
> --- a/git-remote-nm
> +++ b/git-remote-nm
> @@ -148,9 +148,11 @@ def wr_import(ref)
> wr_data("lastmod: %d\n" % ($lastmod || 0))
> wr_l 'from refs/notmuch/master^0' if $lastmod
>
> - wr_l 'deleteall'
> +# wr_l 'deleteall'
>
> - $db.query('').search_messages.each do |msg|
> + $query=$db.query("lastmod:%d.." % ($lastmod || 0) )
Does "lastmod:0.." get all the revisions? If so, it might make sense
to set $lastmod to 0 initially.
Then we could unconditionally do:
$db.query('lastmod:%d..' % $lastmod, sort: Notmuch::SORT_UNSORTED)
--
Felipe Contreras
_______________________________________________
notmuch mailing list -- [email protected]
To unsubscribe send an email to [email protected]