P4VS User Guide (2019.2)

Helix Core - Data Retrieval

Set the following preferences to determine how P4VS retrieves data from Helix server:

Data retrieval:

  • Check server for updates every: Specifies how often P4VS checks Helix server for updated file information. Frequent checks enable P4VS to display current file status but increase the workload on Helix server.
  • Maximum number of files displayed per changelist: Specifies the maximum number of files displayed in a changelist, to help minimize the time required to handle and submit very large changelists. This setting affects only the display of changelists, and does not limit the number of files that a changelist can contain.
  • Maximum size of files to preview: Limits the size of image files displayed in the Preview tab, to limit the amount of image data sent from Helix server to P4VS.
  • Number of changelists, jobs, or labels to fetch at a time: Specifies the number of specifications read in each batch fetched, to minimize server load and maximize P4VS performance. To retrieve all entries, specify 0.
  • Automatically update file status when selection changes: Select to enable the Helix server status badges in Solution Explorer to update automatically when you click or hover over the file icon, without having to click Refresh. Deselect to improve performance.

Optimize file status retrieval:


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.

  • Optimize file state retrieval: Select to apply optimizations on retrieving file state. Subordinate optimization options include:

    • Treat Solution/Projects as directories when selected: Select to treat solutions and projects as directories when P4VS runs Helix server 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 Helix server 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 Helix server 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 Helix server 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 Helix server 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 Helix server metadata files in the solution as they are operated on using P4VS.

    With this option, Helix server metadata for a file is only retreived from the server when you select a P4VS operation on a file. At that point, the Helix server metadata will be obtained from the server, the operation performed, and the Helix server 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. After a Helix server 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 Helix server 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.

  • Do not optimize: Select this to disable all optimizations related to file state retrieval.