GNU bug report logs -
#59232
27.2; vc-annotate on SVN does not process all lines
Previous Next
Full log
View this message in rfc822 format
On 21/12/2023 00:50, Urban Engberg wrote:
> Using make-process:
>
> (let ((process-connection-type nil))
> (make-process
> :name "xxx"
> :buffer "*Test*"
> :command (list "svn" "annotate" "FILE")))
>
> This fails, just like before. Interestingly, adding
>
> :stderr "*Stderr*"
>
>
> to the argument list makes the command */not*/ fail and *Stderr* thus
> just contains "Process xxx stderr finished"
Hmm, then perhaps it might make sense to test this full patch. Ideally,
though, someone knowledgeable about our subprocess system would chime in
about the whole situation: are there programs like this, and should we
work around that.
diff --git a/lisp/vc/vc-dispatcher.el b/lisp/vc/vc-dispatcher.el
index fd5f655a0f6..18ba317242b 100644
--- a/lisp/vc/vc-dispatcher.el
+++ b/lisp/vc/vc-dispatcher.el
@@ -379,9 +379,12 @@ vc-do-command
(if (eq okstatus 'async)
;; Run asynchronously.
(let ((proc
- (let ((process-connection-type nil))
- (apply #'start-file-process command
- (current-buffer) command squeezed))))
+ (make-process
+ :name "vc"
+ :command (cons command squeezed)
+ :connection-type 'pipe
+ :buffer (current-buffer)
+ :stderr " *vc-errors*")))
(when vc-command-messages
(let ((inhibit-message vc-inhibit-message))
(message "Running in background: %s"
> There are also some options outlined for trying to get more verbose
> output of it here --
> https://stackoverflow.com/questions/8416989/is-it-possible-to-get-svn-client-debug-output <https://stackoverflow.com/questions/8416989/is-it-possible-to-get-svn-client-debug-output>
> -- but it seems like this might only work with some client versions.
> And
> most answers are 5-10 years old.
>
>
> No, I don't get much more from that. But perhaps interesting as well, I
> gave the "svn annotate" a "-v" to generate more verbose output. It seems
> this makes it output the full date on each line of the output. With this
> option, the process is terminated after just 56 lines, or around 4900
> characters – close to what we got before. Could it in some way be that
> the pipe into the output buffer is closed down prematurely?
That the pipe is closed prematurely, but only with SVN and not any other
VCS client? That seems odd, it likely involved some particular factors.
Well, aside from the fact that 'svn' inevitably accesses the network.
> As again, it
> doesn't seem that the svn process itself fails, when run in any other way?
Sure, it is weird.
Other ways you could try to run it are:
- From Emacs's 'M-x shell' buffer.
- Through a shell wrapper that redirects stderr somewhere, but then
appends it at the end of the output when the main program finishes.
- Through the ':term' terminal emulator in Vim 8.1+? Just being
thorough, I have no idea how it is implemented.
This bug report was last modified 1 year and 238 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.