]> git.eshelyaron.com Git - emacs.git/commitdiff
Publicize behavior of log-view-diff at beginning/end of active region
authorJuri Linkov <juri@linkov.net>
Sun, 19 May 2019 20:11:27 +0000 (23:11 +0300)
committerJuri Linkov <juri@linkov.net>
Sun, 19 May 2019 20:11:27 +0000 (23:11 +0300)
* 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.

doc/emacs/maintaining.texi
lisp/vc/log-view.el
lisp/vc/vc-git.el

index 4986c1110309e07599da9a7e922b9011d64f4df1..0fbf91ae6138a878a57cf50678ac4206ab93a10c 100644 (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
index 3389264ce6ed9f8adb652652bfd96c87993c66d9..0b57e1d508660d9ce01069db33c0fbbdbdd0aaca 100644 (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)."
index 61c13026cc56e50d76a47224d7c260179e759281..b6feb3b8d1ebed12f6e960a5acfd8ca7783adbb1 100644 (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