Story #95

Updated by over 7 years ago

Users wants pulp to model ostree content units where each unit is a branch _head_ instead of a snaphot of the entire repository.    They also want us to only publish objects associated to those commits and not just links to the entire _backing_ repository.    Red Hat composed repositories will include a _version_ field in the commit metadata.    Users want the commit metadata inventoried with each content unit and displayed in our CLI.    They also want us to chnage what is published to only include links into objects/ that are referenced by branch head commits.    Currently we are simply linking to the entire objects/ directory which exposes too much. 

 h1. Details 

 * Update the type definition to model each unit as a branch head.    The unit key will be something like: {remote_id:<id>, branch_id:<path>, commit_id:<hash>}. 
 * After pulling from a remote repository, add a content unit per branch head instead of one unit representing a snapshot of the entire repository. 
 * Include the metadata contained in the commit with the unit metadata.    OSTree repositories composed by Red Hat will contain a _version_. 
 * Update the CLI to display this metadata. 
 * Update publishing to perform the following steps: 
 > * Create a new ostree repository 
 > * Add a file in the refs/ for each content unit. 
 > * Do a local-pull from the _backing_ ostree repository to create hard links to the objects. 

 h1. Deliverables 

 * OSTree repositories contain a unit per branch that includes the commit metadata. 
 * Published ostree repositories include a file in _refs/heads_ per content unit. 
 * Published ostree repositories objects/ contains hard links to only those objects referenced by the branch head commits. 
 * The ostree CLI displays commit metadata for each unit.