Fork of Jonathan Kamens', Magnus Henoch's and Ben Key's p4-vc.el
Go to file
Tom Willemse 0637cddd58 fix: vc-p4 doesn't recognize a file in its client because of case
When checking to see if a file is within a Perforce client, match the root
directory and current directory as reported by Perforce and ignore case

Sometimes (at least on Windows) the current directory and the client root can
point at the same directory, but because of the way Perforce creates directories
and files the case might differ.
2023-04-03 22:57:23 -07:00
.builds Use subshell instead of argument redirection 2023-02-04 18:38:13 -08:00
.gitignore Ignore any directory starting with vc-p4- 2019-03-06 00:10:13 -08:00
.gitlab-ci.yml Rename deploy -> pages 2020-05-13 22:08:21 -07:00 Fix issue with files showing as needs-update in vc-dir 2022-03-14 23:47:29 -07:00
Makefile Add a build manifest for generating the README for sourcehut 2023-02-04 18:27:55 -08:00 Remove section numbers from the README output 2023-02-04 18:43:39 -08:00
p4-lowlevel.el fix: ‘vc-ediff’ thinks everything in all files has changed 2023-04-03 22:53:23 -07:00
vc-p4.el fix: vc-p4 doesn't recognize a file in its client because of case 2023-04-03 22:57:23 -07:00


This package provides VC integration with the Perforce version control system.

This package is quite old and was written for Emacs 23 I think. I'm trying to pull it into the next generation by making it work on Emacs 26.3 at the moment.

Road to v1

Before I can say that I can release version 1.0.0 of this project, I feel that these features need to be present (this list is subject to change):

  • Create new changelists.
  • Modify existing changelists.
  • Delete existing changelists.
  • Move files between changelists.
  • View changelist info in vc-dir.
  • View repository information in vc-dir. (Things like the Client name, current workspace, etc.)
  • Switch workspaces.

Some of these features may already be present and working and I just haven't discovered them yet, but until I feel confident that it can be done and is part of my workflow, I'm keeping it on the list.

Change log

See the change log.

Switching workspaces

To automatically switch workspaces based on the directory youre in, make sure that you have the P4CONFIG variable set. If this is set, for example to .p4config, in any directory that you want to associate with a workspace, add a .p4config file and add the following line to it:


Where my_client is the name of the client you want to use.