From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Lars Ljung Newsgroups: gmane.emacs.bugs Subject: bug#13547: svn annotate - incorrect previous/next revision Date: Fri, 25 Jan 2013 10:29:11 +0100 Message-ID: <51025067.7070204@matholka.se> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1359106213 4963 80.91.229.3 (25 Jan 2013 09:30:13 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 25 Jan 2013 09:30:13 +0000 (UTC) To: 13547@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Jan 25 10:30:31 2013 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TyfcE-00028W-Qa for geb-bug-gnu-emacs@m.gmane.org; Fri, 25 Jan 2013 10:30:31 +0100 Original-Received: from localhost ([::1]:56258 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tyfbx-0001PN-5d for geb-bug-gnu-emacs@m.gmane.org; Fri, 25 Jan 2013 04:30:13 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:59235) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tyfbm-0001Ed-Tv for bug-gnu-emacs@gnu.org; Fri, 25 Jan 2013 04:30:10 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tyfbf-0002xw-6S for bug-gnu-emacs@gnu.org; Fri, 25 Jan 2013 04:30:02 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:43178) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tyfbf-0002xq-39 for bug-gnu-emacs@gnu.org; Fri, 25 Jan 2013 04:29:55 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1Tyfbm-0001Y3-8R for bug-gnu-emacs@gnu.org; Fri, 25 Jan 2013 04:30:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ljung Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 25 Jan 2013 09:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 13547 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.13591061905907 (code B ref -1); Fri, 25 Jan 2013 09:30:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 25 Jan 2013 09:29:50 +0000 Original-Received: from localhost ([127.0.0.1]:48642 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Tyfba-0001XD-6m for submit@debbugs.gnu.org; Fri, 25 Jan 2013 04:29:50 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:47796) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TyfbX-0001X6-8b for submit@debbugs.gnu.org; Fri, 25 Jan 2013 04:29:48 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TyfbI-0002s5-JJ for submit@debbugs.gnu.org; Fri, 25 Jan 2013 04:29:39 -0500 Original-Received: from lists.gnu.org ([208.118.235.17]:36829) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyfbI-0002s1-Gl for submit@debbugs.gnu.org; Fri, 25 Jan 2013 04:29:32 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:59104) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyfbB-0000Zc-E9 for bug-gnu-emacs@gnu.org; Fri, 25 Jan 2013 04:29:32 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tyfb5-0002pn-42 for bug-gnu-emacs@gnu.org; Fri, 25 Jan 2013 04:29:25 -0500 Original-Received: from mail2.surf-town.net ([212.97.132.42]:54595 helo=mailgw14.surf-town.net) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tyfb4-0002pW-Sj for bug-gnu-emacs@gnu.org; Fri, 25 Jan 2013 04:29:19 -0500 Original-Received: by mailgw14.surf-town.net (Postfix, from userid 65534) id CA7EE3E314; Fri, 25 Jan 2013 10:29:16 +0100 (CET) Original-Received: from localhost (localhost [127.0.0.1]) by mailgw14.surf-town.net (Postfix) with ESMTP id B3EB33E0BA for ; Fri, 25 Jan 2013 10:29:16 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at mailgw14.surf-town.net Original-Received: from mailgw14.surf-town.net ([127.0.0.1]) by localhost (mailgw14.surf-town.net [127.0.0.1]) (amavisd-new, port 10024) with LMTP id Jl6SwPZHHaQO for ; Fri, 25 Jan 2013 10:29:13 +0100 (CET) Original-Received: from [192.168.0.101] (c80-216-222-115.bredband.comhem.se [80.216.222.115]) by mailgw14.surf-town.net (Postfix) with ESMTPSA id CE2033E324 for ; Fri, 25 Jan 2013 10:29:12 +0100 (CET) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 X-Enigmail-Version: 1.4.6 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:70283 Archived-At: Hi, The functions vc-svn-previous-revision and vc-svn-next-revision just add or subtract 1 from the revision number. The is usually not correct. This patch uses "svn log" to get the correct previous/next revision of the file. Kind regards, Lars Ljung === modified file 'lisp/vc/vc-svn.el' *** lisp/vc/vc-svn.el 2013-01-02 16:13:04 +0000 --- lisp/vc/vc-svn.el 2013-01-25 08:26:53 +0000 *************** RESULT is a list of conses (FILE . STATE *** 259,279 **** ;; works just fine. (defun vc-svn-previous-revision (file rev) ! (let ((newrev (1- (string-to-number rev)))) ! (when (< 0 newrev) ! (number-to-string newrev)))) (defun vc-svn-next-revision (file rev) ! (let ((newrev (1+ (string-to-number rev)))) ! ;; The "working revision" is an uneasy conceptual fit under Subversion; ! ;; we use it as the upper bound until a better idea comes along. If the ! ;; workfile version W coincides with the tree's latest revision R, then ! ;; this check prevents a "no such revision: R+1" error. Otherwise, it ! ;; inhibits showing of W+1 through R, which could be considered anywhere ! ;; from gracious to impolite. ! (unless (< (string-to-number (vc-file-getprop file 'vc-working-revision)) ! newrev) ! (number-to-string newrev)))) ;;; --- 259,280 ---- ;; works just fine. (defun vc-svn-previous-revision (file rev) ! (with-temp-buffer ! (vc-svn-command t 0 file "log" "-q" "--limit" "2" ! (format "-r%s:1" rev)) ! (let ((revision-list '())) ! (while (re-search-backward "^r\\([0-9]+\\)" nil t) ! (setq revision-list (cons (match-string 1) revision-list))) ! (cadr revision-list)))) (defun vc-svn-next-revision (file rev) ! (with-temp-buffer ! (vc-svn-command t 0 file "log" "-q" "--limit" "2" ! (format "-r%s:HEAD" rev)) ! (let ((revision-list '())) ! (while (re-search-backward "^r\\([0-9]+\\)" nil t) ! (setq revision-list (cons (match-string 1) revision-list))) ! (cadr revision-list)))) ;;;