PQM

Remove VCS abstraction from PQM

Bug #124847 reported by Robert Collins
2
Affects Status Importance Assigned to Milestone
PQM
Triaged
High
Unassigned

Bug Description

PQM has inside it a bit of a VCS abstraction layer. I'd like to nuke
this in favour of bzr's VCS abstraction - bzr can natively speak to SVN
and bzr at the moment, as well as reading to varying degrees from hg/git
and possibly tla/baz in the future.

It would remove a bunch of code which I think is rarely used to do this,
and allow some of the improvements to UI and usability to be done more
easily if we do this.

Concretely I think we should:
 - nuke the VCS abstraction in pqm in favour of direct bzrlib calls
 - drop specific support for tla/baz*/Arx in the PQM codebase

For each VCS PQM currently supports to reinstate that support what is
needed is a small bzrlib plugin which implements enough of the
ControlDir, WorkingTree and Branch API's to satisfy PQM. Thats < 100
lines of python (I wrote a similar plugin in 2 hours at europython last
year for git to make 'bzr viz' work on git branches). The needed methods
will be small in number - create_checkout, merge, commit, conflicts.

We should maintain a list of the bzrlib API's used so that folk which
don't want a full bzr-foreign-branch plugin can do one which is simply
sufficient for PQM.

We should also document in the README/user documentation how to deploy
with bzrlib - e.g.
===
python2.4
can run from source - so you can:
unpack the PQM source to pqm
unpack a bzr source tree to pqm/bzr
drop your VCS specific plugin into pqm/bzr/bzrlib/plugins/$vcs.py

Alternatively, bzr will look in ~/.bazaar/plugins for plugins, and pqm
loads bzr via the python path so just having bzr installed on the system
is enough.
===

  affects /products/pqm
  status triaged
  importance high

--
GPG key available at: <http://www.robertcollins.net/keys.txt>.

Related branches

Revision history for this message
Robert Collins (lifeless) wrote :

I've started documenting this in the code base.

Dan Watkins (oddbloke)
Changed in pqm:
assignee: nobody → daniel-thewatkins
status: Triaged → In Progress
Jelmer Vernooij (jelmer)
Changed in pqm:
assignee: Daniel Watkins (daniel-thewatkins) → nobody
status: In Progress → Triaged
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.