With feature patch: In response to a PATCH request, the server partially updates a site with new content. The URL of the request must be the root URL of the site that is being published.
The request must have a application/x-tar, application/x-tar+gzip, or application/x-tar+zstd body, whose contents is merged with the existing site contents as follows:
A character device entry with major 0 and minor 0 is treated as a "whiteout marker" (following unionfs): it causes any existing file or directory with the same name to be deleted.
A directory entry replaces any existing file or directory with the same name (if any), recursively removing the old contents.
A file or symlink entry replaces any existing file or directory with the same name (if any).
In any case, the parent of an entry must exist and be a directory.
The request must have a Race-Free: yes or Race-Free: no header. Not every backend configuration makes it possible to perform atomic compare-and-swap operations; on backends without atomic CAS support, Race-Free: yes requests will fail, while Race-Free: no requests will provide a best-effort approximation.
If a PATCH request loses a race against another content update request, it may return 409 Conflict. This is true regardless of the Race-Free: header value. Whenever this happens, resubmit the request as-is.
If the site has no contents after the update is applied, performs the same action as DELETE.
With feature patch: In response to a PATCH request, the server partially updates a site with new content. The URL of the request must be the root URL of the site that is being published. The request must have a application/x-tar, application/x-tar+gzip, or application/x-tar+zstd body, whose contents is merged with the existing site contents as follows: A character device entry with major 0 and minor 0 is treated as a "whiteout marker" (following unionfs): it causes any existing file or directory with the same name to be deleted. A directory entry replaces any existing file or directory with the same name (if any), recursively removing the old contents. A file or symlink entry replaces any existing file or directory with the same name (if any). In any case, the parent of an entry must exist and be a directory. The request must have a Race-Free: yes or Race-Free: no header. Not every backend configuration makes it possible to perform atomic compare-and-swap operations; on backends without atomic CAS support, Race-Free: yes requests will fail, while Race-Free: no requests will provide a best-effort approximation. If a PATCH request loses a race against another content update request, it may return 409 Conflict. This is true regardless of the Race-Free: header value. Whenever this happens, resubmit the request as-is. If the site has no contents after the update is applied, performs the same action as DELETE.