On Thu, Dec 21, 2017 at 2:17 PM, Andreas Urke <arurke@xxxxxxxxx> wrote: > Thanks for the detailed explanation. Although I am not too git savvy, > I believe I got the gist of it. > > Regarding your question, > I would say the term "name" in an IT context makes me primarily think > of something that is specified by a user (as opposed to e.g. an "id"), ID sounds great. > and can be altered by a user. Also, the manual mention it as a > "logical name", which would further strengthen my belief that it is an > abstraction which can be changed (as opposed to something "physical"). > I would be much more reluctant to change the id of something than its > name. If you changed the name in all places, it would have been no problem. ;) So once you did the "git config -f .gitmodules --rename-section ...", you'd also have to "mv .git/modules/<old-name> .git/modules/<new-name>" and then it would work fine for you. (You would also need to instruct any collaborators to run the move command when they pull your changes. So it is more of a "in theory it works", rather than practical advice here) > In terms of the commands...In an ideal world I would obviously ask for > a --rename or mv command which would achieve what I wanted to do. > Other than that, maybe a word about this in the man for "git mv"? Or git-mv moves the path, not the name of the submodule, though. > perhaps "git submodule sync" could give me some kind of warning that I > did something strange/illegal. That is harder than thought, because it is normal that a submodule worktree doesn't exist at the given path (not initialized). Also it is totally valid to have outdated entries in the .gitmodules file. :/ > Can I ask you, now that I have made this mess, do you have any > suggestion on how to rectify it or some other way to achieve my goal? Looking at the script you had above, I would think you need to init the renamed submodule again, not sure if anything else needs to be done, as now you'd have essentially two repositories inside the superprojects .git/modules/ for just one logical submodule. So I would assume if you were to re-clone the superproject everything works out fine again (except for bisection/checkout before that rename. ;) But for that you can symlink the oldname to the newname inside the .git/modules/ of the superproject I would assume. Stefan