ceea30345eb5cd239b8fd0c5b472b939ff2b64ee
braney
  Fri Aug 23 15:18:07 2024 -0700
if hub tracks specify a group that doesn't exist they should go into the
generic hub group, not "other"

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index 6576258..c340d47 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -7035,30 +7035,36 @@
         float priority = (float)cartUsualDouble(cart, cartVar,
                                                     track->defaultPriority);
         /* remove cart variables that are the same as the trackDb settings */
 /*  UGLY - add me back when tdb->priority is no longer pre-clobbered by cart var value
         if (priority == track->defaultPriority)
             cartRemove(cart, cartVar);
 */
         track->priority = priority;
         }
 
     /* assign group object to track */
     if (track->groupName == NULL)
         group = NULL;
     else
 	group = hashFindVal(hash, track->groupName);
+    if ((group == NULL) && (track->groupName != NULL))
+        {
+        char *hubName = trackHubGetHubName(track->groupName);
+        if (hubName != NULL)
+            group = hashFindVal(hash, hubName);
+        }
     if (group == NULL)
         {
 	if (unknown == NULL)
 	    {
 	    AllocVar(unknown);
 	    unknown->name = cloneString("other");
 	    unknown->label = cloneString("other");
 	    unknown->priority = 1000000;
 	    slAddHead(&list, unknown);
 	    }
 	group = unknown;
 	}
     track->group = group;
     rPropagateGroup(track, group);
     }