Subject: bug#15322: VC log buffer scrolls itself

From: Paul Pogonyshev <[email-masked]>
Date: Thu, 24 Oct 2013 10:39:20 +0200

Let me explain why I think scrolling is *bad*, even if it scrolls to
correct revision. Log buffer here is generated for 5-10 seconds. In the
meantime, I can start reading it, scrolling manually or C-s contents. And
then (when loading is finished) it scrolls to a different position by
itself. This is no better than focus stealing, because it disrupts my
activities.

I tried adding the following advice, nulling 'working-revision':

    (defadvice vc-print-log-internal (before
disable-scrolling-to-working-revision activate)
      (ad-set-arg 2 nil))

but it helped only so much, because now it always scrolls to the buffer
beginning (for SVN it's still an improvement), even if I already C-s to
some older revision.

Is it possible to disable scrolling completely, even if in a hackish way
through my '.emacs'?

Paul

On 26 September 2013 09:17, Paul Pogonyshev <[email-masked]> wrote:

> In Emacs built from trunk yesterday it still jumps, though to the
> "correct" version (the one reported by 'svn info'). However, given that
> committing changes from the buffer does not advance the working directory
> revision (e.g. what I have now is 26 revisions in the past), I'm not sure
> how useful this is, at least for subversion. Probably it's better for saner
> VCS's, but for subversion if feels like annoyance.
>
> Paul
>
>
> On 12 September 2013 21:30, Glenn Morris <[email-masked]> wrote:
>
>> Stefan Monnier wrote:
>>
>> > And I think that makes sense.  It's natural to select a particular
>> > revision when running vc-print-log from (say) vc-annotate, but for
>> > a plain `C-x v l', the user just wants to see "the log" and presumably
>> > doesn't care about which revision happens to be current.
>> >
>> > IOW, I think we're trying too hard here.
>>
>> *** lisp/vc/vc.el       2013-09-12 06:10:12 +0000
>> --- lisp/vc/vc.el       2013-09-12 19:28:04 +0000
>> ***************
>> *** 2299,2305 ****
>>     (let* ((vc-fileset (vc-deduce-fileset t)) ;FIXME: Why t? --Stef
>>          (backend (car vc-fileset))
>>          (files (cadr vc-fileset))
>> !        (working-revision (or working-revision (vc-working-revision (car
>> files)))))
>>       (vc-print-log-internal backend files working-revision nil limit)))
>>
>>   ;;;###autoload
>> --- 2299,2306 ----
>>     (let* ((vc-fileset (vc-deduce-fileset t)) ;FIXME: Why t? --Stef
>>          (backend (car vc-fileset))
>>          (files (cadr vc-fileset))
>> ! ;;     (working-revision (or working-revision (vc-working-revision (car
>> files))))
>> !          )
>>       (vc-print-log-internal backend files working-revision nil limit)))
>>
>>   ;;;###autoload
>>
>
>