1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 20:32:00 -08:00

* lisp/vc/vc-hg.el (vc-hg-print-log): Revise log-outgoing revset.

This commit is contained in:
Sean Whitton 2025-08-06 16:06:13 +01:00
parent f0da94e2c2
commit d950ca8ccd
2 changed files with 10 additions and 12 deletions

View file

@ -429,26 +429,23 @@ the log starting from that revision."
;; kinds of ranges of revisions for the log to show:
;; - ranges by revision number: -rN:M
;; - ranges according to the DAG: -rN::M or -rN..M
;; Note that N & M can be revision numbers or changeset IDs
;; (hashes). In either case a revision number range
;; Note that N and M can be revision numbers or changeset
;; IDs (hashes). In either case a revision number range
;; includes those commits with revision numbers between the
;; revision numbers of the commits identified by N and M.
;; See <https://repo.mercurial-scm.org/hg/help/revsets>.
;;
;; DAG ranges might seem like Git's double-dot notation for
;; ranges, but there is (at least) the following
;; difference: with -rN::M, commits from other branches
;; aren't included in the log.
;; DAG ranges are not the same as Git's double-dot ranges.
;; Git's 'x..y' is more like Mercurial's 'only(y, x)' than
;; it is like Mercurial's x::y. In addition, with -rN::M,
;; commits from other branches aren't included in the log.
;;
;; VC has always used ranges by revision numbers, such that
;; commits from all branches are included in the log.
;; `vc-log-outgoing' is a special case: there we really
;; need to exclude the incoming revision and its ancestors
;; because those are certainly not outgoing.
(cond ((not (stringp limit))
(format "-r%s:0" start))
((eq vc-log-view-type 'log-outgoing)
(format "-rreverse(%s::%s & !%s)" limit start limit))
(format "-rreverse(only(%s, %s))" start limit))
(t
(format "-r%s:%s & !%s" start limit limit)))
(nconc

View file

@ -4344,8 +4344,9 @@ Return a list of the form (FILE VC-STATE EXTRA) for each file.
VC-STATE is the current VC state of the file, and EXTRA is optional,
backend-specific information.
Normally files in the `up-to-date' and `ignored' states are not
included. If the optional argument FILES is non-nil, report on only
those files, and don't exclude them for being in one of those states.
included.
If the optional argument FILES is non-nil, report on only items in
FILES, and don't exclude any for being `up-to-date' or `ignored'.
BACKEND is the VC backend; if nil or omitted, it defaults to the result
of calling `vc-responsible-backend' with DIRECTORY as its first and only
argument.