1. A method for providing a source code version control system, comprising: parsing source code of a software product to format the software product into a tree structure comprising a plurality of components, each component comprising respective content; separating each of the plurality of components among the tree structure based upon the respective content; receiving, at a source code repository, an updated version of a component of the plurality of components; comparing the updated version of the component to a previously checked-out version of the component to identify changes; flagging the identified changes in the updated version with change flags; in response to identifying the identified changes, requesting comments regarding the identified changes; receiving user comments regarding the identified changes; associating the identified changes with the respective content of the updated version of the component; storing the identified changes of the updated version of the component, the change flags, and the user comments; updating the tree structure by replacing the previously checked-out version of the component with the updated version of the component; and presenting, based on a selected component, the updated version of the component, the identified changes with the updated version of the component, and the previously checked-out version of the component.