Junio C Hamano <gitster@xxxxxxxxx> writes: > Matthieu Moy <Matthieu.Moy@xxxxxxxxxxxxxxx> writes: > >> Karthik Nayak <karthik.188@xxxxxxxxx> writes: >> >>> So either we could introduce a new atom for sorting something like >>> `branch_sort` which uses the FILTER_REFS_(DETACHED_HEAD | BRANCHES | >>> REMOTES) >> >> I don't think you need a new atom. You can just change the sorting >> function to consider that detached HEAD is always first, and when >> comparing two non-detached-HEAD branches, use the atom supplied by the >> user. >> >> That would mean the detached HEAD would be displayed first regardless of >> --sort (which is the case right now). > > I am a bit fuzzy about this. I do not understand why Karthik thinks > a new atom is necessary in the first place, and I do agree that the > best way to go would be to teach the sort function to do "the right > thing", but I am not sure why it has to be "regardless of --sort". I think Karthik meant that branch could default to "--sort=my_magic_atom_that_does_the_right_thing". In this case, the default would be to show HEAD first, but using "--sort" explicitly would change the order and interleave HEAD within other branches. IOW, we have: struct ref_sorting *ref_default_sorting(void) { static const char cstr_name[] = "refname"; struct ref_sorting *sorting = xcalloc(1, sizeof(*sorting)); sorting->next = NULL; sorting->atom = parse_ref_filter_atom(cstr_name, cstr_name + strlen(cstr_name)); return sorting; } and we could - static const char cstr_name[] = "refname"; + static const char cstr_name[] = "some_magic_atom"; But you convinced me that this is not a good idea. > When the user does give a custom --sort criteria, the logic in > default_sort() The logic itself is not in ref_default_sorting() (I guess this is what you meant by "default_sort"): this function just builds a struct ref_sorting that is later used by the more general cmp_ref_sorting. But that's still workable: struct ref_sorting could contain a flag "head_first" that would be set by ref_default_sorting() and only it, and then read by cmp_ref_sorting. -- Matthieu Moy http://www-verimag.imag.fr/~moy/ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html