Convert empty git refs to 'HEAD' (Fixes #2992) #3003
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 discussed at #2992, if an empty
git_rev
line is included in a meta.yaml file, then conda-build may build from a stale git commit in the cache (rather than the cache being updated to the current HEAD).This is because an empty line results in the Source_dict.git_rev key containing an empty dict, which does not get replaced with the default value ('HEAD') when returned with dict.get. Then that empty dict value causes
get_mirror_checkout_recursive
to skip the logic it has to update the local cache's HEAD (since it assumes any value other than 'HEAD' is a specific commit).The two fixes here are currently redundant (either one would prevent the bug seen in #2992), but they both seem reasonable to me.
Thanks to @stuarteberg for suggestions.