From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/83231 Path: news.gmane.org!not-for-mail From: David Engster Newsgroups: gmane.emacs.gnus.general Subject: Snappy low-bandwidth nnimap, part II Date: Sun, 26 May 2013 16:28:03 +0200 Message-ID: <87li71x1cc.fsf@randomsample.de> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1369578595 21870 80.91.229.3 (26 May 2013 14:29:55 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 26 May 2013 14:29:55 +0000 (UTC) To: ding@gnus.org Original-X-From: ding-owner+M31497@lists.math.uh.edu Sun May 26 16:29:56 2013 Return-path: Envelope-to: ding-account@gmane.org Original-Received: from util0.math.uh.edu ([129.7.128.18]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UgbxL-00017K-BO for ding-account@gmane.org; Sun, 26 May 2013 16:29:55 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu) by util0.math.uh.edu with smtp (Exim 4.63) (envelope-from ) id 1Ugbvi-0007og-2M; Sun, 26 May 2013 09:28:14 -0500 Original-Received: from mx1.math.uh.edu ([129.7.128.32]) by util0.math.uh.edu with esmtps (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1Ugbve-0007oO-LN for ding@lists.math.uh.edu; Sun, 26 May 2013 09:28:10 -0500 Original-Received: from quimby.gnus.org ([80.91.231.51]) by mx1.math.uh.edu with esmtps (TLSv1:AES256-SHA:256) (Exim 4.76) (envelope-from ) id 1Ugbvc-0000Ee-KK for ding@lists.math.uh.edu; Sun, 26 May 2013 09:28:09 -0500 Original-Received: from randomsample.de ([83.169.19.17]) by quimby.gnus.org with esmtp (Exim 4.72) (envelope-from ) id 1Ugbva-0007CH-4K for ding@gnus.org; Sun, 26 May 2013 16:28:06 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=randomsample.de; s=a; h=Content-Type:MIME-Version:Message-ID:Date:Subject:To:From; bh=qQI/qWPPFOHhrQVR0zFDmArKkwJFW2wYVcQBT9ZZ/qE=; b=APugE45G0+vsHthsucylHDsbPtd9yQ+bZnOcJ+QnmCYjT2uS2/vYY7x2HcXt91UMBG/VVkEXa6dsLVbERO/nRi5iyyWLWoiEAodNdQ/Dz+90fE4Qp4JXaxgjdny3qXtU; Original-Received: from dslc-082-082-164-157.pools.arcor-ip.net ([82.82.164.157] helo=spaten) by randomsample.de with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1UgbvZ-0007sc-Eq for ding@gnus.org; Sun, 26 May 2013 16:28:05 +0200 User-Agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.3 (gnu/linux) Mail-Copies-To: never Mail-Followup-To: ding@gnus.org X-Spam-Score: -3.0 (---) List-ID: Precedence: bulk Xref: news.gmane.org gmane.emacs.gnus.general:83231 Archived-At: --=-=-= Content-Type: text/plain Last year I started the following thread: http://thread.gmane.org/gmane.emacs.gnus.general/82121 In a nutshell: I was on vacation with a horrible mobile connection, and nnimap kept doing those 'initial syncs', downloading hundreds of kb. Nobody really knew what was going on, Lars only mentioned that it was probably due to 'unexist' handling. Since I'm doing my vacation at the same place this year, I just had to debug this. Turns out it is indeed due to unexist handling using QRESYNC. The problem seems to be this: Say you have a group 'ding' and you refresh it on a QRESYNC-enabled server. Gnus will look at the VANISHED answer and mark those articles as 'unexist'. However, if the group does not have any vanished articles, the group's info will just contain '(unexist)' in its marks (hit 'G E' to see it). Now, when you enter this group and simply exit it again, you'll see that this '(unexist)' range was deleted, which kinda makes sense because, well, its an empty range, so why keep it? The problem is just that nnimap-retrieve-group-data-early will now think this group was not synced before and retrieve *all* flags instead of just the last 100, which is what this 'doing initial sync' really means. So the fix is pretty simple: Keep empty unexist ranges in the group's info. The attached patch does that, but I'm not sure if this really is the best solution, or if maybe this shouldn't be better fixed in nnimap-retrieve-group-data-early? -David --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=unexist-patch.diff diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index aaed1d1..cab303d 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -6067,7 +6067,8 @@ If SELECT-ARTICLES, only select those articles from GROUP." (gnus-active gnus-newsgroup-name) del)) (push (list del 'del (list (cdr type))) delta-marks)))) - (when list + (when (or list + (eq (cdr type) 'unexist)) (push (cons (cdr type) list) newmarked))) (when delta-marks --=-=-=--