45b4b52a4727e9aeedabcd39e011d4408f35b7e8 angie Wed Nov 22 16:48:32 2017 -0800 In printDataVersion, instead of preferring hgFixed.trackVersion to trackDb setting dataVersion, prefer dataVersion because it is easier to manage pushes with a dataVersion file vs. with rows of the trackVersion table. refs #18997 note-141 diff --git src/hg/lib/hui.c src/hg/lib/hui.c index fc73543..375c162 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -8909,54 +8909,52 @@ outs[12] = taxId; uUrl = subMulti(url, ArraySize(ins), ins, outs); outs[0] = eItem; eUrl = subMulti(url, ArraySize(ins), ins, outs); freeDyString(&uUrl); freeMem(eItem); freeMem(scName); return eUrl->string; } void printDataVersion(char *database, struct trackDb *tdb) /* If this annotation has a dataVersion setting, print it. * check hgFixed.trackVersion, meta data and trackDb 'dataVersion'. */ { -char *version = NULL; - -// try the hgFixed.trackVersion table -struct trackVersion *trackVersion = getTrackVersion(database, tdb->track); -// try trackVersion table with parent, for composites/superTracks -if(trackVersion == NULL && (tdb->parent!=NULL)) - trackVersion = getTrackVersion(database, tdb->parent->track); - // try the metadata -if(trackVersion == NULL) - { metadataForTable(database, tdb, NULL); - version = (char *)metadataFindValue(tdb, "dataVersion"); - } -else - version = trackVersion->version; +char *version = (char *)metadataFindValue(tdb, "dataVersion"); // try trackDb itself, this automatically will go up the hierarchy if (version == NULL) -{ version = trackDbSetting(tdb, "dataVersion"); -} - -if (version == NULL) - return; -// On the RR, dataVersion can also be the path to a local file, for otto tracks +if (version != NULL) + { + // dataVersion can also be the path to a local file, for otto tracks if (!trackHubDatabase(database) && !isHubTrack(tdb->table) && startsWith("/", version)) { - char *path = replaceInUrl((char *)version, "", NULL, database, "", 0, 0, tdb->track, FALSE); - struct lineFile* lf = lineFileOpen(path, TRUE); + char *path = replaceInUrl(version, "", NULL, database, "", 0, 0, tdb->track, FALSE); + struct lineFile* lf = lineFileMayOpen(path, TRUE); if (lf) version = lineFileReadAll(lf); + else + version = NULL; + lineFileClose(&lf); + } + } +if (version == NULL) + { + // try the hgFixed.trackVersion table + struct trackVersion *trackVersion = getTrackVersion(database, tdb->track); + // try trackVersion table with parent, for composites/superTracks + if (trackVersion == NULL && tdb->parent != NULL) + trackVersion = getTrackVersion(database, tdb->parent->track); + if (trackVersion != NULL) + version = trackVersion->version; } -if (version != NULL) +if (isNotEmpty(version)) printf("<B>Data version:</B> %s <BR>\n", version); }