Change handling of submodules at upgrade #293
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.
What does this PR do?
Changes how submodules are handled during upgrade.
What issues does this PR fix or reference?
Previous Behavior
Upgrade would deinit submodules after moving the repo and then initialize them all. There are a couple of issues with this:
-f
is used during deinit, any local changes in the submodule would be lost.New Behavior
submodule absorbgitdirs
. This makes sure thatsubmodule deinit
will not fail for modules that were cloned before being added.submodule deinit
is called for each submodule that's initialized. If an error happens the deinit is undone and upgrade fails.Have tests been written for this change?
Yes, see #284.
Have these commits been signed with GnuPG?
Yes
Please review yadm's Contributing Guide for best practices.