Support more versioning systems than bazaar

Bug #508525 reported by jens persson on 2010-01-16
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Quickly
Undecided
Unassigned

Bug Description

Someware I read a request for supporting more versioning systems, and since I have a need for mercurial support I started to write a abstraction to support it.

The work is done in my version-control branch [1]

I have basicly created a submodule named vchelpers that have a factory for a abstract interface to versioning.

The basic implementation is working for bzr and hg and I have converted the create and package commands to use it.

The create command reads a global setting from /etc/quickly to determine what system to use, so I have done some changes to quicklyconfig to make the reading of global configurations work, and also implemented a helper function that reads a config option from ether the global settings or the project setting.

Looking forward I will flesh out a svn implementation and convert more commands to use the abstractions.

[1] https://code.launchpad.net/~jens-persson/quickly/version-control

jens persson (jens-persson) wrote :

Forgot to ask for comments on the archetecture and implementation

Didier Roche (didrocks) wrote :

Thanks for your work and proposing this code to Quickly.

I didn't know if you read our presentation of Quickly and templates, but:
- quickly core is language and syntax agnostic, it can run template from any languages and stuff like that
- ubuntu-application template is taking a lot of strong request/opinionated choices on technologies and tools to use.

You've implemented quite some changes which appears to me as being good, but there are still a lot of missing bits that using agnostic tools wouldn't work for ubuntu-application temlates:
- a lot of ubuntu-application commands are relying on pushing and getting code to LP, which isn't possible if you don't use bzr (bzr launchpad-login, setting up ssh key, etc.)
- we will move soon to bzr-buildpackage to build debian package, which is only working with bzr, of course
- we are using tag listing (not in your change)

I know that some people want to use other vcs (but this is not the main goal of Quickly ubuntu-application template which want to hide and simplify all the vcs and dvcs hell to users). To fix that (there are the same discussion for using gconf and not couchdb, qt … endless technical discussion ;)), that's why we provided the template functionnality.
You can create your own template called "ubuntu-application-with-hg-without-launchpad" (ok, a better is to be found, maybe ;)) and we will integrate it in the trunk. To help people, I added recently the capability to import command between templates. This is only available in the trunk right now.

For instance, if you want to import the edit command from ubuntu-application template in your template using hg, see how to do that in bug #452306 (the IMPORT statement).

I still think your work can help template developer, when they don't need some special feature like launchpad to integrate it in them template. So, if you want to develop a little bit more and integrate it as a quickly.agnosticvcs module so that template developers can use them of their template.

What do you think about it? I'll just post the bug as being "incomplete" for triaging sake, but do not hesitate to propose it again if you think that we can merge it in a quickly.something_package and create a template using that :)

BTW: a merge request is best for next time to see differences :)

Changed in quickly:
status: New → Incomplete
Matt Perry (mp) on 2010-02-21
summary: - Suport more versoning systems then bazaar
+ Suport more versoning systems than bazaar
summary: - Suport more versoning systems than bazaar
+ Support more versioning systems than bazaar
Jelmer Vernooij (jelmer) wrote :

For what it's worth Bazaar supports the Mercurial, Subversion and Git file formats through plugins - it already has an abstraction layer. The Git and Subversion working tree support is quite decent, support for Mercurial working trees is still pretty limited at the moment.

I.e. if you install bzr-hg and add --format=hg to the "bzr init" call this should ideally work already.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers