Open ambsw-technology opened 5 years ago
If it isn't obvious, this request requires a local file that stores the remote values from the last time pull
or init
was run. I'd probably create a file like <filename>.orig
right next to <filename>.yml
.
As I dig deeper, I think the following case will result in unwanted behavior in the current implementation:
init
with a remote like {'a': {'b': {'c': 'd', 'x': 'y'}}}
/a/b/x
(on SSM)pull
(with or without force)apply
In both cases, the pull
will treat the local a/b/x
key as "added". The key will be retained and restored to SSM when apply
is run. Most users will probably want the tool to recognize the remote delete and update the local file accordingly.
I've been digging through the implementation and it looks like the
force
flag inpull
only supports two modes:It would be nice to be able to provide more granular concurrency options. For example, consider the following three cases:
In git, the
pull
behavior is more like:prefer-local
orprefer-remote
)It'd be nice to support something similar.