What's New

"Lazy Load" feature to cut down load time and general performance on large projects and/or slow connections.

The online and local help have been updated with the following text to provide guidance for which performance tuning features to use base on the speed of the connection and the size of the solution loaded.

"Note: The Treat Solution/Projects as directories when selected, Preload file state, and Lazy load file state options are used to tune the performance of P4VS for your environment. If none of these options are selected, P4VS will load the metadata for each file individually. Unless you have a small project you should look to use one of these options.

"* Treat Solution/Projects as directories when selected: Select to treat solutions and projects as directories when P4VS runs Perforce commands.

"Use this option to improve performance when working with solutions that contain a large number of projects or files. Do not use this option if the directories in the solution contain a large number of other Perforce controlled files that are not included in the solution.

"This option does not require that all the files and directories referenced by the solution are under the solution directory.

"* Preload file state: Select to preload the metadata for all of the files in the perforce depot in or under the directory containing the solution file.

"Use this option to improve performance when loading small to medium sized solutions where all the files that make up the solution are under the solution root. Only use this when there are few if any files under the solution root that are Perforce controlled that are not part of the solution.

"This option tends to work best with solutions and projects created and managed by Visual Studio. Do not use this option if the files for the solution are intermixed in directories with large numbers of other Perforce controlled files. This option will provide little improvement in performance if most of the files composing the solution are outside of the solution root.

"* Lazy load file state: Select to only load the Perforce metadata files in the solution as they are operated on using P4VS.

"With this option, Perforce metadata for a file is only retreived from the server when you select a P4VS operation on a file. At that point, the Perforce metadata will be obtained from the server, the operation performed, and the Perforce metadata updated to reflect the results of the operation. When this option is selected, the file will by badged in the solution explorer to indicate that its status is unknown (in Visual Studio 2010, this will be a blank badge). After a Perforce operation is performed on a file it will be badged to indicate its current state.

"Use this option to improve performance loading large to very large sized solutions where you are interested in only working on a few select files. This is best for solutions and projects which include large amounts of code from libraries or frameworks, large numbers of asset files such as graphical elements for a game, or large numbers of files that are generated by another development system or plugin. This option is also useful in situations where the connection to the Perforce server is over a slow network or VPN.

"* Full menu: Select to allow the full P4VS menu to be displayed on files that have not had their metadata loaded.

"This option is displayed if the Lazy load file state option is enabled. This allows you to perform an operation on a file before P4VS loads its state. If this option is not selected, you are given the option to refresh the file which will load the metadata of the file from the server and then enable the appropriate P4VS operations on that file. Please note that if you choose this option and perform P4VS operations on a file that are not valid based on its current state, you are very likely to get error messages back from those operations."

Enhancements

1022071 (Bug 74695) * Support 'leaveunchanged' option of the 'p4 shelve' command in the 'Shelve Files' and 'Create Review' dialog boxes.

1020819 (Bug 77607) * Added a "Lazy Load" feature to cut down load time and general performance on large projects and/or slow connections.

The help file has been expanded to include a section on how to tune the performance when loading a solution into VS as follows:

Note: The Treat Solution/Projects as directories when selected, Preload file state, and Lazy load file state options are used to tune the performance of P4VS for your environment. If none of these options are selected, P4VS will load the metadata for each file individually. Unless you have a small project you should look to use one of these options.

Treat Solution/Projects as directories when selected: Select to treat solutions and projects as directories when P4VS runs Perforce commands.

Use this option to improve performance when working with solutions that contain a large number of projects or files. Do not use this option if the directories in the solution contain a large number of other Perforce controlled files that are not included in the solution.

This option does not require that all the files and directories referenced by the solution are under the solution directory.

Preload file state: Select to preload the metadata for all of the files in the perforce depot in or under the directory containing the solution file.

Use this option to improve performance when loading small to medium sized solutions where all the files that make up the solution are under the solution root. Only use this when there are few if any files under the solution root that are Perforce controlled that are not part of the solution.

This option tends to work best with solutions and projects created and managed by Visual Studio. Do not use this option if the files for the solution are intermixed in directories with large numbers of other Perforce controlled files. This option will provide little improvement in performance if most of the files composing the solution are outside of the solution root.

Lazy load file state: Select to only load the Perforce metadata files in the solution as they are operated on using P4VS.

With this option, Perforce metadata for a file is only retreived from the server when you select a P4VS operation on a file. At that point, the Perforce metadata will be obtained from the server, the operation performed, and the Perforce metadata updated to reflect the results of the operation. When this option is selected, the file will by badged in the solution explorer to indicate that its status is unknown (in Visual Studio 2010, this will be a blank badge). After a Perforce operation is performed on a file it will be badged to indicate its current state.

Use this option to improve performance loading large to very large sized solutions where you are interested in only working on a few select files. This is best for solutions and projects which include large amounts of code from libraries or frameworks, large numbers of asset files such as graphical elements for a game, or large numbers of files that are generated by another development system or plugin. This option is also useful in situations where the connection to the Perforce server is over a slow network or VPN.

Full menu: Select to allow the full P4VS menu to be displayed on files that have not had their metadata loaded.

This option is displayed if the Lazy load file state option is enabled. This allows you to perform an operation on a file before P4VS loads its state. If this option is not selected, you are given the option to refresh the file which will load the metadata of the file from the server and then enable the appropriate P4VS operations on that file. Please note that if you choose this option and perform P4VS operations on a file that are not valid based on its current state, you are very likely to get error messages back from those operations.

Bug Fixes

1014861 (Bug #77511) * Checkout All in Solution and Submit do not work from context menu on solution object.

1025571(Bug #77579) * Mark for Add missing from context menu.