VC Expects the backend to report that the status is ‘needs-update’, not
‘needs-patch’. I don’t know if this has changed over the years, but this is what
it needs now.
- The arguments ‘comment’ and ‘rev’ have been switched. I don’t know if this
used to be different from how it is now, but ‘rev’ comes last now and is
optional.
- The ‘vc-p4-client’ needs to be collected from the first file in the list of
files to check in because ‘vc-p4-checkin’ is called from a different buffer
that isn’t in the same directory.
- ‘vc-p4-client’ also needs to be stored under a different name so that when it
changes to the ‘*p4-lowlevel-changes*’ buffer it doesn’t clear the value.
- Instead of inserting the specified comment directly, send it through
‘log-edit-extract-headers’ which removes the "Summary: " header that
‘vc-log-edit’ adds.
- Indent rigidly to ‘tab-width’ instead of 8. Indenting to 8 added too many tabs
to the description and caused all lines to be prefixed by a tab.
- Add command ‘vc-p4-logged-in-p’ to check if the user is currently logged in.
- Add command ‘vc-p4-login’ to log in if the user isn’t already logged in.
- Add better error reporting for the situation where a user isn’t logged in.
Quoting the string with Windows paths in it would double-quote the directory
separators. It also seems easier to use ‘string-prefix-p’ than an anchored
regular expression.
‘alist-get’ is a function that was introduced in Emacs 25 that is easier to use
than ‘assoc’ + ‘cdr’.