Fork of Jonathan Kamens', Magnus Henoch's and Ben Key's p4-vc.el
Find a file
2023-04-03 22:53:02 -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
CHANGELOG.org 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
p4-lowlevel.el refactor: Simplify ‘p4-lowlevel-command-into-buffer’ 2023-04-03 22:53:02 -07:00
README.org Remove section numbers from the README output 2023-02-04 18:43:39 -08:00
vc-p4.el Fix issue with files showing as needs-update in vc-dir 2022-03-14 23:47:29 -07:00

vc-p4

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:

  P4CLIENT=my_client

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