Proposal:
A knife spork promote remote currently downloads the remote environment, compares it with the local environment, and unless things fail, uploads the entire local environment. This proposal is to change this behavior to accept versions of cookbooks higher than local from remote, and edit the local file to reflect that. So, at the end of the promote --remote act, all data will be reflect the highest version of the set of versions under consideration.
This change will not make the race condition that currently exists better or worse since this is determined by when remote gets downloaded against when it’s uploaded. The race condition can be encountered in the following scenario:
A runs promote —remote
B runs promote —remote
A downloads remote environment
B downloads remote environment
B uploads local environment, bumping a cookbook, e.g. apache to 2
A uploads local environment, bumping a cookbook, e.g. php to 2, this will downgrade apache to 1.
Proposal: A knife spork promote remote currently downloads the remote environment, compares it with the local environment, and unless things fail, uploads the entire local environment. This proposal is to change this behavior to accept versions of cookbooks higher than local from remote, and edit the local file to reflect that. So, at the end of the promote --remote act, all data will be reflect the highest version of the set of versions under consideration.
This change will not make the race condition that currently exists better or worse since this is determined by when remote gets downloaded against when it’s uploaded. The race condition can be encountered in the following scenario: A runs promote —remote B runs promote —remote A downloads remote environment B downloads remote environment B uploads local environment, bumping a cookbook, e.g. apache to 2 A uploads local environment, bumping a cookbook, e.g. php to 2, this will downgrade apache to 1.