Last updated on 16th April 2026

How does DeployHQ determine which files to upload?

DeployHQ does not upload every file on each deployment. Instead, it determines exactly which files have changed and only transfers those. This applies to both repository files and build pipeline output, and has always been the default behaviour.

Repository files

When a deployment runs, DeployHQ compares the start revision (the last commit that was successfully deployed to your server) with the end revision (the commit you are deploying now). Only files that differ between these two revisions are uploaded, updated, or removed on your server.

This means that if you push a commit that changes three files, only those three files will be transferred -- not your entire repository. The very first deployment to a new server is the exception: because there is no previous revision to compare against, every file in the repository is uploaded.

Build pipeline output

If you have a build pipeline configured, DeployHQ applies the same principle to your built assets. Each time a build runs, a manifest of all generated files is created and compared with the manifest from the last successful deployment.

  • Changed files are uploaded
  • Newly added files are uploaded
  • Removed files (present in the previous manifest but not in the current one) are deleted from your server

When files go missing

Because DeployHQ only transfers differences, files can appear to be "missing" from your server if:

  • Files were deleted or modified directly on the server outside of DeployHQ -- DeployHQ has no way of knowing about these changes, so it will not re-upload them.
  • The server's recorded "last deployed revision" is out of sync with what is actually on the server.
  • Build output changed in a way that caused assets to be excluded from the manifest.

In any of these cases, running a full deployment will re-upload everything. To do this, start a new deployment and set the start revision to "The very first commit".

Forcing a full upload of built assets

If you only need to re-upload your build pipeline output (not the entire repository), you can run one deployment with the build pipeline disabled, then another with it re-enabled. This resets the build manifest comparison and forces all built files to be transferred.

Further information on that process can be found in our troubleshooting guide.