a3db0af96091732adb2a559de71ec1fd3f13ae70 max Tue Apr 10 09:56:13 2018 -0700 make track hub error message clearer, refs #21249 diff --git src/hg/lib/trackHub.c src/hg/lib/trackHub.c index 972740a..17cca16 100644 --- src/hg/lib/trackHub.c +++ src/hg/lib/trackHub.c @@ -843,31 +843,35 @@ } } } static void markContainers( struct trackHub *hub, struct trackHubGenome *genome, struct trackDb *tdbList) /* Mark containers that are parents, or have them. */ { struct hash *hash = hashNew(0); struct trackDb *tdb; // add all the track names to a hash for (tdb = tdbList; tdb != NULL; tdb = tdb->next) { if (hashLookup(hash, tdb->track)) - errAbort("Track %s appears more than once in genome %s.", tdb->track, genome->name); + errAbort("Track %s appears more than once in genome %s. " + "Track identifiers have to be unique. Please check your track hub files, " + "especially the 'track' lines. " + "The most likely reason for this error is that you duplicated a " + "'track' identifier.", tdb->track, genome->name); hashAdd(hash, tdb->track, tdb); } // go through and find the container tracks for (tdb = tdbList; tdb != NULL; tdb = tdb->next) { char *parentLine = trackDbLocalSetting(tdb, "parent"); // maybe it's a child of a supertrack? if (parentLine == NULL) { parentLine = trackDbLocalSetting(tdb, "superTrack"); if ((parentLine != NULL) && startsWith("on", parentLine)) parentLine = NULL; }