Skip to content
Tomas Mlcoch edited this page Dec 2, 2013 · 7 revisions

Terminology:

  • MF - Metadata file - File listed in repomd.xml.
  • OF - Other file - File inside repodata/ directory but not listed in repomd.

Current (old) behavior

Regardless if used with or without --update createrepo(_c) output repodata/ looks like:

  • All OFs stay there with unmodified content.
  • Some MFs are regenerated. According to command line parameters at least the primary.xml, filelists.xml, other.xml, but other MFs like groupfile (--groupfile) or databases (--database) could be regenerated as well.
  • Other MFs that were listed in repomd.xml are kept in the repodata/ directory but not referenced by repomd.xml. (See: https://bugzilla.redhat.com/show_bug.cgi?id=950301)
  • The only files that could be removed are primary, filelists, other and its databases.
  • This behavior could leads to the situation where old and outdated files like groupfiles or updateinfos are accumulating in the repodata/ directory over the time.

New behavior

Regardless if used with or without --update, createrepo(_c) output repodata/ should look like:

  • All OFs stay there with unmodified content, but each file is a copy so the file's metadata like mtime, or number of hardlinks may be differ.
  • All MFs are regenerated or removed. (All files that were referenced by the previous repomd.xml but in the current version they aren't present, are removed from the repodata/ directory)
  • All MFs are regular files, not symlinks.
  • All MFs have a number of hardlink references equal to 1.

Benefits of new behavior

  • Clearly and simple defined
  • Users know what they could expect
  • More clear and logical than the old behavior