Function: vc-diff-unintegrated

vc-diff-unintegrated is an autoloaded, interactive and byte-compiled function defined in vc.el.gz.

Signature

(vc-diff-unintegrated &optional UPSTREAM-LOCATION FILESET)

Documentation

Report changes to VC fileset since the merge base with UPSTREAM-LOCATION.

The merge base with UPSTREAM-LOCATION means the common ancestor of the working revision and UPSTREAM-LOCATION. Uncommitted changes are included in the diff.

When unspecified, UPSTREAM-LOCATION is the outgoing base. For a trunk branch this is always the place C-x v P (vc-push) would push to. For a topic branch, query the backend for an appropriate outgoing base. See vc-trunk-or-topic-p regarding the difference between trunk and topic branches and how Emacs classifies the current branch.

When called interactively with a prefix argument, prompt for UPSTREAM-LOCATION. In some version control systems, UPSTREAM-LOCATION can be a remote branch name.

When called interactively with a C-u (universal-argument) C-u (universal-argument) prefix argument, always use the place to which C-x v P (vc-push) would push to as the outgoing base, i.e., treat this branch as a trunk branch even if Emacs thinks it is a topic branch. (With a double prefix argument, this command is like vc-diff-outgoing except that it includes uncommitted changes.)

When called from Lisp, optional argument FILESET overrides the fileset.

View in manual

Probably introduced at or before Emacs version 31.1.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/vc/vc.el.gz
;;;###autoload
(defun vc-diff-unintegrated (&optional upstream-location fileset)
  "Report changes to VC fileset since the merge base with UPSTREAM-LOCATION.

The merge base with UPSTREAM-LOCATION means the common ancestor of the
working revision and UPSTREAM-LOCATION.
Uncommitted changes are included in the diff.

When unspecified, UPSTREAM-LOCATION is the outgoing base.
For a trunk branch this is always the place \\[vc-push] would push to.
For a topic branch, query the backend for an appropriate outgoing base.
See `vc-trunk-or-topic-p' regarding the difference between trunk and
topic branches and how Emacs classifies the current branch.

When called interactively with a prefix argument, prompt for
UPSTREAM-LOCATION.  In some version control systems, UPSTREAM-LOCATION
can be a remote branch name.

When called interactively with a \\[universal-argument] \\[universal-argument] \
prefix argument, always
use the place to which \\[vc-push] would push to as the outgoing base,
i.e., treat this branch as a trunk branch even if Emacs thinks it is a
topic branch.  (With a double prefix argument, this command is like
`vc-diff-outgoing' except that it includes uncommitted changes.)

When called from Lisp, optional argument FILESET overrides the fileset."
  (interactive (let ((fileset (vc-deduce-fileset t)))
                 (list (vc--maybe-read-outgoing-base (car fileset))
                       fileset)))
  (let ((fileset (or fileset (vc-deduce-fileset t))))
    (vc-diff-internal vc-allow-async-diff fileset
                      (vc--outgoing-base-mergebase (car fileset)
                                                   upstream-location)
                      nil
                      (called-interactively-p 'interactive))))