9f5a3871b95f595b5a218f0d05395a8c72d58844
braney
  Tue Aug 25 12:57:10 2026 -0700
remove the bigBedOnePath fallback, leaving a single bigBed load path, refs #36940

bigBedOnePath has defaulted to on since v492 and the setting has been removed
from the hg.conf of the RR, Euro, Asia and hgwbeta.  Drop the check and the code
it guarded at all four sites: the field-count default in
bigBedAddLinkedFeaturesFromExt, the method setup in commonBigBedMethods, the
bedSize default in bigBedClick, and the bigBed case in hgc.  The two branches in
the hgc case differed only in a minimum the surviving path does not want.

complexBedMethods lost its only isBigBed=TRUE caller with that branch, so drop
the parameter.

Retire the setting from the hg.conf catalog and its gate backlog, and repair the
two hgc.c citations whose line numbers this commit shifted, refs #37925.

Verified pixel-identical: 14 scenarios rendered before and after, covering the
four QA sessions on the ticket plus mm10 knownGene, dbSnp155, rmsk,
encRegTfbsClustered, clinvar and tandemDups.  All AE=0.

diff --git src/hg/hgTracks/bigBedTrack.c src/hg/hgTracks/bigBedTrack.c
index 725939538af..12d645ce302 100644
--- src/hg/hgTracks/bigBedTrack.c
+++ src/hg/hgTracks/bigBedTrack.c
@@ -709,32 +709,31 @@
 if (errCatchStart(errCatch))
     {
     bbi = fetchBbiForTrack(track);
     }
 errCatchEnd(errCatch);
 if (errCatch->gotError)
     {
     track->networkErrMsg = cloneString(errCatch->message->string);
     track->drawItems = bigDrawWarning;
     track->totalHeight = bigWarnTotalHeight;
     return;
     }
 errCatchFree(&errCatch);
 
 fieldCount = track->bedSize;
-boolean bigBedOnePath = cfgOptionBooleanDefault("bigBedOnePath", TRUE);
-if (bigBedOnePath  && (fieldCount == 0))
+if (fieldCount == 0)
     track->bedSize = fieldCount = bbi->definedFieldCount;
 
 struct bigBedInterval *bb, *bbList; 
 char *quickLiftFile = cloneString(trackDbSetting(track->tdb, "quickLiftUrl"));
 struct hash *chainHash = NULL;
 if (quickLiftFile)
     bbList = quickLiftGetIntervals(quickLiftFile, bbi, chromName, winStart, winEnd, &chainHash);
 else
     bbList = bigBedSelectRangeExt(track, chrom, start, end, lm, maxItems);
 
 char *squishField = cartOrTdbString(cart, track->tdb, "squishyPackField", NULL);
 int squishFieldIdx = bbExtraFieldIndex(bbi, squishField);
 
 /* colorFields: optional alternative color scheme stored in a named extra field. */
 int colorFieldIdx = 0;
@@ -1084,95 +1083,47 @@
 // return label for simple beds
 {
 struct bed *bed = (struct bed *)item;
 
 return bed->label;
 }
 
 char *bigLfItemName(struct track *tg, void *item)
 // return label for linked features
 {
 struct linkedFeatures *lf = (struct linkedFeatures *)item;
 
 return lf->label;
 }
 
-#ifdef NOTNOW
-static int getFieldCount(struct track *track)
-// return the definedFieldCount of the passed track with is assumed to be a bigBed
-{
-struct bbiFile *bbi = NULL;
-struct errCatch *errCatch = errCatchNew();
-if (errCatchStart(errCatch))
-    {
-    bbi = fetchBbiForTrack(track);
-    }
-errCatchEnd(errCatch);
-
-if (bbi)
-    return bbi->definedFieldCount;
-
-return 3; // if we can't get the bbi, use the minimum
-}
-#endif
-
 void commonBigBedMethods(struct track *track, struct trackDb *tdb, 
                                 int wordCount, char *words[])
 /* Set up common bigBed methods used by several track types that depend on the bigBed format. */
-{
-boolean bigBedOnePath = cfgOptionBooleanDefault("bigBedOnePath", TRUE);
-
-if (bigBedOnePath)
 {
 track->isBigBed = TRUE;
 linkedFeaturesMethods(track);
 track->extraUiData = newBedUiData(track->track);
 track->loadItems = loadGappedBed;
 
 if (wordCount > 1)
     track->bedSize = atoi(words[1]);
 
 if (trackDbSetting(tdb, "colorByStrand"))
     {
     Color lfItemColorByStrand(struct track *tg, void *item, struct hvGfx *hvg);
     track->itemColor = lfItemColorByStrand;
     }
-    }
-else 
-    {
-    char *newWords[wordCount];
-
-    int ii;
-    for(ii=0; ii < wordCount; ii++)
-        newWords[ii] = words[ii];
-
-    #ifdef NOTNOW
-    // let's help the user out and get the definedFieldCount if they didn't specify it on the type line
-    if (!tdbIsSuper(track->tdb) && (track->tdb->subtracks == NULL) && (wordCount == 1) && sameString(words[0], "bigBed"))
-        {
-        int fieldCount = getFieldCount(track);
-        if (fieldCount > 3) 
-            {
-            char buffer[1024];
-            safef(buffer, sizeof buffer, "%d", fieldCount);
-            newWords[1] = cloneString(buffer);
-            wordCount = 2;
-            }
-        }
-    #endif
-    complexBedMethods(track, tdb, TRUE, wordCount, newWords);
-    }
 track->loadSummary = loadBigBedSummary;
 }
 
 void bigBedMethods(struct track *track, struct trackDb *tdb, 
                                 int wordCount, char *words[])
 /* Set up bigBed methods for tracks that are type bigBed. */
 {
 commonBigBedMethods(track, tdb, wordCount, words);
 if (sameWordOk(trackDbSetting(tdb, "style"), "heatmap"))
     {
     // Might want to check here if required heatmap settings/fields are in place,
     // maybe some combo of row count and labels.
     heatmapMethods(track);
     }
 }