Publicize behavior of log-view-diff at beginning/end of active region

* lisp/vc/log-view.el (log-view-diff, log-view-diff-changeset):
* doc/emacs/maintaining.texi (VC Change Log): Document behavior of
log-view-diff at the beginning and the end of the log buffer
when the region is active.  (Bug#35624)

* lisp/vc/vc-git.el (vc-git-print-log): Insert newline at the
beginning to enable the feature of diffing with the working revision.
This commit is contained in:
Juri Linkov 2019-05-19 23:11:27 +03:00
parent 1b2b136a17
commit 82db17d0d1
3 changed files with 27 additions and 2 deletions

View file

@ -1033,6 +1033,7 @@ systems support modifying change comments.
Visit the revision indicated at the current line.
@item d
@itemx =
Display a diff between the revision at point and the next earlier
revision, for the specific file.
@ -1047,6 +1048,16 @@ L}), toggle between showing and hiding the full log entry for the
revision at point.
@end table
To compare two arbitrary revisions, activate the region: set the
beginning of the region to the line with the first revision and the
end of the region to the line with the second revision to compare,
then type @kbd{d} or @kbd{=}. When the beginning of the region is on
the top line that has no revision, it uses the current working revision
as the first revision to compare. When the end of the region is on
the bottom non-revision line after the last revision line, then it
uses the next earlier revision after the last displayed revision as
the second revision to compare.
@vindex vc-log-show-limit
Because fetching many log entries can be slow, the
@file{*vc-change-log*} buffer displays no more than 2000 revisions by

View file

@ -585,6 +585,13 @@ point, get the diff between the revision at point and its
previous revision. Otherwise, get the diff between the revisions
where the region starts and ends.
When the beginning of the region is on the top line that has no revision,
use the current working revision as the first revision to compare.
When the end of the region is on the bottom non-revision line after
the last revision line, use the previous revision of the last
displayed revision as the second revision to compare.
Unlike `log-view-diff-changeset', this function only shows the
part of the changeset which affected the currently considered
file(s)."
@ -600,6 +607,13 @@ point, get the diff between the revision at point and its
previous revision. Otherwise, get the diff between the revisions
where the region starts and ends.
When the beginning of the region is on the top line that has no revision,
use the current working revision as the first revision to compare.
When the end of the region is on the bottom non-revision line after
the last revision line, use the previous revision of the last
displayed revision as the second revision to compare.
Unlike `log-view-diff' this function shows the whole changeset,
including changes affecting other files than the currently
considered file(s)."

View file

@ -1017,8 +1017,8 @@ If LIMIT is a revision string, use it as an end-revision."
;; If the buffer exists from a previous invocation it might be
;; read-only.
(let ((inhibit-read-only t))
(with-current-buffer
buffer
(with-current-buffer buffer
(insert "\n")
(apply 'vc-git-command buffer
'async files
(append