On Mon, Nov 9, 2020 at 4:29 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: > >> So the completion should detect such aliases as well. > > Two comments. > > - on design, is it possible to make a set of aliases that form a > cycle? do we need to worry about such case? what does the > current implementation do for an "alias" in such a cycle? Yes. The first try would be stuck in a loop until the user types CTRL+C. I already sent a second version that fixes that. > - on implementation, it is done as a recursive call to the same > function, but a loop that naturally maps tail recursion would > also be a trivial implementation. is it worth rewriting the > recursive calls into a loop? if we need to solve the circular > references (above) by say limiting the length of the cycle, would > such a rewrite make sense as a way to help implementation? Yes, that can be done. I opted for the minimal change so it was easy to understand what the code was trying to do. The second version works in the way you suggested. -- Felipe Contreras