src/hg/makeDb/hgTrackDb/hgTrackDb.c 1.63
1.63 2010/02/17 03:08:39 braney
do some release tag checking
Index: src/hg/makeDb/hgTrackDb/hgTrackDb.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/makeDb/hgTrackDb/hgTrackDb.c,v
retrieving revision 1.62
retrieving revision 1.63
diff -b -B -U 4 -r1.62 -r1.63
--- src/hg/makeDb/hgTrackDb/hgTrackDb.c 16 Feb 2010 23:37:32 -0000 1.62
+++ src/hg/makeDb/hgTrackDb/hgTrackDb.c 17 Feb 2010 03:08:39 -0000 1.63
@@ -148,21 +148,30 @@
/* Build up list that only includes things in this release. Release
* can be inherited from parents. */
struct trackDb *tdb;
struct trackDb *relList = NULL;
+struct hash *haveHash = hashNew(3);
+
while ((tdb = slPopHead(&tdbList)) != NULL)
{
char *rel = trackDbSetting(tdb, "release");
if (rel == NULL || sameString(rel, release))
{
/* Remove release tags in remaining tracks, since its purpose is served. */
+ struct hashEl *hel;
+ if ((hel = hashLookup(haveHash, tdb->tableName)) != NULL)
+ errAbort("found two copies of table %s: one with release %s, the other %s\n",
+ tdb->tableName, (char *)hel->val, release);
+ hashAdd(haveHash, tdb->tableName, rel);
hashRemove(tdb->settingsHash, "release");
slAddHead(&relList, tdb);
}
else
verbose(3,"pruneRelease: removing '%s', release: '%s' != '%s'\n",
tdb->tableName, rel, release);
}
+
+freeHash(&haveHash);
return relList;
}
static struct trackDb * pruneOrphans(struct trackDb *tdbList, struct hash *trackHash)