Re: [Anjuta-list] More on CVS Bugs



All:

I think we can safely say that the VCS stuff in anjuta1 is a mess. It's
totally hardcoded to use cvs - not only that, you can do very few things
with it and even the options are mostly hardcoded. In the short term, it
should be simple to make most of these preferences, so that the user can
tune it to her/her requirements. Another option is to totally bypass the
VCS and configure your own set of tools to do this - it's pretty easy to
define a set of tools using the Tool Editor (+ judicious use of
gdialog/zenity) whcih can mimic everything we currently do with CVS and
tune it exactly to your requirements.

Having said that, one of my long term plans is to totally redesign the
VCS system. Unfortunately, I've too much on my plate already and my
knowledge about various VCS is severely limited. Carl volunteered to do
a writeup by studying various VCSs and designing a generic framework to
support multiple VCSs. However, he's pretty short of time too I guess,
so this job is open to anyone interested. Briefly, here are the
requirements for a generic VCS:

1. Cleanly segregate front-end/backend code, so that multiple backends
can be supported using the same framework/API. Main interesting ones I
think are CVS, subversion and arch (I might have missed a few).

2. Decide on core functionality that must be implemnented on all
backends. The stuff that comes to mind immediately are:
	1. Import to VCS (i.e. cvs import)
	2. Automatically detect properties for projects already in VCS
		(e.g. Parse CVS/* files for info)
	3. Add/remove files/directories (cvs add, cvs remove)
	4. Commit at file, directory and project level.
	5. Logging and annotations (cvs log, cvs annotate)
	6. Showing version and state information in the file tree

3. Devise a generic method for supporting backend specific
functionality.

A good design should also include a rough reference implementation using
CVS as the backend (since that is the primary target).

I realize that this is not a weekend job and needs some good hard
thinking and careful design. Which is why I'd like to proceed in a more
formal manner about this and hash out issues on the list, esp. with
users of alternative VCSs before we go ahead and fix things in a random
manner.

-- 
Biswa.






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]