<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">Regarding the second option: What happens if I (as a 
user) add a content unit to a repo, later remove it, later add it again,
 and later remove it again? Would this result in two "version_added" and
 two "version_removed" records?</span></blockquote><div><br></div><div>That’s correct except for one small detail: version_added and version_removed are two fields on a single model called RepositoryContent[0]. So it’s really two records total and not four.</div><div><br></div><div>It kind of brings up another point: when you remove a version where content was removed but then re-added later, you end up with two RepositoryContent records pointing to the same version. It’s an odd result but not only minor in terms of severity[1]. We should look at perhaps fixing it though if we adopt proposal #2.</div><div><br></div><div>[0] <a href="https://git.io/vbExy" target="_blank">https://git.io/vbExy</a> (note that they’re called vadded and vremoved in the PR)</div><div>[1] <a href="https://git.io/vbEpI" target="_blank">https://git.io/vbEpI</a></div></div></blockquote><div><br></div><div>Gotcha. So, if I want to see whether or not some given piece of content is in a repository, then I need to iterate through every RepositoryContent related to a given RepositoryVersion, and check to see if any have a non-null version_added and a null version_removed, right?</div><div><br></div><div>Works. A bit awkward, though.<br></div></div></div></div>