Well, I miss one WU, but here the 2-weeks update :-D .. a little late :-p
Week 1: Making backend class abstraction work with git backend and planning interfaces again.
in the middle: lot of sdboyer interaction!
Week 2: Choose where to use interfaces and where inheritance can make the work better.
Now the details.
- move versioncontrol_get_item to repo class
- repo urls do not need to be updated
- avoid override repo::data array on repo submit
- pass coder module review
- sdboyer cut repo class in two: loader(VersioncontrolRepositoryCache) and parent class for backends(VersiocontrolRepository) (look at 439fa39, cf3fa32, e04f260 and aded0c9)
- Use backend class in the vc api workflow(see 17d07b2, 69e14ec, 42c9041), now repo class have a backend object, and in general it let us decide what class to instanciate(see backend::classes data member)
- modify some of sdboyer proposed way to
- make repo class default constructor work for simple case
- change getRepository and getAllRepositories logic to correct cache handling
format_revision_identifier, is_account_username_valid and account_username_suggestion vc callbacks are now a methods, in that way inheritance is the interaction way(see formatRevisionIdentifier, account::isUsernameValid, usernameSuggestion)
- repository, account and operation are now converted to use inheritance as its way of interaction with backends(see last commit on removing autoadd, make account backend interaction through inheritance and force it to inherit, make operation backend interaction through inheritance and force it to inherit).
- repocache::_amend_repositories(), the only one method which call alter_repositories hook is not used anymore, so if the backend want interaction it had to use repocache::_getRepository()
- force the backend to inherit item class
- Hey, some interfaces(I decided to make it interfaces because each vcs may implement it differently and they are all optional):
- VersioncontrolItemParallelItems for getParallelItems(get_parallel_items)
- VersioncontrolItemDirectoryContents for getDirectoryContents(get_directory_contents)
- VersioncontrolItemExportFile for exportFile(export_file)
- VersioncontrolItemExportDirectory for exportDirectory(export_directory)
- VersioncontrolItemGetFileAnnotation for getFileAnnotation(get_file_annotation)
Also, there are two new branches, autoload and oop-dbtng, both discussed on d.o(dbtng integration and autoload integration). Those are rebased each time on top of oop branch, so please do not branch them :-p
master branch: two minor fixes
- apply the same fixes above
- use oop on tag retrieving
- sync with vc api(see c7bfdaa..93aa016)
Alse there is an autoload branch, This branch is rebased each time on top of oop branch, so please do not branch it :-p