brickadia / p4-fast-reconcile

A tool to speed up "Reconcile Offline Work" in Perforce Helix Core.
MIT License
18 stars 2 forks source link

p4-fast-reconcile

This program is a re-implementation for the frustratingly slow Reconcile Offline Work tool in P4V. It will download the depot state from the Helix Core server, scan your local workspace for files, compute and cache digests for files, compare both, then update the desired pending changelist. However, it is usually 10-100 times faster than using the original tool.

It was originally created for reconciling new versions of binary Unreal Engine builds at a previous workplace, but is now actively used and maintained at Brickadia.

Performance Tests

Reconcile a small project (14k files, 50GB) with no changes

Reconcile a large Unreal Engine project (450k files, 250GB) with no changes

Reconcile a version upgrade of a binary Unreal Engine build (older test, size unknown):

Performance of the Reconcile Offline Work tool appears to rapidly degrade with more changed files.
This is not the case for p4-fast-reconcile, which is consistently faster and snappier to use.

Usage

The program is ran as a custom tool from P4V. Set it up like this: Custom Tool Setup

Then right click a folder in your workspace and select the custom tool at the bottom.

Features

It will correct the following types of inconsistency:

This is equivalent to running "Reconcile Offline Work" followed by "Revert Unchanged".

Known Issues

It has only been tested on our repositories, so it may not work for you if you use configuration different from ours.
Use the dry run mode first to see whether it is working as intended. You are responsible for changes made to your repository.