on code ------- - remove fetch*() methods because with objects we can do that on demand whenever the API user needs the information. "fetch_source_items(), fetch_successor_items(), get_common_directory_path() and get_item_paths() apply to a list of items, we might consider to have a VersionControlItemList instead of a single array, in order to have it perform lazy loading and stuff. The other possibility would be to keep items in memory as a static copy, but that needs further thought." (review the following, got it grepping items| grep function| grep \&) - versioncontrol_table_operation_items_join(&$tables) - versioncontrol_fetch_source_items($repository, &$items) - versioncontrol_fetch_successor_items($repository, &$items) - VersioncontrolOperation::insert(&$operation_items) - VersioncontrolItem::fetchCommitOperations($repository, &$items) "Example: VersionControlItem::fetchCommitOperations() (see above) can be reduced to VersionControlItem::commitOperations(), and the item object keeps track whether the commit operations have already been fetched or not (is_null($this->commitOperations))." - update documentation - versioncontrol_fakevcs module - hook_versioncontrol.php - 73 chars to line break on comments - review operation and item classes - search non-oop methods and convert them - move loaders to EntityCache classes, like repo and account classes(aka cache for getEntity methods) - group classes in files with some criteria on design --------- - "Still not solved: how to represent accounts that do not have an exact uid/repository/username combination." - Start working on account stuff(now there are two classes: VersioncontrolVcsAccount and VersioncontrolAccount) - defered until all classes stuff is done(suggested by jpetso) do not forget ------------- - we want to let other modules inherit from all of our classes - camelcase at conceptual boundaries - __USE__ gets, like php spl - for now do not use SplFileInfo as a parent class for VersioncontrolItem, but maybe in near future when it's considered a need(maybe performance) - api class dropped, its methods would be on the module file (so. we've got backend objects. pretty easy to retrieve via discovery hook and subsequent instantiation, probably.) - at the beginning we should have attributes as private as possible and in the process open it as it's needed, taking more time for it before a release - later discusion last week result in "use protected in all places" (but later I found exceptions like repository cache :p) - The future of source items in the main API module (we want them as an optional bonus instead of a log-parse-time requirement)