]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/vc/vc-git.el (vc-git-symbolic-commit): Add argument FORCE
authorPhilip Kaludercic <philipk@posteo.net>
Thu, 13 Oct 2022 20:29:23 +0000 (22:29 +0200)
committerPhilip Kaludercic <philipk@posteo.net>
Sat, 15 Oct 2022 15:22:49 +0000 (17:22 +0200)
(Bug#57400)

lisp/vc/vc-git.el

index 5d564f3c94dc4e23e39d53bc304b1f21bee4c624..0eae7dd6b8586bf2c9147d2b70d8a5b437b9e522 100644 (file)
@@ -2030,14 +2030,19 @@ FILE can be nil."
                     (setq ok nil))))))
     (and ok str)))
 
-(defun vc-git-symbolic-commit (commit)
-  "Translate COMMIT string into symbolic form.
-Returns nil if not possible."
+(defun vc-git-symbolic-commit (commit &optional force)
+  "Translate revision string of COMMIT to a symbolic form.
+If the optional argument FORCE is non-nil, the returned value is
+allowed to include revision specifications like \"master~8\"
+\(the 8th parent of the commit currently pointed to by the master
+branch), otherwise such revision specifications are rejected, and
+the function returns nil."
   (and commit
        (let ((name (with-temp-buffer
                      (and
                       (vc-git--out-ok "name-rev" "--name-only" commit)
                       (goto-char (point-min))
+                      (or force (not (looking-at "^.*[~^].*$" t)))
                       (= (forward-line 2) 1)
                       (bolp)
                       (buffer-substring-no-properties (point-min)