A system for distributed incremental updating of trays using a source control system, the system comprising: a memory; and a processor, wherein the memory includes instructions executable by the processor to: execute an application of a first version of a tray on a server, wherein the tray is a software container that includes all dependencies used to execute the application within a computing environment; receive, by tray management software of the first version of the tray, a request to update the tray to a second version; request, from the source control system, a changeset including one or more file differences between the first version and the second version; and responsive to a determination by the tray management software that there are no pending requests preventing an update, update the tray from the first version to the second version by updating files in the tray according to the changeset, wherein the determination by the tray management software that there are no pending requests preventing the update is based on a determination by the tray management software that there are no other requests associated with the first version of the tray that are mutually exclusive with the request to update the tray to the second version. a memory; and a processor, wherein the memory includes instructions executable by the processor to: execute an application of a first version of a tray on a server, wherein the tray is a software container that includes all dependencies used to execute the application within a computing environment; receive, by tray management software of the first version of the tray, a request to update the tray to a second version; request, from the source control system, a changeset including one or more file differences between the first version and the second version; and responsive to a determination by the tray management software that there are no pending requests preventing an update, update the tray from the first version to the second version by updating files in the tray according to the changeset, wherein the determination by the tray management software that there are no pending requests preventing the update is based on a determination by the tray management software that there are no other requests associated with the first version of the tray that are mutually exclusive with the request to update the tray to the second version. execute an application of a first version of a tray on a server, wherein the tray is a software container that includes all dependencies used to execute the application within a computing environment; receive, by tray management software of the first version of the tray, a request to update the tray to a second version; request, from the source control system, a changeset including one or more file differences between the first version and the second version; and responsive to a determination by the tray management software that there are no pending requests preventing an update, update the tray from the first version to the second version by updating files in the tray according to the changeset, wherein the determination by the tray management software that there are no pending requests preventing the update is based on a determination by the tray management software that there are no other requests associated with the first version of the tray that are mutually exclusive with the request to update the tray to the second version.