9bab4c39709d774c2a439dc8b5776b451510bef4
braney
  Wed Feb 10 11:53:57 2021 -0800
delete the incFiles.txt file if there aren't any include files in the
cached trackDb

diff --git src/hg/lib/trackDbCache.c src/hg/lib/trackDbCache.c
index 32ef75e..40f2751 100644
--- src/hg/lib/trackDbCache.c
+++ src/hg/lib/trackDbCache.c
@@ -397,38 +397,42 @@
 char fileName[4096];
 safef(fileName, sizeof fileName, "%s/%ld.%d", dirName, paddress, TRACKDB_VERSION);
 
 cacheLog("renaming %s to %s", tempFileName, fileName);
 mustRename(tempFileName, fileName);
 
 // write out the name of the trackDb being cached.
 safef(fileName, sizeof fileName, "%s/name.txt", dirName);
 FILE *stream = mustOpen(fileName, "w");
 if (tdbPathString == NULL)
     fprintf(stream, "%s\n", name);
 else
     fprintf(stream, "%s.%s\n", name,tdbPathString);
 carefulClose(&stream);
 
-// write out included files if present
+// write out included files if present, or delete existing file if not
+safef(fileName, sizeof fileName, "%s/incFiles.txt", dirName);
 if (!isEmpty(incFiles))
     {
-    safef(fileName, sizeof fileName, "%s/incFiles.txt", dirName);
     stream = mustOpen(fileName, "w");
     fputs(incFiles, stream);
     carefulClose(&stream);
     }
+else
+    {
+    remove(fileName);
+    }
 }
 
 void trackDbCloneTdbListToSharedMem(char *db, char *tdbPathString, struct trackDb *list, unsigned long size)
 /* For this native db, allocate shared memory and clone trackDb list into it. */
 {
 cacheLog("cloning memory for db %s %ld", db, size);
 cloneTdbListToSharedMem(db, tdbPathString, list, size, db, NULL);
 }
 
 void trackDbHubCloneTdbListToSharedMem(char *trackDbUrl, struct trackDb *list, unsigned long size, char *incFiles)
 /* For this hub, Allocate shared memory and clone trackDb list into it. incFiles has a list of include files that may be null. */
 {
 if ((*trackDbUrl == '.') || (list == NULL)) // don't cache empty lists or collections
     return;
 cacheLog("cloning memory for hub %s %ld", trackDbUrl, size);