Hello, I'm just an advanced Git user, not a Git developer. So I might find some time to improve the suggested script, which I provided with the hints given on the mailing list, but I have no time to do a complete feature release in your patch based Git flow. I'm currently involved in 8 other open source projects. One can't improve the world alone by supplying patches to any open source project one is using... I have no experience with other shells then Bash. So if you rely on a Bash with less features, please port the syntax to such a shell system. (I personally do not support legacy programs or out-date programs). ------ We are talking about circa 50 submodules in total with a maximum depth of 4. The platforms are: - Mint OS with Git in Bash - Windows 7 with Git-Bash - Windows 10 with Git-Bash - Windows 10 with Posh-Git Kind regards Patrick ________________________________________ Von: Stefan Beller [sbeller@xxxxxxxxxx] Gesendet: Montag, 19. Juni 2017 18:37 Bis: Patrick Lehmann Cc: Lars Schneider; Git Mailinglist Betreff: Re: Restoring detached HEADs after Git operations On Mon, Jun 19, 2017 at 2:52 AM, Patrick Lehmann <Patrick.Lehmann@xxxxxxx> wrote: > Hello Lars, > > for your questions: >> If there are multiple branches with the same hash then your script would pick the first one. Can you imagine a situation where this would be a problem? > > I can't think of a good solution to resolve it automatically. Maybe a script could print that there are multiple possibilities and it choose the first branch in the list. > > >> Plus, you are looking only at local branches. Wouldn't it make sense to look at remote branches, too? > > This is also related to restoring tags. If we go this way, we should have this priority list: > - local branches > - remote branches For remote branches you would create a local branch of the same name (if such a branch would not exist, possibly setting it up to track that remote branch)? > - tags as said in the other email and similar to remote branches, we'd not want to have HEAD pointing to them directly but somehow have a local branch. >> Submodule processing is already quite slow if you have many of them. I wonder how much this approach would affect the performance. > > Yes. It takes a few seconds to iterate all the submodules. It could be improved if the processing wouldn't be based on slow Bash scripts spawning lot's of sub-shells to execute multiple Git commands. How many submodules are we talking about? (Are you on Windows to make shell even more fun?)