improve how new branches are created #266
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As a safeguard, Kargo render has long refused to write rendered config to a branch that doesn't already appear to be managed via Kargo Render. The signal that a branch is managed by Kargo Render has always been the existence of branch metadata in
.kargo-render/metadata.yaml
.This means that when creating new, orphaned, stage-specific branches, we have always written blank metadata to the new branch.
The trouble with this approach is that Kargo proper (rather than Kargo Render) will, at times, be responsible for creation of stage-specific branches -- and when doing so, it doesn't (and shouldn't) particularly care about writing Kargo Render metadata into that new branch.
This PR changes some internal Kargo Render logic so that if we check out an existing branch that doesn't already appear to be managed via Kargo Render, we won't refuse to write to it as long as it's 100% empty. The corollary to this is that when Kargo Render creates new branches, it no longer needs to write blank metadata to them.
So, overall, this is actually quite a simplification.