west: west update fails on submodules with relative paths
When west initializes project repository it only adds remote with name specified in west.yml while git assumes that default remote is origin. Relative submodule paths are resolved to default remote.
Without origin remote, west update fails while trying to update repository that contains submodules with relative paths, with following warning
warning: could not look up configuration 'remote.origin.url'. Assuming this repository is its own authoritative upstream.
git logic for resolving relative paths can be found here https://github.com/git/git/blob/v2.20.1/builtin/submodule--helper.c#L135
Manually adding origin remote solves the issue.
i’d propose west should also add origin remote to projects by default.
About this issue
- Original URL
- State: open
- Created 3 years ago
- Comments: 45 (12 by maintainers)
Commits related to this issue
- tests: regression test for submodules with relative paths Add a regression test for https://github.com/zephyrproject-rtos/west/issues/545. Mark it xfail for now since we don't have a fix. We'll remo... — committed to mbolivar-nordic/west by mbolivar-nordic 3 years ago
- tests: regression test for submodules with relative paths Add a regression test for https://github.com/zephyrproject-rtos/west/issues/545. Mark it xfail for now since we don't have a fix. We'll remo... — committed to mbolivar-nordic/west by mbolivar-nordic 3 years ago
- tests: regression test for submodules with relative paths Add a regression test for https://github.com/zephyrproject-rtos/west/issues/545. Mark it xfail for now since we don't have a fix. We'll remo... — committed to mbolivar-nordic/west by mbolivar-nordic 3 years ago
- tests: regression test for submodules with relative paths Add a regression test for https://github.com/zephyrproject-rtos/west/issues/545. Mark it xfail for now since we don't have a fix. We'll remo... — committed to zephyrproject-rtos/west by mbolivar-nordic 3 years ago
The problem with #546 is that it breaks a guarantee we have had since the beginning, namely that your working tree’s remotes do not matter to west, and you can change them at will. I tried to explain that in https://github.com/zephyrproject-rtos/west/issues/545#issuecomment-937265242. I should have been clearer; this is a blocker for me.
There are some pathological examples (see https://datatracker.ietf.org/doc/html/rfc3986.html#section-5.4 and https://www.rfc-editor.org/errata/eid4547) where git does different things, but in normal cases this seems to work fine as far as I can tell, and even the RFC editors don’t seem to have a good handle on the edge cases.