Simple, lightweight Visual Studio extension that allows you to checkout and revert files in Perforce without slowing down or blocking your IDE.
Download the latest release from either the Visual Studio Marketplace or GitHub.
Note: It is recommended to disable Git as the default source control provider in Visual Studio. Otherwise, this will make read-only files writable which will confuse the plugin and Perforce!
Access commands for current file in extension toolbar menu. (Under Extensions in VS2019)
Right-click active file tab.
Right-click items in Solution Explorer.
Bind keyboard shortcuts to commands.
P4 command success/failure summary is shown in the status bar.
(When checking out, a (+N)
suffix indicates that N other people also
have this file checked out.) Full output and server response is
available the new P4EditVS section of the Output Window.
- Checkout
- Revert
- Revert If Unchanged
- History
- Diff Against Have Revision
- Time-lapse View (will highlight current line if invoked from extension toolbar menu or file tab menu)
- Revision Graph
- Add
- Delete
- Auto-Checkout (optional)
- Open in P4V
You'll need a relatively recent version of the Perforce client with
p4vc
installed. Version 2020.2/2013107
is known to work.
Visit Tools
> Options
, P4EditVS
section.
Specify client, server and user names for up to 6 workspaces. Any
workspaces configured here will show up in the P4EditVS
menu, so you
can switch between them easily.
Set Allow Environment
to True
to enable a 7th workspace in the
P4EditVS
menu: (Use environment)
. When selected, P4EditVS runs
p4
with no additional parameters, with the p4
working folder being
the folder containing the source file in question. The
p4config
rules apply, if you use that mechanism; otherwise, you get whatever
settings are set with p4 set
and/or Connection
> Environment Settings...
in p4v.
The selected workspace is saved in the suo file for each solution.
- p4.exe must be accessible from PATH for checkout/revert.
- p4v.exe must be accessible from PATH for history/diff/timelapse view/revision graph.
- Up to 6 workspace settings supported.
- The extension does not send or collect any information, settings are only stored locally.
- Checkout/revert state is only determined by file read-only flag.
- For more advanced functionality see the offical P4VS extension.
- Time-lapse View may not jump to the right line if you already have a window open for that file - a p4v bug
Switch the Output Window to P4EditVS to see P4 command logging to help identify issues if commands are not being executed as expected. This will help quickly identify issues such as being logged out of the server, expired tickets, etc.
Load P4EditVS.sln
into Visual Studio 2019. Build. A double-clickable
vsix file will be produced in P4EditVS/bin/Debug
or
P4EditVS/bin/Release
named P4EditVS.vsix
.
Load P4EditVS.sln
into Visual Studio 2022. Build. A double-clickable
vsix file will be produced in P4EditVS/bin/Debug
or
P4EditVS/bin/Release
named P4EditVS2022.vsix
.
To debug the addin, you can run Visual Studio in the debugger. Right
click the P4EditVS
project in the Solution Explorer, select
Properties
, and visit the Debug
section.
Select Start external program
, and find the appropriate
devenv.exe
. (For example, C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv.exe
.)
In Command line arguments
, enter /rootsuffix Exp /resetsettings
.
Then run. You get a second copy of Visual Studio, with the addin loaded.
(/rootsuffix Exp
directs Visual Studio to use a completely different
set of registry keys and whatnot. For good or for ill, the child copy
of Visual Studio is sandboxed in this respect, and doesn't share
settings with your usual copy.)
Contributions are welcomed where they improve the user experience and do not affect IDE performance.
Thanks to the following contributors for making this extension better.
- Tom Seddon
- Eris Koleszar
Unlike P4VS, P4EditVS does not aim to provide complete coverage of all Perforce features from within Visual Studio. Instead it uses p4.exe and p4vc.exe to carry out commands with basic integration into Visual Studio. E.g. context menus and auto-checkout. P4EditVS is designed to have zero noticeable overhead and prioritises the users' experience in Visual Studio. This means that some features may not be present in P4EditVS that are in P4VS.
If you're experiencing performance issues, have a slow Perforce connection or want a lightweight and simple extension then P4EditVS might be for you.
If you have P4V 2024.1 and above Open in P4V may not work and instead display a dialog box. Unfortunately P4V 2024.1 contains a breaking change that requires a different commandline.
To fix this please update to v2.6.8
or above, open the settings for P4EditVS in Visual Studio and enable P4V 2024.1 Open in P4V Support
.