9f00cd98a12cc7a8127db406db7e072763c2175a
markd
  Tue Apr 25 10:28:40 2023 -0700
changed "No subtracks in group:" message to include track name

diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index 60b3a6e..0bb09d8 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -2990,31 +2990,32 @@
     if ((*members)->selected != NULL || (*members)->subtrackList != NULL)
 	return;
     freeMem((*members)->setting);
     freeMem((*members)->tags);
     freeMem((*members)->titles);
     freez(members);
     }
 }
 
 static members_t *subgroupMembersWeedOutEmpties(struct trackDb *parentTdb, members_t *members,
 					    struct cart *cart)
 // Weed out members of a subgroup without any subtracks, alters memory in place!
 {
 if (members->count == 0)
     {
-    warn("No subtracks in group: %s.  This indicates a problem in the subGroup line for this group.", members->groupTitle);
+    warn("%s: No subtracks in group: %s.  This indicates a problem in the subGroup line for this group.",
+         parentTdb->track, members->groupTitle);
     return members;
     }
 // First tally all subtrack counts
 int ixIn=0;
 struct slRef *subtrackRef, *subtrackRefList =
 				    trackDbListGetRefsToDescendantLeaves(parentTdb->subtracks);
 struct trackDb *subtrack;
 members->subtrackCount    = needMem(members->count * sizeof(int));
 members->currentlyVisible = needMem(members->count * sizeof(int));
 members->subtrackList     = needMem(members->count * sizeof(struct slRef *));
 for (subtrackRef = subtrackRefList; subtrackRef != NULL; subtrackRef = subtrackRef->next)
     {
     subtrack = subtrackRef->val;
     char *belongsTo =NULL;
     if (subgroupFind(subtrack,members->groupTag,&belongsTo))